Features › Personalization Engine

Personalize SMS with the contact details your team already has. Connect each reply.

Use dynamic contact fields to include a name, location, service, or relevant date in your SMS template. Connect replies to configured menus, conversational workflows, and team follow-up.

One campaign template. Contact-specific details and a clear next step.

Use the same approach for customer service, employee updates, recruiting, and member communications. Confirm permission for the message purpose and honor opt-outs; a past inquiry alone does not authorize ongoing marketing.

⚡ Template: one message, built once
Hi {{first_name}}, your {{service}} special in {{city}} ends Friday. Reply YES to lock in your spot.
rendered per contact at send · 4 data layers
Identity · Service · Location
Hi Marcus, your HVAC special in Baltimore ends Friday. Reply YES to lock in your spot.
✓ Example · Personalized
Identity · Service · Location
Hi Sarah, your Roofing special in Phoenix ends Friday. Reply YES to lock in your spot.
✓ Example · Personalized
Identity · Service · Location · Language
Hola Miguel, tu oferta de Techado en Annapolis termina el viernes. Responde SÍ para apartar tu lugar.
✓ Example · En Español
IdentityName, relationship historythe foundation of relevance
LocationCity, market, ziplocal presence at scale
ServiceWhat they asked aboutwhat they drive, what they bought
BehaviorLast interaction, timing signalsengagement history
What personalization actually means

Choose the details that matter.Make the next step clear.

Combine identity, location, service, and interaction fields from your contact records. Preview the message with representative records, confirm that the details are current, and define what should happen when someone replies. Use only the fields needed for the communication.

👤
Identity Layer

Insert the contact’s name or relationship details where they help explain the message. Check imported values and configure a fallback for missing names. SMS delivery does not establish that a message was read.

📍
Location Layer

City, market, zip code, service area. One template with a location field serves every market: Baltimore gets ‘Baltimore,’ Phoenix gets ‘Phoenix,’ DC gets ‘DC.’ Combined with a local area code sender, the message reads entirely local to the recipient.

🏷️
Service & Behavior Layer

The specific service, vehicle, product, inquiry type, last purchase, or last interaction from the contact record. This layer makes a re-engagement message feel like a personal follow-up from someone who remembered, because the data says exactly what to reference.

See how four data layers produce one personal message.
We’ll walk through how your contact data maps to the personalization engine for your specific use case.
How the personalization engine works

Four data layers.One uniquely relevant message.

01
Identity layer: the contact’s name sets the tone

The identity layer inserts a first name, last name, or full name from the contact record at send time. Preview the result before launching, including records with blank or unusual values.

first name · last name · identity keyword · personal address
02
Location layer: local relevance before the message is read

‘Your AC special in Baltimore’ resonates with a Baltimore contact in a way that ‘Your AC special’ does not. The location layer inserts city, region, zip, or service area, and combined with a local area code sender, creates a message that reads entirely local. One template, local relevance in every market.

city · region · zip code · service area · local area code pairing
03
Service layer: references their actual inquiry, not a generic offer

‘Your 2019 Ford F-150 is due for service’ is a different message than ‘Schedule your next service.’ The service layer inserts the specific vehicle, service type, product, or inquiry from the contact’s record. This is the layer that makes re-engagement messages feel like personal follow-up, because they reference what the contact actually asked about.

service type · vehicle · product · inquiry · specific reference
04
Behavior and timing layer: what they did and when

Last service date, last interaction, rep name, last offer received: timing and behavior fields make a message feel like the natural next step in an ongoing relationship, not a cold outreach. ‘It’s been 8 months since your last visit’ is more compelling than ‘We miss you.’ This layer is the difference between a re-engagement campaign and a re-engagement system.

last interaction · timing fields · rep name · behavior history · custom fields
05
Contact fields populated at send time

At send time, configured fields populate each contact’s message. Contacts with the same field values may receive the same wording. Personalization does not bypass carrier filtering or guarantee delivery. Plan registration, message purpose, permission, and sending capacity with your campaign setup.

contact fields · message previews · missing-value checks · campaign setup
Who uses the personalization engine

Any business where contact datais more detailed than just a name.

🚗
Automotive Dealerships

Vehicle year, make, model, last service date, service advisor name: the automotive contact record has enough data to make every message feel like it came from the service advisor who actually knows the car.

🏠
Home Services

Service type, last visit date, property address, city, rep name: an HVAC company can reference the system installed three years ago and the technician who serviced it. That’s a different message from ‘Time for your annual checkup.’

🏡
Real Estate

Price range, neighborhood preference, last inquiry date, agent name: a real estate follow-up that references what the contact was looking for performs at a different level than a generic ‘Are you still searching?’

👔
Recruiting & Staffing

Role applied for, location, last application date, recruiter name: a candidate follow-up that references the specific role they applied for reads as personal attention, not a blast to a candidate pool.

♻️
Re-engagement Campaigns

Any dormant list has contact history: last purchase, last service, last interaction. The behavior and timing layers turn a re-engagement campaign into a message that says ‘we remember you’ rather than ‘please come back.’

🏢
Multi-Location & Franchise

Location data makes a centrally managed campaign read as locally sent. Each market’s contacts get their market’s message (city, local service reference, and local area code sender) all from one dashboard.

Industries: Automotive Home Services Real Estate Recruiting Franchises
Common questions

Questions aboutdynamic personalization.

Dynamic keywords are the mechanism: the double-brace placeholders in the message template. The Dynamic Personalization Engine is the system: how those keywords are structured, layered, and combined to produce genuine relevance, not just name insertion. The engine uses four distinct data layers (identity, location, service, behavior) working together. A message using only first name is using one layer. A message using name, city, vehicle, and last service date is using the full engine.
Yes. Any column in the contact list becomes a potential personalization field. Standard fields like first name and city are pre-mapped. Custom fields (vehicle year, membership tier, rep name, last offer received, account number) are mapped during campaign setup using the column header from the import. Any data in the contact record can appear in the message.
Personalization provides context; it does not guarantee delivery or prevent filtering. Delivery depends on factors including registration, message content, permission, number reputation, and carrier rules. Plan 10DLC registration and capacity for the intended campaign, and review delivery and response activity separately.
Personalized outbound messages can invite a reply that starts a configured OTTO workflow. Route a YES response to questions, present an Interactive Text Response menu, or hand the conversation to an agent with campaign context. Configure language selection and opt-out handling for the workflow. Track replies, clicks, progress, and partial journeys separately from delivery.
Related features & reading
Three ways to get started.

Fastest takes 30 seconds.

Search Icon Site Search Close Site Search
0 results
Text Auto Attendant->