band tendlc campaign update
Update a 10DLC campaign
Synopsis
Updates a 10DLC campaign.
For a direct campaign, the API replaces the whole record on update, so this command reads the campaign first and sends it back with your changes applied. Fields you do not pass are preserved; passing a flag with an empty value clears that field (description, message-flow, and sample1 are required on every campaign and cannot be cleared this way). For an imported campaign, the update contract is narrower: only --campaign-name is accepted, and passing any other flag is rejected outright rather than silently discarded — see 'band tendlc campaign get' to check whether a campaign is imported before deciding which flags apply.
This command prints an acceptance receipt, not the updated campaign: the PUT here returns a bare {bandwidthId, campaignId}, and the change itself may take several minutes to be reflected in 'campaign get' or 'campaign history' — re-check after a few minutes to confirm it actually applied.
Editing a campaign is not cosmetic. Measured against production, an update pushes the change to TCR and the campaign is then re-imported from TCR, re-entering carrier review: the activity log records "Successfully updated campaign", then "Campaign re-imported from TCR", then "Campaign is PENDING with BANDWIDTH_DCA" — all within about four seconds. A REGISTERED campaign that gets edited goes back in front of a DCA, and TCR is authoritative afterward: any value TCR normalizes or rejects on re-import will silently revert, with no error surfaced back through this command.
Also measured, and worth knowing before relying on a boolean flag: a boolean set to true here applied, but two separate attempts to set that same field back to false each returned 202 while leaving the stored value unchanged — the second attempt did not even bump modifiedDate. Whether the API is dropping false or TCR is re-asserting the prior value on re-import is not established. Treat a boolean flip as unverified until you re-check the campaign; do not assume a 202 means the value actually changed.
No --wait: this write lands against a campaign usually already in a terminal state, so polling for one here would return immediately and report success before the change (or the re-import above) actually took effect.
No --confirm: unlike 'brand update', a campaign update carries no fee and no identity reset — the brand identity-verification rules do not transfer to campaigns, so there is no API-justified reason to gate this behind a flag.
band tendlc campaign update <campaign-id> [flags]
Examples
band tendlc campaign update CEXMPL1 --description "Updated description" --plain
band tendlc campaign update CEXMPL1 --age-gated=false --plain
band tendlc campaign update CEXMPL1 --campaign-name "Acme Notifications v2" --plain
Options
--age-gated Campaign content requires age verification
--auto-renewal Campaign automatically renews
--campaign-name string Campaign name
--description string Campaign description
--direct-lending Campaign involves direct lending or loan arrangement
--embedded-link Messages contain embedded links
--embedded-link-sample string Sample message containing an embedded link
--embedded-phone Messages contain embedded phone numbers
-h, --help help for update
--help-keywords string HELP keywords, comma-separated
--help-message string Response sent for a HELP keyword
--message-flow string How a subscriber opts in and what they receive
--number-pool Campaign uses a shared number pool
--optin-keywords string Opt-in keywords, comma-separated
--optin-message string Message sent confirming opt-in
--optout-keywords string Opt-out keywords, comma-separated
--optout-message string Message sent confirming opt-out
--privacy-policy-link string Link to the privacy policy
--sample1 string Sample message 1
--sample2 string Sample message 2
--sample3 string Sample message 3
--sample4 string Sample message 4
--sample5 string Sample message 5
--terms-and-conditions-link string Link to the terms and conditions
Options inherited from parent commands
--account-id string Bandwidth account ID (overrides config)
--environment string API environment: prod, test (overrides config)
--format string Output format: json or table (default "json")
--plain Simplified flat JSON output (recommended for scripts and agents)
SEE ALSO
- band tendlc campaign - Manage 10DLC campaigns