10DLC Campaign Rejected (Error 30919): Fix It for a Trades Business

We may earn a commission when you buy through links on this page. It never changes a score.

Map of Twilio 10DLC campaign rejection codes: 30919 website lacks business or use-case info, 30920 website is only a form, 30907 website URL validation, 30908 privacy policy, 30909 message flow, 30893 sample messages, 30892 URL shortener

Twilio error 30919 on a 10DLC campaign means the reviewers opened your website and could not confirm who you are or why you text customers. For an HVAC, plumbing or roofing company that usually comes down to a thin site: a home page with a phone number, a quote form with no texting consent, and no privacy policy that says what happens to a customer’s mobile number. The fix is mostly on the website, not in Twilio.

How we put this together: researched from Twilio’s error pages for codes 30907, 30908, 30909, 30919 and 30920, its campaign troubleshooting guide, its 10DLC pricing page and its campaign vetting FAQ, all read on November 13, 2026. Researched from vendor pages, not hands-on tested: we have not submitted a campaign for a trades business, and the sample wording below is our adaptation of Twilio’s stated requirements, not legal advice. See our research and testing methods.

Map of Twilio 10DLC campaign rejection codes: 30919 website lacks business or use-case info, 30920 website is only a form, 30907 website URL validation, 30908 privacy policy, 30909 message flow, 30893 sample messages, 30892 URL shortener
Which part of your setup each rejection code points at. Summarized from Twilio’s error dictionary, read November 13, 2026.

If you have not registered yet and have no EIN, start with our guide to A2P 10DLC registration for sole-proprietor contractors; this page is for the moment after a standard or low-volume campaign comes back rejected.

Error 30919 in plain words, and the codes that come with it

Twilio’s title for error 30919 is “Campaign rejected: Website lacks sufficient business or messaging use case info.” The reviewer needs the site to show three things in public: who the business is, what it does, and how a customer agrees to get texts. Twilio’s listed causes include a site that is empty, unfinished, password-protected or misspelled, a site that does not describe the services, an unclear opt-in, missing disclosures (frequency, data rates, opt-out), and a privacy policy that does not say opt-in data is not shared or sold.

A rejection often lists more than one code. The website-related ones overlap, so read them together:

Code Twilio’s title (short) What it points at on a trades site
30919 Website lacks sufficient business or messaging use case info The whole site: name, services, contact details, how people opt in
30920 Website is only a form; insufficient business context You submitted a landing page or a lone quote form instead of your main site
30907 Website URL validation issue The site, brand name, campaign description and sample texts do not describe the same business
30908 Compliant privacy policy required No privacy page, two conflicting ones, or wording that allows sharing numbers for marketing
30909 Message flow or call to action incomplete/unverified The consent wording at your form, and the message flow field in the campaign
30893 Invalid sample message use case Sample texts that do not match the use case or never name the business
30892 URL shortener in sample message A bit.ly or similar link in a sample; use your own domain

The first five rows come from Twilio’s individual error pages; 30892 and 30893 come from its campaign troubleshooting guide. Twilio announced 30907, 30908 and 30909 in a November 15, 2023 changelog.

Why contractor websites trip this review

Most rejected trades sites are simply built for phone calls, not texting. Three patterns match Twilio’s listed causes:

  • The one-page “call us” site. A logo, a phone number, a service-area line and a contact form. There is nothing that explains the texting program, and often no privacy page at all. That is the core of 30919.
  • The ad landing page. Many companies submit the page their Google Ads or LSA traffic lands on, which is a form with a headline. Error 30920 says to submit your main business website instead of a campaign-specific landing page or lead capture form.
  • The template privacy policy. Website builders often ship a generic policy that says data may be shared with “partners” or “affiliates.” Error 30908 says statements that allow sharing mobile information for marketing cause rejection.

One more trap if your texts go through a CRM, field service app or booking tool: Twilio’s error 30907 page says a software vendor must register the end customer’s brand and website, not its own. Your campaign has to point at your company’s site, with your name on it.

Five things the website needs before you resubmit

Every item below has to be public: no login, no password, no “coming soon” page. Twilio says that if your opt-in pages are not publicly reachable, you can give a public URL with hosted screenshots of the flow instead.

Checklist of five things an HVAC, plumbing or roofing website needs before 10DLC review: business identity, services page, SMS consent at the form, privacy policy, SMS terms
Our checklist, built from the causes and fixes on Twilio’s error pages for 30907, 30908, 30909, 30919 and 30920.
  1. Business identity. The same business name you registered as the brand, plus phone, email and service area, ideally in the footer of every page.
  2. A services page. What you install, repair or maintain. A reviewer reading “appointment reminders and service updates” needs to see that you actually book appointments.
  3. SMS consent at the form. Twilio’s error 30909 page says a website consent request should clearly ask for SMS permission, any checkbox should be optional and unchecked by default, and the text should cover message frequency, a message-rates disclosure, and opt-out and help instructions, with your brand named.
  4. A privacy policy with an SMS clause. One policy, linked from the form page, stating that mobile information and messaging consent are not shared with third parties or affiliates for marketing or promotional purposes.
  5. SMS terms. A short terms page or section: what you text, how often, that rates may apply, how to stop and get help, and how to reach you. Twilio’s fixes for 30909 ask for public Privacy Policy and Terms URLs.

Wording you can adapt for an HVAC, plumbing or roofing site

These drafts follow the elements Twilio lists. Swap in your own business name and check them against your actual practice; if you do share data with a vendor for something other than sending your texts, say so accurately instead of copying the line.

Next to the quote or booking form (unchecked checkbox, not required to submit the form):

[ ] Yes, text me about my service request. By checking this box, I agree to receive appointment confirmations, technician arrival updates and follow-ups from Smith Heating & Air at the number above. Message frequency varies, about 2 to 6 messages per job. Message and data rates may apply. Reply STOP to opt out, HELP for help. See our Privacy Policy and SMS Terms.

Privacy policy, SMS section:

Text messaging. If you opt in to texts, we use your mobile number to send messages about your service requests, appointments and invoices. Mobile information and SMS consent are not shared with or sold to third parties or affiliates for marketing or promotional purposes. You can opt out at any time by replying STOP.

SMS terms, short version:

Smith Heating & Air sends service texts to customers who opt in on our website or ask us to text them. Messages cover appointment confirmations, arrival windows, estimates and invoices. Frequency varies by job. Message and data rates may apply. Reply STOP to cancel and HELP for help, or call (555) 010-0199.

The “about 2 to 6 messages per job” figure is an example; put a number that matches how your team really texts. Twilio’s pages ask for frequency to be disclosed but do not set a number.

Make the campaign form say what the website says

Error 30907 exists because reviewers compare the website, the brand, the campaign description, the message flow and the sample messages against each other. A plumbing site that says “emergency repairs” paired with sample texts about a spring sale reads like two different programs.

Message flow field. Twilio’s 30909 page asks for every opt-in path described end to end in 40 to 2,048 characters. For a typical trades company that might be: “Customers opt in on the request-service form at [yoursite].com/contact by checking an optional, unchecked box with the disclosure [quote it]. Customers who call can also ask a dispatcher to text them; the dispatcher reads this script: [script].” Twilio says verbal opt-in needs the full script, not a single line.

Sample messages. Twilio’s troubleshooting guide says samples should match the use case, use brackets for fields that change, and include your business name in at least one. For an HVAC or roofing company:

  • “Smith Heating & Air: your AC tune-up is booked for [date] between [time window]. Reply C to confirm or call (555) 010-0199 to reschedule. Reply STOP to opt out.”
  • “Smith Heating & Air: [tech name] is on the way and should arrive in about [minutes] minutes.”
  • “Ridgeline Roofing: your estimate for [address] is ready: [yoursite].com/estimate/[id]. Questions? Reply here. STOP to opt out.”

Keep links on your own domain; Twilio’s guide says public shorteners such as bit.ly lead to rejection (30892). If the campaign also covers missed-call auto-replies, describe that flow too: a caller who rings your business line and gets a text back is a different consent path from the web form. Our missed call text back setup guide covers what that first text should say, and roofers can see the storm-season version in missed-call text back for roofing contractors.

Resubmit, don’t recreate: what a second try costs

Twilio’s troubleshooting guide says the campaign vetting fee is charged once per campaign, at its first vetting decision, and that deleting and recreating a failed campaign brings a new fee. Editing and resubmitting the same campaign avoids that. Its vetting FAQ also warns that “additional charges may occur with re-submission” when vetting denies a campaign, without saying how much, so check your console before you click.

Twilio 10DLC fees: brand registration $4 or $44 one-time, campaign vetting $15 one-time per campaign, monthly campaign fee $1.50 to $10; edit and resubmit instead of recreating
Twilio’s published 10DLC fees. twilio.com 10DLC page and campaign vetting FAQ, checked November 13, 2026.
Twilio 10DLC fee Standard Low-volume standard Sole proprietor
Brand registration (one-time) $44 $4 $4
Campaign vetting (one-time per campaign) $15 $15 $15
Monthly campaign fee $1.50 to $10 $1.50 to $10 $2

Prices checked November 13, 2026, on Twilio’s 10DLC page. Twilio’s campaign vetting FAQ calls the $15 fee non-refundable.

Timing matters for a trades business. Twilio says review takes up to 5 business days for standard use cases, and that you can contact support if vetting is still in progress after 10 days. A rejection in late May can leave an AC company without texting going into its busiest weeks, so fix every listed code in one pass instead of resubmitting after each small change.

Booking tools that send reminders through your own Twilio account run into the same registration; our BookingKoala pricing breakdown shows how that Twilio cost sits next to the software bill.

A resubmission routine for a small shop

  1. Write down every code on the rejection, not only 30919.
  2. Open your website in a private browser window and confirm the home page, services page, contact form, privacy policy and SMS terms all load without a login.
  3. Add or fix the form consent text and the privacy SMS clause; delete any old, conflicting policy.
  4. Put the main site URL (not an ad landing page) in the campaign, and the privacy and terms URLs in their fields.
  5. Rewrite the campaign description, message flow and samples so they describe the same texts the website promises.
  6. Edit and resubmit the existing campaign, then allow up to 5 business days.

More phone and texting guides for contractors are in our business phone and SMS hub.

Sources

Used this tool? Tell other business owners how it went

Your email address will not be published. Required fields are marked *