How to Write an A2P 10DLC Campaign That Gets Approved the First Time
A field guide to the campaign registration form: choosing Customer Care over Mixed, writing a use-case description reviewers accept, sample messages with opt-out language, a consent description with real URLs, and the STOP/HELP replies — plus the rejection reasons that catch almost everyone.
Most A2P 10DLC campaign rejections are wording problems, not business problems. The reviewer needs to see four things line up: a campaign type that matches the messages, a description that says plainly who you text and why, sample messages that look like the description and carry opt-out language, and a consent explanation specific enough that they could go verify it themselves. Get those four consistent with each other and approval is routine. Leave one vague and you will wait a week to be told to try again.
This guide is for anyone filling out the campaign form — a business owner registering their own Twilio account, or anyone curious what "we handle registration for you" actually involves. If you use a KaiCalls number you do not need to do this; your number is on KaiCalls' approved campaign already. If you connect your own Twilio account, this is the form you will be filling out, and the KaiCalls dashboard will track your status while you do.
We are writing from experience. KaiCalls' own first campaign submission was sent back for exactly the consent problem described below. What follows is what we changed.
Table of Contents
- Before the campaign: get the brand right
- Choose the campaign type honestly
- Write the use-case description
- Write sample messages that match
- Describe consent so a stranger could verify it
- The keyword replies
- The rejection reasons that catch almost everyone
- After approval: attach the numbers
- A pre-submit checklist
- FAQ
Before the campaign: get the brand right
The campaign sits under a brand, and the brand is checked against government records. Use the exact legal entity name on your IRS paperwork — not the DBA, not the name on the truck, not the version with "LLC" dropped for style. Use the EIN and the registered address that go with that name. A mismatch here is the single most common brand rejection, and it delays the campaign because you cannot submit one until the brand is approved.
Sole proprietors without an EIN have a separate brand type with lower throughput and a one-number limit. If you have an EIN, use it.
Brand review commonly takes one to two business days.
Choose the campaign type honestly
The campaign type is a promise about what the traffic is. Reviewers compare everything else in the form against it.
- Customer Care — replies, confirmations, follow-ups, support, to people who contacted you first. This is the right type for a business that texts callers back, confirms appointments, or answers questions. Lower risk, straightforward consent.
- Account Notification — non-promotional updates about an account the person holds.
- Marketing — promotions to people who explicitly agreed to marketing. Stricter consent, closer review.
- Low Volume Mixed — a catch-all for small senders doing several things. Tempting because it sounds flexible; in practice it invites more scrutiny because "mixed" includes marketing, and the consent bar is set by the strictest thing you might send.
If your texts are really customer care, say Customer Care. Do not pick Mixed as a hedge. It makes the consent description harder and the review slower, and it does not buy you anything you will use.
Write the use-case description
The reviewer reads this first. It should answer, in plain sentences: who receives these texts, what triggers them, what they contain, how often they come, and how to stop them.
A structure that works:
[Business] uses text messages to communicate with customers who have already contacted us by phone or through our website.
Messages are sent only after a customer initiates contact.
Message types include: appointment confirmations, missed-call follow-ups, replies to customer questions, and service updates.
All messages relate directly to a conversation the customer started with us.
Frequency varies by conversation, typically 1–5 messages.
Customers can opt out at any time by replying STOP.
Notice what it does. It names the trigger (customer initiates). It lists concrete message types that all fit Customer Care. It states frequency. It states the opt-out. It does not say "marketing," "campaigns," "promotions," or "outreach" anywhere — those words on a Customer Care form are a flag.
Describe the messages and the recipients, not the technology producing them. Whether a person, a template, or an assistant composes the text is not what the reviewer is evaluating. Whether the traffic matches the use case and whether recipients consented is.
Write sample messages that match
You will be asked for two to five sample messages. Rules that keep them from being the reason you are rejected:
- They must look like the description. If you said "appointment confirmations and missed-call follow-ups," the samples should be an appointment confirmation and a missed-call follow-up. A sample that reads like a promotion contradicts the Customer Care type.
- Identify the business in the message. Start with who is texting.
- Put opt-out language in at least one, ideally all. "Reply STOP to opt out."
- Use brackets for variables. Reviewers understand
[Name]and[Date]. - No shortened links. If you include a link, make it a full branded URL.
Samples in the shape that gets approved:
Hi [Name], this is [Business]. Thanks for calling earlier. If you'd like to continue the conversation, reply here and we'll help you. Reply STOP to opt out.
Hi [Name], your appointment with [Business] is confirmed for [Date] at [Time]. Reply STOP to unsubscribe.
Hi [Name], we missed your call. If you still need help, reply here and we'll get back to you shortly. Reply STOP to opt out.
Hi [Name], following up on your inquiry with [Business]. Let us know if you'd like more information. Reply STOP to unsubscribe.
Four samples, four message types, all four named in the description, all four with opt-out language. That consistency is the whole trick.
Describe consent so a stranger could verify it
This is the field that gets the most rejections, and it is where our own first submission failed. The reviewer's job is to confirm that recipients agreed to receive texts. A sentence like "customers consent when they contact us" is not verifiable. You need to describe each consent path concretely enough that the reviewer could go check.
List every way a person can end up receiving texts from you, and for each one, say exactly what they see or hear:
Web form. Give the URL of the form. State that it has an SMS consent checkbox, that the checkbox is unchecked by default, that checking it is not required to submit the form, and quote the disclosure text next to it verbatim. The disclosure should say who is texting, that frequency varies, that message and data rates may apply, and how to STOP and get HELP. Link the privacy policy and terms from the form and give those URLs too.
Customer-initiated text. State that a person who texts your number first is consenting to a reply about their inquiry, and quote the first automated reply — which should itself include the rates disclosure and STOP/HELP instructions.
Phone call follow-up. State that a caller may receive a follow-up text about their call, quote the notice they hear during the call, and state that consent is logged with the phone number and a timestamp.
Then make sure every URL you cited is live and says what you claimed. Reviewers click. A consent description pointing at a contact form with no checkbox is a rejection.
If you maintain a public page describing your texting program — what people receive, how they opt in, how they opt out, that rates may apply — cite it here too. It is inexpensive to publish and it gives the reviewer one place to verify the whole story.
The keyword replies
You will be asked for the exact text of your opt-in confirmation, opt-out confirmation, and help reply. Keep them short, and make sure they match what your system actually sends.
- Opt-in: "You've been subscribed to messages from [Business]. Reply STOP to unsubscribe, HELP for help. Msg & data rates may apply."
- Opt-out: "You have been unsubscribed. You will not receive any more messages from this number. Reply START to resubscribe."
- Help: "Reply STOP to unsubscribe. Msg & data rates may apply."
Do not leave any of these blank or as a dash. A missing opt-in confirmation was one of the specific line items on our own rejection.
Your system must honor STOP, START, and HELP on every number in the campaign — and the list of words that count should be broad: STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT for opting out; START, YES, UNSTOP for opting back in; HELP, INFO for help. Save the opt-out before you send the confirmation, so you never tell someone they are unsubscribed when the save failed.
The rejection reasons that catch almost everyone
In rough order of frequency:
- Consent not verifiable. The description is generic, has no URLs, or points at a page that does not show what it claims. Fix: the section above.
- Business details do not match records. Legal name, EIN, or address differs from IRS data. Fix: use the exact legal entity.
- Use case too vague. "Marketing" or "customer communication" with no specifics. Fix: name the message types and the trigger.
- Samples do not match the use case. A Customer Care campaign with a "20% off this week" sample. Fix: make the samples the message types you listed.
- Missing opt-out language in samples. Fix: "Reply STOP to opt out" in each.
- Blank keyword fields. Opt-in or help reply left empty. Fix: fill all three.
- Wording that reads like marketing on a Customer Care form. "Campaign messages," "outreach," "promotions." Fix: describe replies and follow-ups.
A rejection is not a restart. The reviewer names the item. Fix that item, leave everything else alone, and resubmit.
After approval: attach the numbers
An approved campaign does nothing by itself. Registration attaches to a number through the campaign. In Twilio, every number you want to text from has to be added to the messaging service linked to the campaign. A number outside that service is still unregistered traffic and will be filtered exactly as if you had never registered — error 30034 is the usual signature. If you later buy or port a number, attach it too.
Once your numbers are attached, the KaiCalls A2P Setup page reflects the campaign status, and Kai's texts from those numbers go out as registered traffic. Campaign review commonly takes three to five business days after brand approval. Do not send texts before approval.
A pre-submit checklist
- Brand uses the exact legal entity name, EIN, and address on IRS records
- Campaign type is Customer Care (unless you actually send marketing)
- Description names the trigger, the message types, the frequency, and STOP
- Description contains no marketing vocabulary
- Two to five samples, each one a message type named in the description
- Every sample identifies the business and includes opt-out language
- Consent description covers every path, with verbatim disclosure text
- Every URL cited is live and shows what the description claims
- Web form checkbox is unchecked by default and not required
- Opt-in, opt-out, and help replies are all filled in and match what your system sends
- Your system honors STOP/START/HELP on every number
- Plan to attach every number to the messaging service after approval
FAQ
Which 10DLC campaign type should a small business pick? If your texts are replies, confirmations, and follow-ups to people who contacted you first, Customer Care. Only pick Marketing or Mixed if you actually send promotions, and expect a stricter consent bar if you do.
Why was my campaign rejected for call to action or opt-in? The reviewer could not verify how people agree to receive your texts. Describe every consent path with the exact disclosure text and live URLs for the form, privacy policy, and terms.
Do I have to mention AI in my campaign description? Describe what the messages are and who receives them, not the technology that composes them. Reviewers evaluate use-case fit and consent.
How long does approval take? Brand review commonly takes one to two business days; campaign review three to five more after that. Plan for up to two weeks end to end and do not schedule a texting launch against the optimistic end.
I use a KaiCalls number. Do I need any of this? No. Your number is on KaiCalls' approved Customer Care campaign from the moment it is provisioned. This guide is for businesses that connect their own Twilio account, or anyone who wants to understand what the registration involves. See How KaiCalls Handles A2P 10DLC Registration.
Rather skip the form entirely? A KaiCalls number comes registered. Sign up at kaicalls.com, or call the KaiCalls demo line at (417) 386-2898 and ask Kai.
Topics
Related Posts
The exact mechanics of how KaiCalls registers your business number for texting: a shared Customer Care campaign, enrollment before activation, nightly re-checks, a registered fallback sender, and the content and consent rules that keep it approved.
12 min readA2P 10DLC Explained: Why Your Business Texts Get Blocked and How Registration Fixes ItA plain-English guide to A2P 10DLC — what it is, why carriers filter unregistered business texts, what brand and campaign registration involve, and how KaiCalls handles it for you.
10 min readWhy Your Business Texts Aren't Delivering: A 10DLC Troubleshooting GuideTexts show as sent but customers never get them? Work through the six causes in order — unregistered number, carrier filtering (error 30034), daily caps, spam-looking content, opt-outs, and quiet hours — with the fix for each.
10 min read