Switch from Twilio: import your A2P 10DLC brand and campaigns
If you already registered an A2P 10DLC brand and campaigns through Twilio, you do not have to retype everything by hand. Paste your Twilio Account SID and auth token once, and we read what Twilio's API actually exposes, then prefill our registration wizard with it.
How it works
From the Brands page, choose Import from Twilio next to Register a brand. Paste your Account SID and auth token, and we do a one-time, read-only pass over Twilio's API on your behalf. You then pick which of your Twilio brands to bring over.
Picking a brand opens our normal brand wizard with the entity type and identity fields we could read already filled in, every one of them still editable. Nothing is created until you review the wizard and submit it yourself, through our normal registration flow and our normal fees. Once that brand submits, the campaigns Twilio had registered against it show up as pickable draft prefills for the campaign wizard: use case, description, sample messages, and opt-in flow carried over, opt-out keywords and help message carried over too when Twilio's record actually had them.
What imports
We read your business identity from Twilio's Trust Hub customer profile (the resource that actually holds legal name, EIN, entity type, vertical, and address), and your campaign details from Twilio's messaging campaign resource. Fields map only where Twilio's API actually returns them. Nothing is invented.
| Field | Where it comes from |
|---|---|
| Legal business name | Trust Hub customer profile business information |
| Entity type | Trust Hub business type, mapped to our entity types |
| EIN | Trust Hub business registration number, when Twilio marks it as an EIN and does not mask it |
| Vertical / industry | Trust Hub business industry, mapped to our vertical list |
| Website | Trust Hub business information |
| Business address | Trust Hub address record linked to the profile |
| Use case | The campaign's declared use case, mapped to our use-case list |
| Description and sample messages | The campaign record |
| Opt-in flow | The campaign record |
| Opt-out keywords | The campaign record, when Twilio populated them |
| Help message | The campaign record, when Twilio populated it |
| Contact email | The Trust Hub profile's status-notification email. Worth checking: it may be an ops mailbox rather than your compliance contact, and it stays editable like everything else |
When Twilio's business type or use case value does not map cleanly to one of ours, we do not guess. The wizard shows a "needs your choice" hint naming Twilio's raw value instead of silently picking the closest one, so you decide.
What does not import
Twilio's read API leaves some things out entirely, and a couple of fields arrive masked. We list every gap honestly in the picker rather than leave a blank field with no explanation.
| Field | Why it does not carry over |
|---|---|
| TCR identity status | Twilio exposes its own review status, but review status is not portable between registrations. Your identity is reviewed fresh as part of registering with us. |
| Brand vetting score | A Twilio-side score, not portable. Order our optional identity vetting separately if you want one. |
| Per-carrier campaign status | Carrier-specific approval states live on Twilio's side of the registry and do not transfer. |
| DBA / brand name | No reliable source field on the resources we read. You re-enter it. |
| Contact phone | Not exposed on the profile fields we read. You re-enter it. |
| EIN when Twilio masks it | Some accounts return a masked EIN. We never guess the missing digits. The field stays empty with a hint. |
Every field we could not read is listed plainly on the brand card in the picker, and the brand wizard adds inline hints for the identity fields (entity type, EIN, industry). Nothing is a silent blank; you re-enter the gaps the same way you would for a fresh registration.
The security model
Your Account SID and auth token are used once, server-side, for a one-time read of Twilio's API. They are never written to our database and never appear in any log line, on any error path. This is not a connected integration: there is no stored token, no ongoing sync, and no webhook back to your Twilio account.
If the credentials are wrong, expired, or rate-limited by Twilio, you get a specific error back (bad credentials, rate limited with a wait hint, or Twilio unreachable), never a silent failure. Close the dialog and the fields are cleared.
Fees
Importing itself is free. Registering the brand and campaigns you bring over charges our normal registration fees, the same ones a brand-new registration would pay. See the campaign fee table for exact numbers. Nothing changes on Twilio's side: your existing Twilio registrations stay exactly as they are.
FAQ
Does this cancel my Twilio registration?
No. Importing only reads your Twilio data. Your brand and campaigns at Twilio are untouched and keep sending there until you decide to cancel that service yourself, directly with Twilio.
Do carriers re-review my brand and campaigns with you?
Yes. Registering with us, even from imported data, is a new registration with The Campaign Registry (TCR). Carriers review your identity and campaigns again under our registration, the same async review any new brand or campaign goes through.
What if I have more than one brand at Twilio?
The picker lists every brand your credentials can read. Import them one at a time, each through its own pass of the wizard.
Next steps
- Register an A2P 10DLC brand: the full field walkthrough if you would rather start fresh, or want to see what the wizard asks for before you import.
- A2P 10DLC campaign registration: every self-serve use case and the complete fee table.
- Business identity, caller ID & SHAKEN/STIR: the reusable compliance profile an imported brand feeds into once it is registered with us.
- What is A2P 10DLC?: why this registration exists at all.