Dynamic Keywords for SMS Campaigns | TextingOnly
Features Dynamic Keywords

One template. A thousand personal messages.

Dynamic keywords replace placeholder variables with real contact data at send time — first name, city, service type, vehicle year, last interaction date, or any field in your list. “Hi Sarah, your AC service is due in Baltimore this week” performs at a fundamentally different level than “Hi there, check out our special.” One campaign template. Unlimited personalized output. No manual message creation.

A generic mass text gets ignored. A personalized one gets replied to.

Home ServicesAutomotiveRe-engagementReal Estate
{{first_name}}
Identity keyword — most impactful single personalization field
{{city}}
Location keyword — local relevance across every market in one send
{{service}}
Service keyword — reference what the contact actually asked about
Any field
Custom keyword from any column in your contact list
What Are Dynamic Keywords
The message that gets opened is the one that feels written for them.

Dynamic keywords are placeholder variables inserted into a campaign message template. When the campaign sends, TextingOnly replaces each placeholder with the corresponding value from that contact’s record — automatically, for every contact, in the same send action. One template produces thousands of individually composed messages. The result is a reply rate that reflects actual relevance, not mass-blast noise.

👤
Identity Keywords

First name, last name, full name. A message that opens with the contact’s name reads differently than one that opens with ‘Hey there.’ The most basic personalization — and consistently the highest-impact field.

📍
Location Keywords

City, region, zip code, service area. One campaign with location keywords serves every market simultaneously — Baltimore contacts get ‘Baltimore,’ Phoenix contacts get ‘Phoenix.’ One send, local relevance in every market.

🏷️
Service & History Keywords

The specific service, vehicle, product, or inquiry from the contact’s record — plus any custom field: last service date, rep name, membership tier, last interaction. Reference what they actually asked about, not a generic offer.

See dynamic keywords in a live campaign.
We’ll walk through how your contact fields map to message variables for your specific list and use case.
How Dynamic Keywords Work
Write once. Every contact gets a message that reads as written for them.
01
Prepare your contact list with keyword fields as column headers

Any column in your CSV or imported list becomes a usable keyword variable. First Name, City, Service, Vehicle Year, Last Service Date — column headers map directly to {{keyword}} syntax in your message template. Clean data in produces clean personalization out. Fields missing for any contact use a fallback value you define at campaign setup, so no message ever renders with a blank placeholder.

list preparation · CSV import · column mapping · fallback values
02
Write one template using {{keyword}} placeholders

Compose the campaign message once, inserting double-brace placeholders wherever you want contact-specific data. “Hi {{first_name}} — your {{service}} special in {{city}} ends Friday. Still interested?” TextingOnly previews how the first few contacts’ messages will render before you send, so you can confirm personalization looks right across different data combinations.

template authoring · {{syntax}} · send preview · message review
03
Segment your list by the field you’re personalizing on

Dynamic keywords work best when paired with targeted segmentation. A campaign referencing {{service}} should only go to contacts who have that service field populated. A {{city}} keyword campaign should be split by geography so each market gets a message that references their city. Focused segment + relevant keywords outperforms a large generic send on every metric.

list segmentation · geographic targeting · service segmentation · field completeness
04
Send — every message is uniquely composed at delivery

At send time, TextingOnly replaces each placeholder with the real contact value. Every message in the campaign is individually composed — no two are identical. This delivers personalization but also protects deliverability: carriers flag identical bulk sends as spam regardless of 10DLC registration. Variable messaging ensures carrier pattern detection has nothing to flag.

send execution · unique message composition · deliverability protection · carrier compliance
05
Reply automations handle every response OTTO receives

Dynamic keywords get contacts to reply. OTTO’s outbound reply automations handle what comes back — YES routes to ITR qualification, questions get answered automatically, Spanish replies activate a Language Funnel, STOP suppresses immediately with TCPA documentation. The campaign doesn’t end at the send; it opens a conversation OTTO manages at scale.

OTTO reply handling · YES qualification · STOP suppression · Language Funnel routing
Who Uses Dynamic Keywords
Any business running outbound SMS where relevance drives the reply.
🚗
Automotive Dealerships

Reference the contact’s specific vehicle — year, make, model — in every service reminder or trade-in offer. ‘Your 2019 Ford F-150 is due for an oil change’ converts at a different rate than ‘Schedule your next service.’

🏠
Home Services

City plus service type equals local relevance. One HVAC campaign covering Baltimore, Annapolis, and DC uses {{city}} and {{service}} so every contact gets a message that reads as written for their area and their specific inquiry.

🏡
Real Estate

Neighborhood, property type, last interaction date. A buyer re-engagement references what they were looking for — not a generic ‘Are you still in the market?’ blast that reads like every other outreach they receive.

👔
Recruiting & Staffing

Job title, location, last application date. A staffing firm re-engaging a candidate pool references the specific role or city they applied for. Relevance is the margin between a reply and an opt-out.

🏢
Franchise Groups

Multi-location businesses use location keywords so each market’s campaign reads as locally composed — even when managed centrally. Each market’s contacts get their market’s message, from a local number, in one send operation.

♻️
Re-engagement Campaigns

Last service date, rep name, last offer — keywords that make a dormant contact feel remembered rather than blasted. ‘It’s been 8 months since your last visit, Sarah’ outperforms a generic win-back offer on every re-engagement metric.

Common questions
Questions about dynamic keyword personalization.
What happens if a contact is missing a keyword field?
TextingOnly uses a configured fallback value when a contact record is missing a dynamic keyword field. For {{first_name}} with no data, the fallback might be ‘there’ — producing ‘Hi there’ rather than a blank. You define fallback values for each keyword during campaign setup. Clean list data produces the best personalization, but fallbacks ensure no contact receives a broken message.
How does variable messaging protect deliverability?
Carriers flag identical bulk sends as spam — even from properly registered 10DLC numbers. When every message in a campaign is uniquely composed because each one inserts different dynamic keyword values, no two messages are identical. Carrier pattern detection has nothing to flag. Dynamic keywords are both a personalization strategy and a deliverability protection mechanism.
Can I use custom fields as dynamic keywords, not just standard ones like name and city?
Yes. Any column in your contact list can become a dynamic keyword — vehicle year, last service date, rep name, product type, inquiry type, membership tier, or any custom field you’ve imported. If it’s in the contact record, it can be inserted into the message template. This is how automotive campaigns reference specific vehicles and how re-engagement campaigns reference the exact service a contact previously inquired about.
Do dynamic keywords work with outbound reply automations?
Yes — and this combination is where the real campaign performance comes from. Dynamic keywords make the message relevant enough to generate a reply. OTTO’s outbound reply automations handle what comes back: YES routes to qualification, questions get answered, STOP suppresses immediately. Personalized outbound plus OTTO reply handling closes the loop between mass reach and individual qualification.
Related features & reading
Three ways to get started.

Fastest takes 30 seconds.

Fastest · no form
Try OTTO live

See a real dynamic keyword SMS campaigns flow in your Messages app. 30 seconds.

Live demo →
Most popular
Run a pilot

OTTO configured for dynamic keyword SMS campaigns. Real contacts, real results, 90 days.

Start the pilot →
30 minutes
Get a walkthrough

We map dynamic keyword SMS campaigns to your specific business and campaigns.

Schedule a call →
See OTTO live — 30 seconds, no form Try it now →
Search Icon Site Search Close Site Search
0 results
Text Auto Attendant->