SMS gets a 98% open rate. The average response time is 90 seconds. No other channel comes close β€” not email, not push, not social. Yet most businesses treat it like a broadcast tool, blast promotions at opted-in contacts, and then wonder why opt-out rates are climbing.

This playbook is the opposite of that. NetWebMedia runs 100% of client communication through text-based channels β€” no phone calls, ever. Every lead, follow-up, sale, onboarding, review request, and re-engagement happens through SMS, Instagram DM, Facebook Messenger, or a combination of all three. This document is the operational architecture behind that system: seven modules, 31 lessons, every template copy-paste ready, bilingual where it matters.

SMS open rates: 98%. Email open rates: 20–22%. The gap has been stable for a decade. Automate the high-open channel first.
Module 1 Β· 5 Lessons

Compliance, Opt-In & Legal Foundation

Before a single message goes out, the legal architecture has to be airtight. TCPA violations in the US start at $500 per message and climb to $1,500 for willful violations. In 2023 the FCC closed the "lead generator loophole" β€” consent obtained through third-party lead gen forms no longer transfers to the business. You need explicit, individual, documented consent. Everything in this module is built around that reality.

Lesson 1.1

TCPA, CTIA, and Why the Rules Changed in 2024

Framework: The Consent Stack

The Telephone Consumer Protection Act (TCPA) governs SMS marketing in the United States. The CTIA β€” the wireless industry's self-regulatory body β€” layers additional best-practice requirements on top. Together they define what "legal" looks like for any automated messaging program. The key 2024 FCC ruling (Report and Order, FCC 23-107, effective January 27, 2025) ended blanket consent β€” meaning a single opt-in cannot cover multiple unrelated sellers. Each brand needs its own consent record for each contact.

The Consent Stack framework has four levels. Level 1 is express written consent β€” the gold standard, required for marketing messages. Level 2 is express consent β€” acceptable for informational/transactional messages. Level 3 is prior express consent β€” acceptable for debt collection, healthcare, and certain service messages. Level 4 is no consent β€” you cannot message this contact for any commercial purpose. Every contact in your CRM needs a consent level assigned. Defaulting to "unknown" is a compliance exposure, not a neutral state.

In Chile and LATAM, the equivalent framework is the Ley 19.628 (Chile), LGPD (Brazil), and various national data-protection laws. The principle is the same: documented, specific, revocable consent. The practical difference is enforcement β€” US TCPA class actions are aggressive and well-funded; LATAM enforcement is growing but less litigious for now. Build to US standards and you're covered everywhere.

Action Checklist β€” Lesson 1.1
  • Audit every existing SMS contact: document how and when consent was obtained
  • Flag any contact where consent source is "unknown" β€” suppress from automated sends until re-consented
  • Review your lead capture forms: confirm each form names your brand specifically, not a category
  • Download and file a copy of FCC Report and Order FCC 23-107 for your compliance records
  • Map your contact list to a Consent Stack level (1–4) and store that level as a CRM field
Lesson 1.2

Building a Bulletproof Double Opt-In Flow

Framework: The 3-Touch Consent Loop

Single opt-in β€” a checkbox on a form β€” is legally sufficient for TCPA compliance when the language is specific and visible. It is not sufficient for deliverability. Carriers and aggregators are increasingly filtering messages from senders whose lists show high opt-out rates. Double opt-in (a confirmation message the contact must reply to) reduces opt-out rates by 40–60% in most deployments because it confirms the contact actually wants messages and that the phone number is correct. Build double opt-in as your default, not a precaution.

The 3-Touch Consent Loop works as follows. Touch 1: the contact submits a form, checks in at a location, or scans a QR code β€” providing their phone number and ticking a clearly-worded consent checkbox. Touch 2: within 60 seconds, an automated SMS goes out asking them to confirm by replying YES (or the equivalent keyword). Touch 3: their YES reply triggers the welcome sequence and logs consent-confirmed with a timestamp. Each touch is logged separately: form submission timestamp, confirmation request timestamp, confirmation reply timestamp. That three-record trail is your legal defense if a dispute arises.

Instagram DM and Facebook Messenger have different consent mechanics. Users who initiate a conversation with your business via DM have given implied consent for that thread. You can send automated responses within that thread. Initiating a cold DM to someone who has never messaged you is against Meta's policies β€” and in some jurisdictions, against the law. The rule for Meta platforms: respond to inbound, do not cold-initiate.

SMS β€” Double Opt-In Confirmation Request (EN)
{{BrandName}}: Thanks for signing up! Reply YES to confirm you want texts from us. Msg&data rates may apply. Reply STOP to cancel. HELP for help.
160 chars max. Count yours before sending. This is 152 chars with short brand name β€” safe.
SMS β€” ConfirmaciΓ³n Doble Opt-In (ES)
{{NombreMarca}}: Gracias por registrarte. Responde SÍ para confirmar que quieres recibir mensajes. Pueden aplicar tarifas. Responde STOP para cancelar.
153 chars. Fits within 160-char limit. Test with your actual brand name.
SMS β€” Welcome After Confirmation (EN)
{{BrandName}}: You're in! Expect updates, exclusive offers, and fast answers here. Reply STOP anytime to opt out. HELP for help. Talk soon!
140 chars. Welcome messages with clear STOP instruction dramatically reduce carrier filtering.
SMS β€” Bienvenida Tras ConfirmaciΓ³n (ES)
{{NombreMarca}}: Β‘Ya estΓ‘s dentro! RecibirΓ‘s actualizaciones, ofertas y respuestas rΓ‘pidas aquΓ­. Responde STOP para cancelarte. Β‘Hablamos pronto!
148 chars. Fits within limit.
Action Checklist β€” Lesson 1.2
  • Build the confirmation-request message into your opt-in flow before any marketing message fires
  • Create a CRM field: consent_confirmed (boolean) + consent_confirmed_at (timestamp)
  • Set up automation: contacts who never reply YES within 48h get tagged "unconfirmed" and suppressed
  • For Instagram/FB: configure your auto-reply to trigger only on inbound DM, never cold-initiate
  • Test the full loop end-to-end with your own phone number before launching
Lesson 1.3

Mandatory Keyword Commands: STOP, HELP, JOIN

Framework: The Keyword Compliance Triangle

Three keywords are mandatory under CTIA guidelines and recognized by every major US carrier: STOP (and its variants: STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT), HELP (and INFO), and JOIN (or START, YES). Your platform must handle all variants of each. A contact texting UNSUBSCRIBE must get the same result as one texting STOP. Failing to honor any variant is a TCPA exposure.

The Keyword Compliance Triangle defines what each keyword must do and how fast. STOP triggers an immediate opt-out confirmation message (no marketing content allowed), sets a do-not-contact flag in your CRM, and prevents any future automated messages β€” including transactional ones unless the contact re-opts in. HELP triggers a message that identifies the sender, provides a contact method (email or phone), and reminds them how to opt out. JOIN or START re-enables messaging for contacts who previously opted out β€” this requires the contact to initiate the keyword, not the brand. Response time for all three: immediate (under 5 seconds). Never delay compliance keyword responses behind a queue or rate limiter.

For LATAM deployments: Chile's SernacFinanciero and Colombia's SIC both recognize STOP as a standard opt-out. Argentina and Mexico have similar provisions under their respective consumer-protection laws. Use STOP universally. For Spanish-speaking contacts, DETENER and BASTA are common equivalents β€” configure your platform to recognize both. When in doubt, honor any opt-out language regardless of keyword; the legal risk of messaging an unwilling recipient always outweighs the revenue from that contact.

SMS β€” STOP Confirmation (EN)
{{BrandName}}: You've been unsubscribed. No more texts from us. Text JOIN to re-subscribe or email {{SupportEmail}} for help.
No promotional content. No links. No follow-up messages. This message and silence after.
SMS β€” ConfirmaciΓ³n STOP (ES)
{{NombreMarca}}: Te diste de baja. No recibirΓ‘s mΓ‘s mensajes. Escribe UNIRSE para volver o contacta {{EmailSoporte}}.
SMS β€” HELP Response (EN)
{{BrandName}} SMS Help: Msgs from {{BrandName}}. Support: {{SupportEmail}}. Msg&data rates may apply. Reply STOP to cancel. Up to {{MsgFrequency}} msgs/mo.
Keep under 160 chars. Replace {{MsgFrequency}} with your actual figure, e.g. "4 msgs/mo."
Action Checklist β€” Lesson 1.3
  • Configure your SMS platform to handle: STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT (all variants)
  • Add Spanish variants: DETENER, BAJA, CANCELAR β€” map all to opt-out action
  • Configure HELP to fire within 5 seconds β€” test it yourself right now
  • Confirm CRM flag is set automatically when STOP is received β€” not manually, not on a delay
  • Test JOIN/re-subscribe flow: opt out with your own number, then re-subscribe, confirm the flow works
Lesson 1.4

Consent Documentation: What to Store and Where

Framework: The Consent Paper Trail

TCPA litigation almost always comes down to documentation. Plaintiffs claim they never consented. Defendants who win show the paper trail. The minimum viable consent record has six fields: contact phone number, timestamp of consent, source URL or physical location where consent was collected, the exact consent language shown to the contact at time of collection, IP address (for web forms), and the agent or system that processed the opt-in. Every field matters. "They checked a box" without the timestamp and language is not a defense.

The Consent Paper Trail framework stores this data in three places simultaneously. First: your SMS platform's native consent log. Most enterprise platforms (Twilio, Attentive, Klaviyo, GHL) have this built in β€” verify it is turned on. Second: your CRM, with all six fields as structured data (not a text note). Third: a cold-storage backup, such as a monthly CSV export to encrypted cloud storage. The redundancy is deliberate. Platforms get acquired, change data retention policies, or have outages. Your legal defense cannot depend on a SaaS company's data availability four years from now.

For Instagram DM and Facebook Messenger: Meta provides a message-level timestamp in its API. Store the first inbound message timestamp as your implied-consent date. For any DM-based marketing campaign where you're sending promotional content (not just responding), collect explicit consent via a landing page linked from the DM, with the same documentation standards as SMS.

Action Checklist β€” Lesson 1.4
  • Add these six CRM fields: consent_source, consent_language, consent_timestamp, consent_ip, consent_platform, consent_agent
  • Verify your SMS platform's consent logging is active β€” pull a test record to confirm data is being written
  • Set up a monthly automated export of consent records to encrypted backup storage
  • For Meta DMs: store first-inbound-message timestamp as implied_consent_date in CRM
  • Document your consent language in a version-controlled file β€” if you update the language, keep all prior versions with effective dates
Lesson 1.5

US vs. Chile/LATAM Compliance: Key Differences

Framework: The Dual-Jurisdiction Checklist

The US TCPA framework is strict, litigious, and enforced primarily through private class-action lawsuits. Chile's Ley 19.628 on data protection and the 2022 updates under the Ley Marco de Ciberseguridad are enforced by the Consejo para la Transparencia and subject to SERNAC complaints. The practical risk profile is different: US violations create immediate class-action exposure; Chilean violations more often result in regulatory complaints and fines. Brazil's LGPD (Lei Geral de ProteΓ§Γ£o de Dados) is the most robust in the region and carries significant fines for willful violations.

The Dual-Jurisdiction Checklist addresses the five areas where requirements diverge. First, consent language: TCPA requires the consent language to explicitly name that autodialing/automated texts may be used; Chilean law requires the purpose to be specified but not the technical method. Second, opt-out mechanism: STOP is recognized universally, but LATAM platforms do not always process it natively β€” verify your carrier. Third, marketing hours: CTIA recommends 8am–9pm local time; Chile's consumer protection code prohibits contact outside of 8am–10pm. Fourth, message frequency disclosure: CTIA requires it in opt-in language ("up to X msgs/month"); Chilean law does not require a specific frequency disclosure but requires transparency about the nature of the service. Fifth, data residency: LGPD prefers Brazilian data to remain in Brazil; consider a regional data store if you have significant Brazilian contacts.

Action Checklist β€” Lesson 1.5
  • Tag contacts by jurisdiction in your CRM: US, CL, BR, MX, CO, AR β€” at minimum distinguish US from LATAM
  • Build separate opt-in forms for US vs. LATAM with jurisdiction-appropriate consent language
  • Configure send-time restrictions: 8am–9pm for US contacts; 8am–10pm for Chilean contacts, local time
  • Verify your SMS carrier/aggregator handles STOP for each country's number range (CL: +56, BR: +55, etc.)
  • If you have 5,000+ Brazilian contacts, consult an LGPD specialist on data residency requirements
Module 2 Β· 5 Lessons

Keyword Triggers & Auto-Response Architecture

Keyword triggers are the nervous system of a text-based automation stack. A contact texts a word. The system recognizes it, selects the right response, and executes a workflow β€” all in under two seconds. Built right, this feels like talking to a company that has its act together. Built wrong, it's a maze of confusing responses that trains contacts to stop texting entirely.

Lesson 2.1

Building Your Trigger Keyword Library

Framework: The Keyword Taxonomy (4 Tiers)

Not all keywords are equal. Some unlock legal requirements (STOP, HELP). Some capture intent at the top of the funnel (INFO, DEMO, QUOTE). Some advance a sale (YES, CONFIRM, BOOK). Some signal a problem (CANCEL, PAUSE, WAIT). Treating all keywords the same way β€” routing them to the same response queue β€” is one of the most common and costly mistakes in SMS automation. The Keyword Taxonomy separates keywords into four tiers, each with different handling logic.

Tier 1 β€” Compliance Keywords: STOP, HELP, START, JOIN. These are handled by your platform at the carrier level first, then by your CRM. Never override these in your custom logic layer. Tier 2 β€” Intent Keywords: INFO, LEARN, DEMO, QUOTE, PRICE, COST, APPLY, JOIN (context-dependent), FREE, OFFER. These fire top-of-funnel nurture sequences. Tier 3 β€” Action Keywords: YES, CONFIRM, BOOK, SCHEDULE, BUY, ORDER, CLAIM, REDEEM. These advance a contact through the pipeline. Tier 4 β€” Recovery Keywords: CANCEL, PAUSE, HOLD, WAIT, NO, NOT NOW, MAYBE, BUSY. These trigger save sequences or time-delay re-engagement.

Platform-specific limits matter. Standard SMS platforms (Twilio, Bandwidth): no technical keyword limit, but carrier content policies apply. GHL (GoHighLevel): keyword triggers in the workflow builder β€” practical limit of 50–100 active triggers before performance degrades. Instagram DM automation (via ManyChat or native Meta tools): keyword triggers are case-insensitive, 50-keyword limit per automation on most plan tiers. Facebook Messenger via Meta's API: similar 50-keyword limit in third-party tools; Meta's native automated responses handle a smaller subset. Plan your library with these limits in mind β€” prioritize high-volume, high-intent keywords first.

Action Checklist β€” Lesson 2.1
  • Document your Tier 1–4 keyword library in a spreadsheet before building any automations
  • Map each keyword to: response message, next workflow, CRM tag, and priority tier
  • Check your platform's active keyword limit β€” stay under 80% of that limit to preserve headroom
  • Test for case sensitivity: confirm INFO, info, and Info all trigger the same response
  • Add common misspellings for high-value keywords (QOUTE β†’ QUOTE, CANCLE β†’ CANCEL)
Lesson 2.2

Response Mapping: Connecting Keywords to Outcomes

Framework: The Trigger-Response Matrix

A keyword without a mapped response is an open loop. A response without a CRM action is a dead end. The Trigger-Response Matrix maps each keyword to three things simultaneously: the immediate reply (what the contact receives within 2 seconds), the CRM action (tag added, pipeline stage moved, field updated), and the next automation step (sequence enrollment, human handoff, or end state). All three need to be defined before you activate any keyword. This matrix is your source of truth β€” when something breaks, you start here.

The most important column in the matrix is "expected follow-up action." A contact who texts QUOTE expects a price or a question that leads to one. If your QUOTE response is "Thanks for your interest! Someone will get back to you soon," you have broken their expectation. They texted because they wanted an immediate answer. Every response must either deliver the answer or ask the one question needed to deliver it. Multi-step response chains are fine β€” but every step must move the conversation forward, not stall it.

SMS β€” QUOTE keyword response (EN) SMS
{{BrandName}}: Got it! Quick question β€” what service do you need a quote for? Reply with the number: 1. {{Service1}} 2. {{Service2}} 3. {{Service3}} Or reply CALL and we'll reach out.
Use numbered menus for SMS β€” they reduce friction and produce structured replies your automation can read.
Instagram DM β€” INFO keyword response (EN) Instagram
Hey {{FirstName}}! Thanks for reaching out to {{BrandName}}. Here's what we do: {{OneLinerDescription}}. Want to see pricing, or have a specific question? Just reply here β€” we'll get back to you fast.
Instagram DMs support longer messages β€” no 160-char constraint. Use it. But keep the first line punchy β€” it appears as the notification preview.
Facebook Messenger β€” DEMO keyword response (EN) Messenger
Hi {{FirstName}}! We'd love to show you {{ProductName}} in action. Our demos run 20 minutes and cover exactly what's relevant to your business. Pick a time that works: {{CalendlyLink}} Or just reply with your availability and we'll make it work.
Action Checklist β€” Lesson 2.2
  • Build the Trigger-Response Matrix as a spreadsheet: keyword | immediate reply | CRM action | next step
  • For every Tier 2 and Tier 3 keyword, define the "expected outcome" from the contact's perspective
  • Audit each response: does it deliver or move toward delivering what the contact expected?
  • Set CRM tags for every keyword trigger β€” at minimum: keyword_triggered, trigger_date, trigger_platform
  • Build a "fallback" response for unrecognized replies (see Lesson 4.2)
Lesson 2.3

Time-Based Routing: When the Clock Matters

Framework: The Time Window Router

A contact who texts at 11pm is different from one who texts at 2pm on a Tuesday. The message they receive should reflect that. Time-based routing is not about limiting when you respond β€” it is about making the response contextually appropriate and setting accurate expectations. A contact who texts at midnight and receives an immediate "Our team will be in touch in 2 minutes!" will be frustrated when no one follows up. The same contact who receives "Got your message β€” our team is offline, but you'll hear from us first thing at 9am ET" will appreciate the transparency.

The Time Window Router defines four windows. Business hours (configurable, typically 9am–6pm local): full automation + human handoff available. Extended hours (6pm–9pm): automation only, no human handoff, longer wait-time disclosure. After hours (9pm–8am): automation only, next-business-day expectation set explicitly. Weekends: automation only, next-Monday response for anything requiring a human. For multi-timezone operations, route by contact's local time, not your business's timezone. Your CRM should store contact timezone β€” if it doesn't, capture it at opt-in or infer it from area code.

SMS β€” After-Hours Auto-Reply (EN) SMS
{{BrandName}}: Hi {{FirstName}}! We got your message. Our team is offline right now but you're first in line β€” expect a reply by {{NextBusinessDay}} at 9am. Need something urgent? Email {{UrgentEmail}}.
155 chars with short names. Replace {{NextBusinessDay}} dynamically β€” "Monday" or "tomorrow" based on day of week.
SMS β€” Respuesta Fuera de Horario (ES) SMS
{{NombreMarca}}: Hola {{Nombre}}, recibimos tu mensaje. Estamos fuera de horario, pero eres el primero en la lista. Te respondemos el {{ProximoDiaHabil}} a las 9am.
158 chars β€” fits. Adjust time to local business timezone for LATAM contacts.
Action Checklist β€” Lesson 2.3
  • Define your four time windows and document them in your automation platform
  • Configure timezone detection: use contact's area code to infer timezone if not explicitly stored
  • Build the after-hours response before your first keyword goes live β€” contacts don't observe business hours
  • Test after-hours routing by triggering a keyword from your phone at 11pm
  • Set a human-handoff SLA for business-hours responses and put it in the auto-reply copy
Lesson 2.4

Multi-Keyword Logic: When Contacts Send Multiple Words

Framework: The Intent Priority Stack

Contacts do not read instructions. They text "I want a quote for marketing services ASAP" rather than just "QUOTE." They text "cancel my appointment" rather than just "CANCEL." Natural-language input that contains multiple possible trigger keywords is the failure point of most simple SMS automations. The platform sees "cancel" and fires the cancellation flow, missing the "appointment" context entirely. Or it sees nothing recognizable and fires the fallback. Neither outcome is correct.

The Intent Priority Stack resolves this with a clear priority order. When multiple keywords are detected in a single message, the system evaluates them in this order: Tier 1 (compliance) wins over everything. Within Tier 2–4, the most specific keyword wins over the most general. If specificity is equal, the Tier 3 action keyword wins over Tier 4 recovery and Tier 2 intent. This stack is implemented as an ordered conditional in your automation platform β€” most platforms support this with "first match wins" logic if you order your rules correctly. Test every combination of your high-volume keywords against each other before going live.

Action Checklist β€” Lesson 2.4
  • List every pair of commonly co-occurring keywords in your library and define which wins
  • Configure "first match wins" or ordered conditional logic in your automation platform
  • Test 20 natural-language messages that contain embedded keywords β€” confirm each routes correctly
  • Build a catch-all for messages that match zero keywords (Lesson 4.2 covers the response)
  • Log keyword-match failures in a monthly report β€” use them to expand your keyword library
Lesson 2.5

Platform-Specific Keyword Limits and Workarounds

Framework: The Platform Constraint Map

Every platform has constraints. Knowing them in advance prevents the painful rebuild halfway through a deployment. For SMS via dedicated long codes (10DLC): no technical keyword limit, but carriers filter "keyword-stuffed" opt-in confirmations. Keep your keyword menu choices to 3–5 options per message. For toll-free numbers: similar to 10DLC; verified toll-free numbers have better throughput (1 msg/sec vs 1 msg/10 sec for unverified). For shortcodes: fastest throughput (100 msg/sec), highest cost, and most restricted to pre-approved keyword/response pairs submitted at registration. Plan 6–8 weeks for shortcode provisioning.

For Instagram DM automation via ManyChat: 50 keyword triggers on the Growth plan, 10 on the free plan. Workaround: use a single catch-all keyword trigger that routes to a quick-reply menu, reducing the number of distinct keyword automations needed. For Facebook Messenger via ManyChat or Chatfuel: same 50-keyword practical limit. Meta's own "Instant Reply" and "Frequently Asked Questions" tools handle up to 5 FAQs natively. For WhatsApp Business API (relevant for LATAM): keyword triggers are supported, but WhatsApp's template approval process applies to all outbound messages sent outside a 24-hour session window. Build your template library and get them approved before you need them.

Action Checklist β€” Lesson 2.5
  • Document which phone number type you're using (10DLC, toll-free, shortcode) and its throughput limit
  • If using 10DLC, confirm your brand and campaign registration is complete β€” unregistered 10DLC numbers are filtered heavily by major carriers
  • For Instagram/FB: architect your keyword flow to stay under 40 active triggers (buffer below the 50 limit)
  • For LATAM WhatsApp: submit your message templates for approval 2+ weeks before any campaign launch
  • Build the Platform Constraint Map: one row per platform, columns for keyword limit, throughput, cost, and approval requirements
Module 3 Β· 4 Lessons

Drip Sequences & Nurture Automation

A drip sequence is a pre-scheduled series of messages sent to a contact based on their behavior or status. The word "drip" misleads some marketers into thinking slow and steady. In SMS, the right cadence is faster than email β€” contacts expect text messages to be timely. But faster does not mean more frequent. A well-designed drip respects attention, varies content type, and earns each next message through the value of the last one.

Lesson 3.1

Day-by-Day Sequence Design: The First 14 Days

Framework: The 14-Day Velocity Ladder

The first 14 days after a contact opts in are the highest-engagement window you will ever have. Open rates in this period run 10–15 percentage points higher than your long-term average. Miss this window with low-value messages and you train the contact to ignore future texts. The 14-Day Velocity Ladder front-loads value and progressively introduces asks, matching message frequency to the relationship's development curve rather than an arbitrary calendar.

Day 0 (immediate): Welcome + single clear value statement. Day 1 (24h): One piece of high-value content β€” a tip, a stat, a short how-to. No ask. Day 3: Social proof β€” a specific result or customer story in 2 sentences. Soft ask ("Want to see how we did this?"). Day 5: The relevant offer or product message β€” direct, specific, with a single link. Day 7: Follow-up on Day 5 if no response β€” one sentence, no repeat of the full offer. Day 10: Change-of-angle message β€” address the most common objection directly. Day 14: The close β€” last message in the sequence, create genuine urgency without manufacturing scarcity. After Day 14: move to a maintenance cadence (see Lesson 3.2).

SMS β€” Day 0 Welcome (EN) SMS
{{BrandName}}: Welcome, {{FirstName}}! Here's what to expect: {{ValueProp}} β€” all via text, no calls. Questions? Just reply here. Reply STOP to opt out.
158 chars max version. Replace {{ValueProp}} with your actual 1-line differentiator.
SMS β€” Day 0 Bienvenida (ES) SMS
{{NombreMarca}}: Β‘Bienvenido, {{Nombre}}! Esto es lo que puedes esperar: {{PropuestaValor}} β€” todo por mensaje, sin llamadas. ΒΏPreguntas? Responde aquΓ­.
SMS β€” Day 1 Value Message (EN) SMS
{{BrandName}}: Quick tip for {{FirstName}} β€” {{Tip1}}. Most {{TargetAudience}} don't know this. More tomorrow. Reply STOP to opt out.
No ask, no link. Just value. The goal is to condition the contact to open your texts.
SMS β€” Day 3 Social Proof (EN) SMS
{{BrandName}}: {{CustomerName}} from {{CustomerCity}} got {{Result}} in {{Timeframe}} with us. Want to see exactly how? Reply YES and we'll send the breakdown.
Under 160 chars with short names. "Reply YES" creates a micro-commitment that filters for engaged contacts.
Instagram DM β€” Day 5 Offer (EN) Instagram
Hey {{FirstName}} β€” wanted to share something with you directly. We're offering {{OfferDescription}} right now β€” {{OfferDetails}}. This is specifically for people who've been following our work (you qualify). Interested? Tap the link or just reply YES and I'll send you the details: {{OfferLink}}
Instagram DM allows conversational length. Keep it personal β€” "I'll send you" not "our system will send you."
Action Checklist β€” Lesson 3.1
  • Write all 7 sequence messages (Day 0, 1, 3, 5, 7, 10, 14) before activating the sequence
  • For each message, define the single desired action you want the contact to take
  • Confirm each message is under 160 chars for SMS (or note which ones will split into 2 segments)
  • Build the "YES" response path from Day 3 β€” contacts who reply YES should enter an accelerated pipeline stage
  • Set up exclusion logic: contacts who convert at any point should exit the drip sequence immediately
Lesson 3.2

Message Cadence Rules: How Often Is Too Often

Framework: The Cadence Ceiling

CTIA guidelines recommend a maximum of 5 marketing messages per month for most SMS programs. That is not a floor β€” it is a ceiling that most programs should stay well below. The optimal cadence depends on your industry, your content quality, and what your contacts opted in for. A flash-deal retailer can sustain 4 messages a week without high opt-out rates because contacts expect and value deal alerts. A B2B service firm sending 4 messages a week will see opt-out rates climb above 3% within 30 days, which puts their sender reputation at risk.

The Cadence Ceiling has three tiers. Tier A (high-frequency tolerance): retail, restaurants, entertainment β€” up to 8 messages per month, maximum 2 per week. Tier B (medium-frequency tolerance): e-commerce, local services, healthcare β€” up to 4 messages per month, maximum 1 per week. Tier C (low-frequency tolerance): B2B, professional services, financial β€” up to 2 messages per month. These are maximums, not targets. The best cadence is the one that produces the lowest opt-out rate alongside the highest response rate β€” measure both and find your floor. For Instagram DM drip sequences, frequency limits are less defined by policy but equally important from an engagement perspective; the 48-hour messaging window restriction on Messenger applies even if not on Instagram.

Action Checklist β€” Lesson 3.2
  • Assign your program to a Cadence Ceiling tier (A, B, or C) based on industry and audience expectation
  • Set a hard cap in your automation platform β€” no contact should receive more than your tier ceiling in a 30-day window
  • Track opt-out rate by message β€” if any single message produces >1% opt-outs, pause and rewrite it
  • Track reply rate by message β€” if a message gets <1% reply rate, it is either the wrong audience or the wrong content
  • Review cadence performance monthly β€” adjust the ceiling down if opt-out rates climb above 0.5%
Lesson 3.3

Behavioral Triggers: Moving Contacts Based on What They Do

Framework: The Behavioral Branch Map

Time-based drips treat every contact the same. Behavioral triggers treat contacts based on what they actually do. A contact who clicks the link in your Day 5 message has demonstrated intent β€” they should not receive the Day 7 generic follow-up. They should enter a faster, more targeted sequence designed for high-intent contacts. A contact who ignores three consecutive messages has also demonstrated something β€” they should be moved to a re-engagement sequence before being suppressed. Behavioral branching is what separates an SMS program that scales with your list from one that degrades as it grows.

The Behavioral Branch Map defines triggers and their resulting branch. Link click β†’ move to "Interested" track, skip remaining nurture messages, enter a conversion sequence. Reply with any word β†’ remove from timed drip, route to conversation automation (Module 4). No opens/clicks for 3 consecutive messages β†’ enter re-engagement sequence (Lesson 4.5). Opt-out at any point β†’ immediate removal from all sequences, do-not-contact flag. Convert (purchase, book, complete form) β†’ exit all drip sequences, enter onboarding sequence. Each branch is a separate automation β€” do not try to build all branches into a single linear flow. The Behavioral Branch Map should be a visual diagram, not a spreadsheet. Draw it before you build it.

Action Checklist β€” Lesson 3.3
  • Define behavioral triggers for your program: link click, reply, no response, conversion, opt-out
  • Build each branch as a separate named automation β€” not a conditional within the main drip
  • Set "conversion" events in your CRM and confirm they fire the "exit drip" action correctly
  • Test the link-click branch by clicking a link with a test contact β€” confirm the branch fires and the main drip stops
  • Document your Behavioral Branch Map as a visual diagram β€” update it whenever you add a new branch
Lesson 3.4

Content Variety: Text, Image, Link β€” What Works on Each Platform

Framework: The Content-Platform Matrix

Plain text converts on SMS. This surprises marketers who assume richer is better. MMS (multimedia messaging, allowing images and GIFs) has its place, but it costs 3–5x more per message, loads slowly on poor connections, and is not rendered consistently across all devices. The rule for SMS: use MMS only when the image is the message β€” a before/after photo, a product visual, a QR code. Use plain SMS for everything else. High-conversion plain-text messages outperform MMS by 2:1 in most B2B and local services contexts.

Instagram DM is the opposite. The platform is visual by nature β€” contacts expect richer content. Sending text-only sequences on Instagram DM when you could be sending carousels, product tags, or short video clips is leaving engagement on the table. Facebook Messenger sits in the middle: supports rich cards and quick-reply buttons, which significantly increase response rates for structured questions. The Content-Platform Matrix maps content types to platforms with an engagement multiplier. Plain text on SMS: baseline 1.0x. MMS on SMS: 0.8x engagement, 3x cost β€” use sparingly. Rich cards on Messenger: 1.4x baseline engagement. Image + caption on Instagram DM: 1.6x baseline. Quick-reply buttons (Messenger/IG): 1.8x for structured next-step prompts.

Facebook Messenger β€” Quick Reply Button Example (EN) Messenger
Hi {{FirstName}}, what best describes you right now? [Just browsing] [Ready to get started] [Have a specific question]
Quick-reply buttons are tappable chips that send a structured reply. Each button reply triggers its own automation branch. This format reduces friction and produces cleaner intent data than asking for a typed reply.
Action Checklist β€” Lesson 3.4
  • Audit your existing SMS sequences: identify which messages are MMS vs. SMS and whether MMS is justified
  • For Instagram DM sequences: add at least one image or visual element per week of the sequence
  • For Messenger sequences: replace text-only "Reply with 1, 2, or 3" prompts with native quick-reply buttons
  • Test load time of any MMS on a 3G connection β€” if it loads slowly, use plain SMS with a link instead
  • Build the Content-Platform Matrix for your program: content type x platform x cost x expected engagement
Module 4 Β· 5 Lessons

Two-Way Conversation Automation

One-way SMS broadcasting is dead. Every platform that delivers high open rates is doing so because contacts trust they will get a reply if they respond. The moment a contact texts back and gets no response β€” or an obviously irrelevant automated reply β€” you have broken that trust. Two-way conversation automation is the system that maintains the illusion (and, increasingly, the reality) of a real conversation while operating at scale without a human in the loop for the majority of interactions.

Lesson 4.1

Reply Detection: Knowing When a Human Responded

Framework: The Reply Signal Hierarchy

Not every inbound message is a reply to your last outbound. A contact might text your number for the first time in six months with a new question entirely. A contact enrolled in a drip might text a completely unrelated question mid-sequence. Your system needs to distinguish between four types of inbound messages: a direct reply to the last outbound message (most common), a new query unrelated to any active sequence, a keyword-triggered message covered by your library, and a compliance keyword (STOP, HELP). Each type requires different handling.

The Reply Signal Hierarchy routes inbound messages in priority order. First check: compliance keyword β€” handle immediately, override everything else. Second check: known keyword from library β€” handle as defined in Trigger-Response Matrix. Third check: active sequence context β€” if the contact is enrolled in a drip and the message appears to be a response to the last drip message, attempt intent classification (Lesson 4.2). Fourth check: no context match β€” route to conversation automation with full history provided as context. The key technical requirement is message threading: your platform must store and provide the last 5–10 messages of context when classifying any inbound reply.

Action Checklist β€” Lesson 4.1
  • Confirm your platform stores full conversation history per contact β€” not just the last message
  • Build the four-tier routing logic in your automation platform (compliance β†’ keyword β†’ context β†’ fallback)
  • Test: send an inbound message that matches no keyword and is not in context β€” confirm it reaches the fallback handler
  • Test: reply to an active drip message with "yes" β€” confirm the drip exits and the YES branch fires
  • Set up an inbound message alert for human review of messages that reach the fallback handler more than 3 times from the same contact
Lesson 4.2

Intent Classification: What Does This Reply Actually Mean?

Framework: The 5-Intent Classifier

Contacts rarely reply with clean keywords. They reply with "sounds good," "how much does it cost," "my husband asked about this," "can you send me more info," "I changed my mind," or "I'm not interested right now." Your system needs to classify these replies into actionable buckets without requiring human review of every message. The 5-Intent Classifier reduces every inbound reply to one of five buckets: Affirm (yes, sounds good, let's do it, I'm in), Inquire (a question, request for more information), Object (a concern, hesitation, or stated barrier), Defer (not now, later, busy, let me think), or Disengage (no, not interested, stop, remove me).

Classification can be rule-based (keyword matching against common phrases in each bucket) for lower-cost platforms. For higher-volume programs, an LLM-based classifier running on GPT-4o mini or Claude Haiku costs under $0.001 per message and handles nuance that rule-based systems miss. The classifier's output tags the CRM record and routes to the appropriate response automation. Each intent bucket has a defined response playbook β€” the same response going to Affirm and Inquire contacts would be a failure of this system.

SMS β€” Response to AFFIRM intent (EN) SMS
{{BrandName}}: Great, {{FirstName}}! Next step: {{NextAction}}. Takes about {{TimeEstimate}}. Here's the link: {{ActionLink}} β€” or reply HELP if you hit anything.
Drive to a single, clear next action. "Great!" is fine β€” the next step is what matters.
SMS β€” Response to INQUIRE intent (EN) SMS
{{BrandName}}: Good question, {{FirstName}}. {{AnswerToQuestion}} β€” if that's not quite it, reply with what you're looking for and I'll get you the right answer.
Match the most common questions to templated answers in your platform. Build a FAQ library of 20–30 questions with their SMS-friendly answers.
SMS β€” Response to DEFER intent (EN) SMS
{{BrandName}}: Totally get it, {{FirstName}}. When's a better time? Reply with a day/time and I'll follow up then instead. No rush.
Never push a Defer contact with urgency messaging. It increases opt-outs. A gentle re-schedule request is the highest-converting response to a defer signal.
SMS β€” Respuesta a intenciΓ³n DIFERIR (ES) SMS
{{NombreMarca}}: Entendido, {{Nombre}}. ΒΏCuΓ‘ndo serΓ­a mejor para ti? Responde con un dΓ­a y hora y te contacto entonces. Sin prisa.
Action Checklist β€” Lesson 4.2
  • Build the 5-Intent Classifier as either a keyword-phrase map (rule-based) or an LLM classification call
  • Write response templates for all five intent buckets β€” do not use the same template for more than one bucket
  • Build a FAQ library: collect the 30 most common inbound questions and pair each with a 1–2 sentence SMS-friendly answer
  • Tag every classified reply in the CRM: intent_type, intent_classified_at, intent_classification_method
  • Set up a weekly review: pull 50 random classified replies and check classification accuracy β€” tune the classifier based on errors
Lesson 4.3

Dynamic Responses: Personalizing Without Writing Every Message

Framework: The Variable Injection System

Dynamic responses use stored contact data to make automated messages feel specific. The minimum viable variable set for SMS is: {{FirstName}}, {{BusinessName}} (if B2B), {{LastInteractionDate}}, {{ServiceInterestTag}}, and {{AssignedRep}} (if contacts are assigned to a team member). These five variables transform a generic message into one that feels like it was written by someone who knows the contact. The difference in response rates is significant β€” personalized messages produce 2–3x higher reply rates than generic ones, even when contacts know the messages are automated.

The Variable Injection System goes beyond first-name personalization. Behavioral variables β€” {{LastSequenceMessage}}, {{LastClickedProduct}}, {{DaysSinceLastReply}} β€” create contextually accurate messages that reference what the contact actually did. Industry-specific variables β€” {{LeadSource}}, {{ZipCode}}, {{ServiceArea}} β€” allow location and context-aware responses. The rule for variable injection: every variable must have a fallback value. If {{FirstName}} is blank, the fallback should be "there" (as in "Hey there") β€” not an error or an empty space. Build and test every fallback before going live.

SMS β€” Dynamic Follow-Up with Behavioral Variables (EN) SMS
{{BrandName}}: Hey {{FirstName|there}} β€” you checked out {{LastViewedService|our services}} {{DaysSinceLastVisit}} days ago. Still interested? Reply YES for a quick breakdown.
The pipe (|) notation indicates a fallback value. "{{FirstName|there}}" renders as "there" if FirstName is blank.
Action Checklist β€” Lesson 4.3
  • Audit your CRM: which fields are populated for 90%+ of contacts? These are safe to use as variables
  • For every variable you use, define and test a fallback value β€” never leave a variable without one
  • Build a variable library: document every variable, its source field, its fallback, and which templates use it
  • Test all templates with a contact that has blank first name, blank business name, and blank service tag
  • Add at least one behavioral variable to every sequence message beyond Day 1
Lesson 4.4

Conversation State Management: Tracking Where Every Contact Is

Framework: The Conversation State Machine

Every contact in your messaging system is always in exactly one of a finite number of states. They are either new (entered but not yet messaged), active-drip (enrolled in a sequence), awaiting-reply (you sent a message and are waiting for their response), in-conversation (they replied and you are in an active exchange), converted (they completed a desired action), dormant (no activity for X days), or opted-out. The Conversation State Machine ensures that every transition between states is intentional and logged. Without state management, you end up with contacts in conflicting automations β€” receiving a drip message the same day a human sends them a personal follow-up, for example.

State transitions are triggered by events. A new opt-in β†’ state: new. Welcome message sent β†’ state: active-drip. Contact replies β†’ state: in-conversation. No reply to 3 consecutive messages over 14 days β†’ state: dormant. Opt-out received β†’ state: opted-out. This state needs to be stored as a single CRM field (conversation_state) with a timestamp (conversation_state_updated_at). Your automation rules should check this field before executing any action β€” a contact in opted-out state should never receive any automated message regardless of what other conditions are met.

Action Checklist β€” Lesson 4.4
  • Add conversation_state and conversation_state_updated_at fields to your CRM
  • Map every automation to a state check: "only fire if conversation_state = [X]"
  • Build state transitions as their own automation steps β€” every state change writes to the CRM field
  • Run a weekly audit: contacts with conversation_state = NULL need to be manually classified
  • Build a dashboard showing contact count by conversation state β€” this is your program health indicator
Lesson 4.5

Re-Engagement After Silence: Winning Back Dormant Contacts

Framework: The 3-Message Win-Back Sequence

Dormant contacts β€” those who have not replied in 30–90 days β€” are not lost. They are an asset that has not been activated. Re-engagement campaigns on SMS outperform list acquisition in cost-per-conversion by a factor of 3–5x in most programs because consent is already established and the contact has prior brand exposure. The risk is different from new acquisition: a poorly-designed re-engagement message from a number a contact barely remembers will generate opt-outs. The win-back approach must acknowledge the gap in contact without making the contact feel guilty for it.

The 3-Message Win-Back Sequence has a clear structure. Message 1 (Day 1 of re-engagement): a low-friction, high-curiosity message that does not require the contact to remember who you are. Open with the brand name prominently, reference something specific about them or your offer, and end with a single easy yes/no question. Message 2 (Day 3, only if no reply to Message 1): a changed-angle message β€” a different hook, a piece of social proof, a new offer. Do not repeat Message 1. Message 3 (Day 7, only if no reply to Message 2): the explicit last-message β€” tell them this is the last one, give them a clear reason to stay subscribed, and mean it. If they do not reply, suppress them. A suppressed contact is better than an opted-out one β€” you can re-engage them through other channels.

SMS β€” Win-Back Message 1 (EN) SMS
{{BrandName}}: Hey {{FirstName|there}} β€” haven't heard from you in a while. Quick question: still interested in {{ServiceCategory}}? Reply YES or NO β€” takes 2 secs.
159 chars. The YES/NO format produces the highest re-engagement rate because the barrier to reply is minimal.
SMS β€” Win-Back Message 2 (EN) SMS
{{BrandName}}: {{FirstName|Hey}} β€” just wanted to share: {{SocialProofStat}} for clients like you this quarter. Thought it might be relevant. Still want in? Reply YES.
SMS β€” Win-Back Message 3 / Final (EN) SMS
{{BrandName}}: Last one, promise. We're keeping our list tight β€” if texts from us aren't useful anymore, no hard feelings. Reply KEEP to stay or STOP to exit. Either is fine.
160 chars exactly. Giving permission to leave increases the chance they stay β€” it removes pressure.
SMS β€” ReactivaciΓ³n Final (ES) SMS
{{NombreMarca}}: Último mensaje, lo prometemos. Si nuestros textos ya no te sirven, sin problema. Responde QUEDAR para seguir o STOP para salir. Lo que prefieras.
Action Checklist β€” Lesson 4.5
  • Define your "dormant" threshold β€” 30, 60, or 90 days without a reply depending on your cadence
  • Build a dormant segment in your CRM that auto-populates based on last_reply_date
  • Activate the 3-Message Win-Back Sequence for contacts entering the dormant segment
  • After Message 3 with no reply: set conversation_state to "suppressed" β€” not opted-out, not active
  • Track win-back rate by message β€” if Message 1 generates <3% reply rate, rewrite the hook
Module 5 Β· 4 Lessons

Multi-Platform Unified Inbox Strategy

Managing SMS, Instagram DM, Facebook Messenger, and Google Business Messages as four separate siloed tools creates a coordination nightmare and a fragmented contact history. The same person might text your SMS number, then DM you on Instagram, then leave a Google Maps question β€” and your team treats them as three different contacts. The unified inbox strategy solves this by treating all text-based channels as a single communication surface with platform-specific presentation but shared data and shared logic.

Lesson 5.1

Instagram DM Automation: What Meta Allows and What Works

Framework: The IG DM Funnel

Instagram DM automation is governed by Meta's Messaging Policy and the Instagram Platform Policy. The key constraint: you can only send automated messages in response to a user-initiated action. A user comments on your post, sends you a DM, clicks an ad with a DM CTA, or taps a story reply β€” these are all valid triggers. Sending unprompted DMs to users who have not initiated contact is a platform violation that can result in account restriction or loss of API access. Build your IG DM automation around inbound triggers, not outbound campaigns.

The IG DM Funnel has four stages. Stage 1: Trigger β€” a comment, DM, or story reply from the user. Stage 2: Immediate auto-reply β€” acknowledges receipt, delivers initial value (lead magnet, answer, or navigation menu). Stage 3: Follow-up sequence β€” if the user continues the conversation, advance through a pre-built flow. Stage 4: CTA β€” a single clear action (link click, appointment booking, form completion). The IG DM Funnel works best when paired with an Instagram post or Reel that explicitly invites comments containing a specific keyword ("Comment DEMO below and I'll DM you the details"). Comment-triggered DMs consistently produce 30–50% click-through rates because the contact is already engaged with your content.

Instagram DM β€” Comment Trigger Auto-Reply (EN) Instagram
Hey {{FirstName}}! You asked for the details on {{PostTopic}} β€” here they are: {{LinkOrInfo}}. This is our full breakdown β€” if you have questions after reading, just reply here and I'll help directly.
Comment-triggered DMs feel personal because they reference the specific post the user engaged with. Always reference the context.
Instagram DM β€” Respuesta a Comentario (ES) Instagram
Β‘Hola {{Nombre}}! Me pediste los detalles sobre {{TemaPost}} β€” aquΓ­ los tienes: {{EnlaceOInfo}}. Es todo lo que necesitas saber. Si tienes preguntas despuΓ©s de leerlo, respΓ³ndeme aquΓ­ directamente.
Action Checklist β€” Lesson 5.1
  • Confirm your Meta Business account has DM automation enabled via the Inbox API or a third-party tool (ManyChat, MobileMonkey, GHL)
  • Identify your three highest-engagement post types and build comment-triggered DM flows for each
  • For Story Replies: configure an auto-response that acknowledges the specific story they replied to
  • Test the comment trigger: post, comment with the trigger keyword, confirm the DM arrives within 30 seconds
  • Connect the IG DM contact record to your CRM β€” every IG conversation should create or update a CRM contact
Lesson 5.2

Facebook Messenger Flows: Buttons, Cards, and Sequences

Framework: The Messenger Experience Ladder

Facebook Messenger automation has the richest native content format of any text-based channel: quick-reply buttons, persistent menus, card carousels, list templates, and media attachments. The temptation is to use all of them at once. The reality is that complexity in Messenger flows produces abandonment. Users who encounter a five-step button tree to answer a basic question will leave and not come back. The Messenger Experience Ladder builds complexity gradually β€” only adding interaction layers as the user demonstrates willingness to engage.

The ladder has three rungs. Rung 1 (first contact): a single question with two or three quick-reply buttons. Nothing more. The goal is one micro-commitment. Rung 2 (returning engagement): a follow-up that references their previous choice and offers one more specific question. By Rung 2, the user has signaled intent twice β€” you can introduce a card with a link. Rung 3 (high-intent): a carousel of options, a booking link, or a detailed product comparison. Users who reach Rung 3 have self-selected as genuinely interested. The 24-hour messaging window on Messenger (you can send freely within 24 hours of the last user message; after that, only approved templates apply) means your most valuable Rung 3 content needs to be sent while the window is open.

Facebook Messenger β€” Rung 1 Opening (EN) Messenger
Hi {{FirstName}}! Thanks for reaching out to {{BrandName}}. What can I help you with today? [Get a Quote] [Learn About Services] [Speak to Someone]
Each button reply triggers its own branch. Keep button labels under 20 characters β€” they get truncated on mobile.
Facebook Messenger β€” Rung 2 Follow-Up (EN) Messenger
Great β€” for a {{SelectedService}} quote, I just need two quick things. What's your approximate budget range? [Under $1k/mo] [$1k–$3k/mo] [$3k+/mo]
Action Checklist β€” Lesson 5.2
  • Build your Rung 1 flow first β€” only advance to Rung 2 and 3 after Rung 1 is tested and performing
  • Configure Messenger's Persistent Menu with your 3 most common entry points
  • Build a template library for post-24h-window messages β€” these must be Meta-approved templates
  • Test all quick-reply buttons on mobile: confirm labels are not truncated and tap targets are adequate
  • Connect Messenger contact data to CRM: button choices = CRM tags for segmentation
Lesson 5.3

Google Business Messages: The Overlooked Channel

Framework: The Local Intent Capture System

Google Business Messages (GBM) allows businesses with a verified Google Business Profile to receive and respond to messages directly from Google Search and Maps results. When a prospect searches for your business (or a competitor) and sees your listing, they can tap "Chat" and start a conversation without ever visiting your website. This is one of the highest-intent touchpoints in the customer journey β€” someone searching for your category on Google is further along than most top-of-funnel leads. Despite this, most businesses either have GBM disabled or respond manually with no automation.

The Local Intent Capture System builds a GBM automation on top of a simple insight: people who message from Google Search are asking one of five questions. They want your hours or availability, your pricing, your location or directions, whether you handle their specific use case, or how to book/order. Build five quick automated responses to these questions and you have covered 85%+ of GBM inbound. The sixth response is a catch-all that routes to your unified inbox for human handling. For multi-location businesses, GBM can be configured per location β€” critical for franchises or agencies managing multiple clients.

Google Business Messages β€” Pricing Inquiry (EN) GBM
Hi {{FirstName|there}}! Our pricing depends on the scope β€” most clients start between {{PriceRangeLow}} and {{PriceRangeHigh}}/month. For an accurate quote, answer 2 quick questions: {{QuoteFormLink}}
GBM supports links. Driving to a short form beats a long text conversation for pricing β€” it also captures the contact in your CRM.
Action Checklist β€” Lesson 5.3
  • Verify GBM is enabled on your Google Business Profile β€” check Google Business Profile Manager under "Messages"
  • Set your welcome message (shown before the first automated reply) β€” it appears immediately when a user opens the chat
  • Build automated responses for the 5 most common query types: hours, pricing, location, use-case fit, booking
  • Connect GBM to your unified inbox tool so all GBM messages appear alongside SMS and Meta messages
  • Enable read receipts in GBM β€” users see when their message has been read, reducing impatient follow-up messages
Lesson 5.4

Unified Tagging and Cross-Channel Handoffs

Framework: The Channel-Agnostic Contact Graph

A contact who reaches you across multiple channels β€” SMS one week, Instagram DM the next, Messenger after that β€” should have one CRM record with a complete cross-channel conversation history, not three separate records. The Channel-Agnostic Contact Graph builds this by using a deduplication key (typically email or phone number) to merge all channel interactions into a single contact timeline. Without this, your automation sends a "first-time contact" welcome message to someone who has been a customer for two years on a different channel. That breaks trust faster than any other automation error.

Tagging standards must be consistent across all platforms. Use the same tag values regardless of which channel generated the tag. A contact tagged "interested-in-service-A" from an SMS conversation should suppress the same Service A intro messages in an Instagram DM sequence. Build a tag taxonomy with 20–30 standard tags that cover the most important states (lead-type, funnel-stage, service-interest, objection-type, do-not-contact). Apply them consistently. Cross-channel handoffs β€” moving a contact from an automated Instagram DM conversation to a live SMS exchange, for example β€” should be triggered by a state or intent signal, logged as a transition event in the CRM, and accompanied by a context-passing note so the next touch has full history.

Action Checklist β€” Lesson 5.4
  • Define your contact deduplication key β€” phone number is the most reliable for multi-platform identity resolution
  • Audit your current CRM for contacts with multiple records β€” merge any duplicates before activating cross-channel logic
  • Build a standard tag taxonomy (20–30 tags) and enforce it across all platforms and team members
  • Build cross-channel handoff triggers: define which signals prompt a channel transition and what context is passed
  • Test the full cross-channel journey: opt in via SMS, then DM on Instagram, confirm one CRM record shows both conversations
Module 6 Β· 4 Lessons

Promotional & Campaign Automation

Promotional messaging done right is the highest-ROI output of an SMS program. Done wrong, it is the fastest way to destroy it. The difference is specificity, timing, and segmentation. A flash sale message sent to your entire opted-in list will produce results and opt-outs. The same message sent only to contacts who have expressed interest in the specific product or service in the last 30 days will produce 3–5x better conversion with a fraction of the opt-out rate. Segment before you send, every single time.

Lesson 6.1

Flash Sale Sequences: Urgency That Does Not Feel Fake

Framework: The 3-Message Flash Sequence

Manufactured urgency β€” "Offer expires in 1 hour!" sent to the same list four times in a week β€” has trained consumers to ignore urgency claims entirely. Real urgency is based on genuine constraints: limited inventory, a calendar deadline, a cohort that closes on a specific date. The 3-Message Flash Sequence works because it uses authentic urgency signals and matches the cadence to the urgency level. A 48-hour flash sale gets 3 messages over 48 hours. A 7-day promotion gets 3 messages spread across the window. The cadence mirrors the reality of the offer.

Message 1 (announcement, sent when the window opens): the full offer, clearly stated, with the deadline. Message 2 (midpoint): a reminder that includes social proof β€” how many people have already taken advantage, or a customer result. This message converts contacts who were interested but not ready on Message 1. Message 3 (final hours): the genuine close β€” the offer ends at a specific time, no extensions. Do not send Message 3 more than 12 hours before the actual deadline. Contacts who receive a "last chance" message 3 days early and then see the same offer the next day will not trust your next "last chance" message.

SMS β€” Flash Sale Message 1 (EN) SMS
{{BrandName}}: {{FirstName}}, {{OfferDescription}} β€” {{DiscountAmount}} off through {{DeadlineDate}}. Limited to {{QuantityOrSlots}}. Claim yours: {{Link}} Reply STOP to opt out.
Keep the offer description to 4–6 words. Ambiguous offers ("special savings event") convert poorly. "30% off your first month" converts.
SMS β€” Flash Sale Message 2 β€” Midpoint (EN) SMS
{{BrandName}}: {{FirstName}} β€” {{SpotsClaimedCount}} people grabbed the {{OfferName}} deal so far. {{RemainingCount}} spots left through {{DeadlineDate}}. Still yours: {{Link}}
SMS β€” Flash Sale Message 3 β€” Final (EN) SMS
{{BrandName}}: Last {{HoursLeft}} hours, {{FirstName}}. {{OfferName}} ends at {{DeadlineTime}} tonight β€” no extensions. {{Link}} Reply STOP to opt out.
SMS β€” Oferta RelΓ‘mpago β€” Anuncio (ES) SMS
{{NombreMarca}}: {{Nombre}}, {{DescripcionOferta}} β€” {{Descuento}} de descuento hasta el {{FechaLimite}}. Solo {{CantidadDisponible}} disponibles. Reclama el tuyo: {{Enlace}}
Action Checklist β€” Lesson 6.1
  • For every flash sale: segment the list to only relevant contacts before sending Message 1
  • Confirm the quantity/deadline in Message 1 is real β€” fabricated scarcity destroys long-term trust
  • Set up suppression: contacts who convert after Message 1 must not receive Messages 2 and 3
  • Set your Message 3 trigger for no sooner than 12 hours before the actual deadline
  • Post-campaign: measure opt-out rate per message β€” if Message 3 produces >1% opt-outs, the urgency framing needs revision
Lesson 6.2

Appointment Reminders and Review Request Flows

Framework: The Post-Service 4-Touch

Appointment reminder and review request automations are the highest-ROI, lowest-risk messages you can send. Open rates are near 100% for appointment reminders because the contact is expecting them. Review requests sent within 2 hours of a completed appointment or service delivery convert at 25–40% β€” far above the industry average of 5–8% for email-based review requests sent the following day. These two automation types pay for your entire messaging platform in most local service businesses.

The Post-Service 4-Touch sequence runs as follows. Touch 1 (24 hours before appointment): reminder with confirmation option. Touch 2 (2 hours before): same-day reminder with location/link. Touch 3 (30–60 minutes after completion): satisfaction check β€” a single-question pulse. Touch 4 (sent only to contacts who replied positively to Touch 3): review request with a direct link to the review platform. The four-touch design ensures you only ask satisfied customers for reviews β€” unhappy customers get a different branch that routes to a service-recovery flow instead of the review request. This alone triples your positive review rate relative to sending a blanket review request to all post-service contacts.

SMS β€” Appointment Reminder T-24h (EN) SMS
{{BrandName}}: Reminder β€” your {{ServiceName}} is tomorrow at {{AppointmentTime}}. Reply CONFIRM to confirm or RESCHEDULE to change it. See you then!
Under 160 chars. CONFIRM and RESCHEDULE are your Tier 3 action keywords β€” both need mapped responses.
SMS β€” Satisfaction Check (Touch 3) (EN) SMS
{{BrandName}}: Hi {{FirstName}} β€” how did it go today? Reply GREAT, OK, or NOT GREAT and let us know. Takes 2 seconds and helps us a lot.
SMS β€” Review Request (Touch 4, GREAT only) (EN) SMS
{{BrandName}}: {{FirstName}}, glad it went well! Would you mind leaving us a quick Google review? It takes 60 seconds and means a lot: {{ReviewLink}} Thank you!
SMS β€” Recordatorio de Cita T-24h (ES) SMS
{{NombreMarca}}: Recordatorio β€” tu {{NombreServicio}} es maΓ±ana a las {{HoraCita}}. Responde CONFIRMAR para confirmar o REPROGRAMAR para cambiar. Β‘Hasta maΓ±ana!
Action Checklist β€” Lesson 6.2
  • Build the Post-Service 4-Touch as a single named automation with behavioral branches at Touch 3
  • Define "positive" vs. "negative" responses to Touch 3 β€” route to review request vs. service recovery accordingly
  • For the review request, use a direct link (Google Business Profile direct review link, not your homepage)
  • Test appointment confirmation: trigger CONFIRM reply, confirm appointment status updates in CRM
  • Measure your post-implementation review rate vs. pre-implementation β€” this is your primary ROI metric for this sequence
Lesson 6.3

Cart Abandonment and Referral Automation

Framework: The Revenue Recovery Stack

Cart abandonment SMS outperforms cart abandonment email by 5–7x in recovery rate when sent within 30 minutes of abandonment. The math is simple: SMS gets opened in 90 seconds; email waits in an inbox for hours. The Revenue Recovery Stack applies this principle to two underutilized automation types: cart recovery and referral activation. Together they represent revenue that exists in your existing contact base and requires no additional ad spend to capture.

Cart abandonment requires a pixel or webhook on your checkout that fires when a cart is abandoned. Within 30 minutes: a single SMS that references the specific cart contents (not a generic "you left something behind"). Within 2 hours if no action: a second message with a small incentive β€” free shipping or a percentage off. After 24 hours if still no action: final message acknowledging the cart has expired with a fresh link to repurchase. Three messages maximum. More than three and you are in harassment territory. For referral automation, the highest-converting trigger is post-first-successful-interaction β€” a customer who just had a great experience is most likely to refer. Build the referral ask into Touch 4 of your Post-Service sequence (Lesson 6.2) for customers who left positive reviews.

SMS β€” Cart Abandonment (30-min) (EN) SMS
{{BrandName}}: Hey {{FirstName}} β€” you left {{CartItemName}} in your cart. Still want it? Complete your order here: {{CartLink}} Takes 60 seconds. Reply STOP to opt out.
SMS β€” Referral Request Post-Review (EN) SMS
{{BrandName}}: One more thing, {{FirstName}} β€” know anyone who'd benefit from {{ServiceName}}? Share {{ReferralLink}} and you both get {{ReferralIncentive}}. Thanks!
Send immediately after the review confirmation. The contact is at peak positive sentiment β€” conversion rates for referral asks are 3–4x higher at this moment than at any other point in the lifecycle.
Action Checklist β€” Lesson 6.3
  • Confirm your cart platform supports a webhook or pixel for abandonment events β€” Shopify, WooCommerce, and most major platforms do
  • Set the first cart-recovery SMS to fire within 30 minutes β€” not 1 hour, not the next day
  • Include specific product name and image (MMS) in cart recovery if your average order value justifies the MMS cost
  • Build the referral link with unique tracking per contact so you can attribute referrals accurately
  • Test cart recovery end-to-end: add to cart, abandon, wait 30 minutes, confirm SMS arrives with correct product reference
Lesson 6.4

Event-Based Triggers and Seasonal Campaign Architecture

Framework: The Campaign Calendar Trigger Map

Event-based triggers fire based on external calendar events (holidays, industry dates, local events) or internal contact events (anniversary of purchase, account renewal date, birthday). Both types are underused in SMS programs. A birthday message sent within 1 day of a contact's birthday with a meaningful offer converts at 15–25% β€” the highest conversion rate of any non-purchase-intent message type. An anniversary-of-purchase message at the 12-month mark with a loyalty acknowledgment reinforces retention at the exact moment when churn probability peaks.

The Campaign Calendar Trigger Map plots all known trigger dates for the next 12 months and assigns message content, audience segment, and lead time for each. External events (Black Friday, local cultural holidays relevant to your LATAM contacts) need 3–4 weeks of preparation. Internal contact events (birthdays, anniversaries) fire automatically based on CRM date fields β€” build the automation once and it runs forever. For LATAM audiences: September 18 (Chilean Independence Day), DΓ­a de los Muertos (Mexico, November 1–2), and local summer season (January–February in the Southern Hemisphere) are high-engagement windows that most US-based automation tools ignore. Building them in is a differentiation signal to your Chilean and LATAM clients.

SMS β€” Birthday Offer (EN) SMS
{{BrandName}}: Happy Birthday, {{FirstName}}! Here's a little something from us: {{BirthdayOffer}}. Use it anytime this month: {{PromoCode}} Enjoy your day!
SMS β€” CumpleaΓ±os (ES) SMS
{{NombreMarca}}: ‘Feliz cumpleaños, {{Nombre}}! Un regalo de nuestra parte: {{OfertaCumpleaños}}. Úsalo cuando quieras este mes: {{CodigoPromo}} ‘Que lo disfrutes!
Action Checklist β€” Lesson 6.4
  • Add date fields to your CRM: contact_birthday, first_purchase_date, contract_renewal_date
  • Build automated triggers for birthday (fire 1 day after), first purchase anniversary (fire on day 365)
  • Build your 12-month Campaign Calendar Trigger Map β€” plot all known dates now
  • For LATAM contacts: add Chilean and regional holidays to the calendar and build segment-specific campaigns
  • Schedule seasonal campaigns 4 weeks in advance β€” last-minute campaign builds produce errors and compliance shortcuts
Module 7 Β· 4 Lessons

CRM Integration, Reporting & Scaling

A messaging automation system that is not connected to your CRM is a marketing asset that cannot be measured or improved. Conversely, a CRM integration that is not well-designed will produce data corruption that undermines every decision made from it. Module 7 covers the technical and operational architecture for running a messaging program at scale β€” from the CRM data model through deliverability optimization to the contact-management practices that keep a 50,000-contact list performing like a 5,000-contact list.

Lesson 7.1

Contact Sync and Conversation Logging

Framework: The Bi-Directional Data Bridge

CRM-to-messaging-platform sync is typically built in one of three ways: native integration (the messaging platform has a built-in connector for your CRM), middleware (Zapier, Make, or a custom webhook), or API-to-API (direct integration written by a developer). Native integrations are fastest to deploy but least flexible. Middleware is the most common choice for mid-market programs. API-to-API is the most reliable at scale. The choice depends on your volume and technical resources β€” but any of the three is better than no sync.

The Bi-Directional Data Bridge has two flows. Flow A (CRM to messaging platform): pushes new contacts, tag updates, and pipeline stage changes to the messaging platform β€” triggering sequences and suppressing opted-out contacts. Flow B (messaging platform to CRM): pushes conversation events, keyword responses, and state changes back to the CRM β€” updating contact records in real time. Flow B is almost always the weaker of the two in out-of-the-box setups. Most platforms log inbound messages but do not automatically update the contact's CRM pipeline stage based on a keyword reply. Build Flow B with the same care as Flow A.

Action Checklist β€” Lesson 7.1
  • Map your integration: draw the exact fields that flow from CRM to messaging platform and back
  • Confirm opt-out sync is real-time (not batch): a STOP reply must suppress in CRM within 60 seconds
  • Build Flow B event logging: every inbound keyword, every intent classification, every state change writes to CRM
  • Test a full round-trip: change a CRM tag, confirm the messaging platform updates within 5 minutes. Then trigger a keyword reply, confirm the CRM record updates within 60 seconds.
  • Set up an integration health check: a daily automated test that sends a known keyword, confirms the CRM update, and alerts the team if the check fails
Lesson 7.2

Pipeline Triggers: Moving Deals Based on Message Behavior

Framework: The Message-to-Pipeline Signal Map

Messaging behavior is intent data. A contact who replies YES to an offer message is more sales-ready than one who clicked a link without replying. A contact who books an appointment from a drip message has demonstrated a level of intent equivalent to filling out a high-quality inbound form. These behavioral signals should move contacts through your CRM pipeline automatically β€” not sit as conversation logs that your sales team manually reviews every morning.

The Message-to-Pipeline Signal Map defines which message events map to which pipeline transitions. Reply YES to any offer β†’ move from "Lead" to "Interested." Book appointment from message β†’ move to "Appointment Scheduled." Complete post-appointment Touch 3 with GREAT β†’ move to "Happy Customer." Leave a Google review (tracked via review link click) β†’ move to "Promoter." Opt out β†’ move to "Do Not Contact." Each pipeline transition should also trigger a CRM task or alert for the relevant team member β€” not every transition requires human action, but humans should be aware of high-value transitions within minutes, not hours.

Action Checklist β€” Lesson 7.2
  • Document your CRM pipeline stages and map each message event to a specific stage transition
  • Build automation rules: message event X β†’ pipeline stage Y (and optionally: β†’ task Z for assigned rep)
  • Test each pipeline trigger with a real contact journey through your test environment
  • Set up a "deals moved by automation" report: shows how many pipeline transitions per week are automation-driven vs. manual
  • Review the signal map quarterly β€” add new message events as your automation library grows
Lesson 7.3

Deliverability Optimization: Staying Out of the Carrier Filter

Framework: The Deliverability Health Score

SMS deliverability is controlled by two layers: your carrier/aggregator and the downstream carriers (AT&T, Verizon, T-Mobile, and their MVNOs). Both layers use automated content and behavior filters that block or divert messages suspected of spam or compliance violations. A healthy sender can hit 97–99% delivery rate. An unhealthy sender can drop to 50–60% delivery rate without any warning β€” messages simply do not arrive, and most SMS platforms report them as "delivered" up to the aggregator level, masking the true delivery failure. Deliverability problems cost more than their face value because you pay for every sent message even when it does not arrive.

The Deliverability Health Score tracks seven signals. Registration status: is your 10DLC brand and campaign registered with The Campaign Registry? Opt-out rate: is it below 0.5% per message? Link format: are you using your own tracked domain, not a shared URL shortener? Message variation: are you rotating templates rather than sending identical messages at volume? Sending pattern: are you sending during permitted hours with no sudden volume spikes? Content compliance: are you including opt-out language in every marketing message? Spam-word density: are you using carrier-flagged words ("FREE," "CASH," "GUARANTEED" in all-caps) excessively? All seven signals should be audited monthly. A score of 6–7 out of 7 is healthy. Below 5 requires immediate remediation before your next send.

Action Checklist β€” Lesson 7.3
  • Verify 10DLC registration is complete for your brand and all active campaigns β€” check The Campaign Registry status
  • Set up a dedicated sending domain for link tracking (e.g., links.yourdomain.com) β€” never use bit.ly or other shared shorteners
  • Build at least 3 rotating variants of each high-volume message to avoid identical-message filtering
  • Set a hard sending-hour restriction in your platform: no messages before 8am or after 9pm local time
  • Run the 7-signal Deliverability Health Score audit monthly and document results
Lesson 7.4

List Hygiene and Scaling to 50,000+ Contacts

Framework: The List Quality Pyramid

At 1,000 contacts, list hygiene is a nice-to-have. At 10,000, it meaningfully affects performance. At 50,000+, it determines whether your program is profitable or not. A dirty list β€” invalid numbers, opted-out contacts improperly retained, contacts who have not engaged in 180+ days β€” drives up carrier filtering rates, inflates costs, and produces misleading performance data. The List Quality Pyramid divides your contact base into tiers: Tier 1 (Active, engaged in last 90 days β€” treat as primary audience), Tier 2 (Warm, engaged in last 90–180 days β€” treat with more targeted messaging), Tier 3 (Dormant, 180+ days no engagement β€” run Win-Back Sequence before any promotional sends), and Tier 4 (Suppressed β€” opted out or failed 3x delivery β€” never message, remove from billing if platform charges per contact).

Scaling to 50,000+ contacts does not require a more complex system β€” it requires the same system running with stricter discipline. Number validation (checking that phone numbers are active before sending) reduces your undeliverable rate and carrier filtering risk β€” most major aggregators offer real-time number lookup APIs for under $0.005 per lookup. Message throughput management becomes critical at scale: 10DLC long codes handle 1 message per second per number; if you have 50,000 contacts and need to send in a 4-hour window, you need at least 3–4 sending numbers or a shortcode. Build your number pool before you need it β€” provisioning new 10DLC numbers takes 5–7 business days after registration.

Action Checklist β€” Lesson 7.4
  • Segment your list into the 4 tiers of the List Quality Pyramid β€” do this before any large send
  • Set up number validation: run all new opt-ins through a lookup API before adding to sending lists
  • Calculate your throughput requirement: (target list size Γ· desired send window in seconds) = required messages-per-second β€” confirm your number pool supports it
  • Set a quarterly list hygiene date: suppress all Tier 4 contacts, run Win-Back on Tier 3
  • Monitor cost-per-delivered-message (not cost-per-sent-message) β€” as list quality improves, this number should trend down

Putting the System Together

Seven modules, 31 lessons, and every template in this playbook point to the same operational principle: text-based communication is not a broadcast channel β€” it is a relationship infrastructure. The businesses that use it as a broadcast channel get short-term revenue spikes and long-term list decay. The businesses that use it as a relationship infrastructure build a contact base that responds, converts, and refers β€” and that asset compounds every month.

The implementation order matters. Start with Module 1 and do not skip it. Compliance is not optional and cannot be retrofitted after the fact. Build Module 2 next β€” keyword architecture is the foundation everything else runs on. Modules 3 and 4 (drip sequences and two-way conversation) can be built in parallel once the keyword layer is solid. Module 5 (multi-platform) adds channels one at a time β€” resist the urge to launch on all platforms simultaneously. Modules 6 and 7 are ongoing operations that you will refine quarterly.

The goal is not a system that runs messages. The goal is a system that runs conversations β€” at the scale of 50,000 contacts, with the feel of 1-to-1.

NetWebMedia runs this exact stack for every client. No phone calls. No email back-and-forth. Every communication, from initial contact through renewal, happens through the channels and automations described in this playbook. If you want to see the system in action β€” or you want us to build it inside your own CRM β€” the link below is the fastest path forward.

Ready to build this inside your own stack?

NetWebMedia deploys the full SMS and multi-platform messaging automation system for clients in the US and LATAM β€” from compliance architecture through CRM integration and 50k+ contact scaling. Request a free AI audit and we'll map exactly what your program needs in a written report within 48 hours.

Request Free AI Audit β†’

← Back to all articles