One campaign template.A relevant message for each contact.
Use stored contact fields to personalize SMS campaigns at send time. A name, location, service, or product reference can make the message specific without writing each version by hand. Preview the field mappings and recipient examples before sending. Connect the campaign to reply automations and review the response in campaign reporting.
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, for each contact, in the same send action. One template produces thousands of individually composed messages. Use the fields that matter to your audience and measure engagement after the send.
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 among the highest-impact fields per TextingOnly campaign data.
City, region, zip code, service area. One campaign with location keywords serves all markets at once, Baltimore contacts get ‘Baltimore,’ Phoenix contacts get ‘Phoenix.’ One send, local relevance in each market.
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.
Write once. Each contact gets a message that reads as written for them.
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 valuesCompose 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 reviewDynamic keywords work best 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. Use focused segments and relevant fields, then compare engagement in campaign reporting.
list segmentation · geographic targeting · service segmentation · field completenessAt send time, TextingOnly replaces configured placeholders with values from the contact record. Preview recipient examples and check missing fields before launching the campaign.
send execution · contact fields · message preview · campaign reportingDynamic keywords get contacts to reply. OTTO’s outbound reply automations handle what comes back, YES routes to ITR (Interactive Text Response) qualification, questions get answered, Spanish replies activate a Language Funnel, STOP suppresses immediately with TCPA (Telephone Consumer Protection Act) 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 routingAny business running outbound SMS where relevance drives the reply.
Reference the contact’s specific vehicle, year, make, model, in each 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.’
City plus service type equals local relevance. One HVAC campaign covering Baltimore, Annapolis, and DC uses {{city}} and {{service}} so each contact gets a message that reads as written for their area and their specific inquiry.
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 the rest of the outreach they receive.
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.
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.
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 message on re-engagement sends · TextingOnly campaign data.
Questions about dynamic keyword personalization.
Fastest takes 30 seconds.
See a real dynamic keyword SMS flow in your Messages app. 30 seconds.
Live demo →OTTO configured for dynamic keyword SMS campaigns. Real contacts, real results, 90 days.
Start the pilot →We map dynamic keyword SMS campaigns to your specific business and contacts.
Schedule a call →