band tendlc campaign create
Register a 10DLC campaign
Synopsis
Registers a 10DLC campaign against an existing, verified brand.
Before submitting, this command reads the brand named by --brand-id. Whether POST /campaigns silently discards an invalid brandId the way POST /brands was measured to silently discard an invalid customerProfileId (see 'band tendlc brand create') is unmeasured, so this guards the same way: a 404 on that read stops the create here, naming the bad ID. A 403, or any other pre-flight failure, does not stop it — it proceeds with a one-line warning on stderr instead, the same degrade-don't-block behavior as the brand create pre-flight.
If the brand read succeeds, its identity status is checked too: a campaign requires a brand at VERIFIED, VETTED_VERIFIED, or SELF_DECLARED, so any other status stops the create here naming the blocking state, rather than letting the API return an opaque error later.
This is a non-idempotent, billable write. After an ambiguous failure — a timeout or a dropped connection — do not blindly retry: list campaigns filtered by --brand-id-contains and reconcile against what you submitted first. Retrying blind risks a second campaign against the same brand.
band tendlc campaign create [flags]
Examples
band tendlc campaign create --brand-id BEXMPL1 --usecase ACCOUNT_NOTIFICATION \
--description "Sends account notifications to opted-in subscribers." \
--sample1 "Your account balance is now available. Reply STOP to opt out." \
--message-flow "Customer opts in via web form; campaign sends account notifications only." \
--help-message "For help, reply HELP." --help-keywords HELP,INFO
band tendlc campaign create --brand-id BEXMPL1 --usecase 2FA \
... --wait --timeout 600
Options
--age-gated Campaign content requires age verification
--auto-renewal Campaign automatically renews
--brand-id string Brand backing this campaign (required)
--campaign-name string Campaign name
--description string Campaign description (required)
--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 create
--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 (required)
--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 (required)
--sample2 string Sample message 2
--sample3 string Sample message 3
--sample4 string Sample message 4
--sample5 string Sample message 5
--sub-usecase strings Campaign sub-usecase(s), comma-separated or repeated
--subscriber-help Subscribers can request help
--subscriber-optin Subscribers explicitly opt in
--subscriber-optout Subscribers can opt out
--terms-and-conditions Subscribers must accept terms and conditions to opt in
--terms-and-conditions-link string Link to the terms and conditions
--timeout int Seconds to wait when --wait is set (default 300)
--usecase string Campaign usecase (required)
--wait Block until the campaign's status reaches a terminal state
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