Skip to main content

Overview

Message templating is the heart of GoBlue’s personalization system. By using variables and dynamic content, you can create messages that feel personal and relevant to each recipient, even when sent automatically.
This guide assumes you have a basic understanding of GoBlue forms. If you’re new to GoBlue, start with our Setup First Form guide.

Template Basics

Variable Syntax

GoBlue uses double curly braces to define variables in message templates:
Hi {{firstName}}, thanks for your interest in {{serviceType}}!
Key Rules:
  • Variables are case-sensitive: {{firstName}}{{firstname}}
  • Variable names must match your form field names exactly
  • Spaces inside braces are ignored: {{ firstName }} works the same as {{firstName}}
  • Variables without matching data are left blank in the final message

Basic Example

Form Fields:
  • firstName
  • lastName
  • phoneNumber
  • serviceType
Template:
Hi {{firstName}},

Thanks for reaching out about {{serviceType}}! I received your inquiry and wanted to personally follow up.

I'd love to learn more about your project and see how we can help. Are you available for a quick call this week?

Best regards,
Sarah
Webhook Data:
{
  "firstName": "John",
  "lastName": "Doe",
  "phoneNumber": "+1234567890",
  "serviceType": "web development"
}
Final Message:
Hi John,

Thanks for reaching out about web development! I received your inquiry and wanted to personally follow up.

I'd love to learn more about your project and see how we can help. Are you available for a quick call this week?

Best regards,
Sarah

Advanced Templating Techniques

Conditional Content Strategies

While GoBlue doesn’t support if/else logic in templates, you can achieve conditional messaging through these strategies:

Multiple Forms Approach

Create separate forms for different scenarios:
  • High-Value Lead Form
  • Standard Lead Form
Template:
Hi {{firstName}},

Thank you for your interest in our premium {{serviceType}} services. 

Given your budget of {{budget}}, I'd like to personally discuss how we can deliver exceptional results for your project.

I have some exclusive strategies that would be perfect for a client of your caliber. When would be the best time for a 30-minute strategy call?

Best regards,
Michael Thompson
Senior Partner

Routing Logic in External Systems

Use your external systems to route data to appropriate forms:
// Example: Route leads based on budget
function routeToGoBlue(leadData) {
  const budget = parseInt(leadData.budget.replace(/[^\d]/g, ''));
  
  let formId;
  if (budget >= 10000) {
    formId = 'premium-form-id';  // Premium message template
  } else if (budget >= 5000) {
    formId = 'standard-form-id'; // Standard message template  
  } else {
    formId = 'budget-form-id';   // Budget-friendly template
  }
  
  return sendToGoBlue(formId, leadData);
}

Dynamic Content Insertion

Service-Specific Messaging

Create templates that adapt based on service type:
Hi {{firstName}},

Thanks for your interest in {{serviceType}}! 

{{#serviceType}}
{{#eq serviceType "web development"}}
I'd love to show you some recent websites we've built and discuss your vision. Our development team specializes in modern, responsive designs that convert visitors into customers.
{{/eq}}

{{#eq serviceType "SEO"}}
I'd be happy to provide a free SEO audit of your current website and show you exactly how we can improve your search rankings and organic traffic.
{{/eq}}

{{#eq serviceType "social media"}}
I'd love to share some case studies of how we've helped similar businesses grow their social media presence and engagement.
{{/eq}}
{{/serviceType}}

When would be a good time to chat?

Best regards,
{{agentName}}
The above example shows Handlebars-style syntax for illustration. GoBlue currently uses simple variable substitution. Implement conditional logic through multiple forms or external routing.

Time-Sensitive Content

Include dynamic timestamps and time-sensitive offers:
Hi {{firstName}},

Thanks for your {{serviceType}} inquiry submitted on {{submissionDate}}!

I wanted to reach out quickly because we're currently running a special promotion that ends {{promoEndDate}}. 

For projects like yours with a {{timeline}} timeline, this could be perfect timing to get started and take advantage of our current rates.

Are you available for a brief call today or tomorrow?

Best regards,
Lisa

Personalization Levels

Level 1: Basic Information

Hi {{firstName}}, thanks for contacting us about {{serviceType}}.

Level 2: Context and Details

Hi {{firstName}},

Thanks for your interest in {{serviceType}} for {{companyName}}. I see you're looking to {{projectDescription}} with a {{timeline}} timeline.

Level 3: Deep Personalization

Hi {{firstName}},

Thanks for reaching out about {{serviceType}} for {{companyName}}. 

I noticed you mentioned {{specificChallenge}} as a key challenge. We recently helped {{similarClient}} with a very similar issue - {{caseStudyResult}}.

Given your {{timeline}} timeline and {{budget}} budget, I have some specific ideas that could work perfectly for your situation.

Would you be interested in a brief call to discuss your project in more detail?

Industry-Specific Templates

Real Estate

Hi {{firstName}},

Thanks for your interest in {{propertyAddress}}! 

I'd love to schedule a showing and answer any questions you have about this {{propertyType}}. The {{keyFeature}} makes it particularly special, and I think you'll love the {{neighborhood}} location.

I have availability {{availableTimes}}. Which works better for you?

Looking forward to hearing from you!

{{agentName}}
{{agentPhone}}

E-commerce

Hi {{firstName}},

Thank you for your order #{{orderNumber}}! 

Your {{itemList}} is being prepared for shipment and will be sent to {{shippingAddress}}.

Estimated delivery: {{deliveryDate}}
Tracking will be available at: {{trackingUrl}}

We appreciate your business and hope you love your new {{primaryItem}}!

Questions? Just reply to this message.

The {{companyName}} Team

Professional Services

Hi {{firstName}},

Thanks for scheduling your {{serviceType}} consultation for {{appointmentDate}} at {{appointmentTime}}.

To make the most of our time together, please:
- Bring {{requiredDocuments}}
- Review the attached {{preparationMaterial}}
- Consider your questions about {{serviceArea}}

Our office is located at {{officeAddress}} with parking available in {{parkingInstructions}}.

Looking forward to meeting you!

{{consultantName}}

SaaS/Technology

Hi {{firstName}},

Welcome to {{productName}}! Your {{planType}} account is now active.

To get started quickly:
1. Complete your profile setup: {{setupUrl}}
2. Import your {{dataType}}: {{importUrl}}  
3. Schedule your onboarding call: {{schedulingUrl}}

Your {{trialLength}} trial includes:
- {{feature1}}
- {{feature2}}
- {{feature3}}
- Priority support

Need help? Our team is here to support you at {{supportEmail}}.

Best regards,
{{onboardingSpecialist}}

Message Length and Formatting

SMS Length Considerations

iMessages have different length limits than SMS:

SMS Limit

160 characters per message (charged per segment beyond this)

iMessage Limit

Much higher limit (thousands of characters) with rich formatting
Best Practices:
  • Keep messages under 160 characters for SMS compatibility
  • Use line breaks for readability in longer messages
  • Test with both SMS and iMessage recipients

Formatting Tips

Hi {{firstName}},

Thanks for your {{serviceType}} inquiry! 

Key Details:
• Project: {{projectType}}
• Timeline: {{timeline}}  
• Budget: {{budget}}

Next Steps:
1. Review your requirements
2. Prepare custom proposal
3. Schedule follow-up call

Available for a chat {{availabilityWindow}}?

Best,
{{agentName}}
📞 {{agentPhone}}
📧 {{agentEmail}}

Character Count Management

Use shorter variable names and concise wording: Instead of:
Hello {{firstName}}, I hope this message finds you well. I wanted to reach out regarding your recent inquiry about {{serviceType}} services for your company {{companyName}}.
Use:
Hi {{firstName}}, thanks for your {{serviceType}} inquiry for {{companyName}}!

Testing and Optimization

Template Testing Workflow

1

Create Test Data

Generate realistic test data that matches your form fields:
{
  "firstName": "Test",
  "lastName": "User", 
  "phoneNumber": "YOUR_PHONE_NUMBER",
  "serviceType": "web development",
  "budget": "$5,000-$10,000",
  "timeline": "2-3 months",
  "companyName": "Test Company Inc"
}
2

Send Test Webhook

Use your test data to trigger a message:
curl -X POST https://api.goblue.app/v1/forms/YOUR_FORM_ID/webhook \
  -H "Content-Type: application/json" \
  -d @test-data.json
3

Review Generated Message

Check the message in your GoBlue queue:
  • Variable substitution worked correctly
  • Message reads naturally
  • Length is appropriate
  • Formatting looks good
4

Send Test Message

Use iOS Shortcuts to send the test message to yourself and review on device

A/B Testing Templates

Create variations of your templates to test effectiveness:
  • Version A: Direct
  • Version B: Value-First
Hi {{firstName}},

Ready to get started on your {{serviceType}} project?

I have availability {{availableTime}}. 

Book a call: {{schedulingLink}}

{{agentName}}
Track metrics for each version:
  • Response rates
  • Conversion to calls/meetings
  • Customer feedback
  • Unsubscribe requests

Template Performance Metrics

Percentage of recipients who reply to your messagesGood: 10-15% Excellent: 20%+
Percentage who take your desired action (book call, visit website, etc.)Good: 5-10% Excellent: 15%+
How quickly recipients respond to your messagesGood: Within 24 hours Excellent: Within 2 hours

Common Template Mistakes

Avoid These Pitfalls

Bad:
Hello, thanks for contacting us. We will get back to you soon.
Good:
Hi {{firstName}}, thanks for your {{serviceType}} inquiry! I'll personally review your project details and get back to you within 2 hours with some initial ideas.
Bad:
{{firstName}}, ACT NOW! Limited time offer expires TODAY! Call immediately to secure your spot!
Good:
Hi {{firstName}}, I noticed you're interested in {{serviceType}}. I'd love to learn more about your project and see if we're a good fit to help.
Bad:
Hi {{frist_name}}, thanks for contacting us about {{sevice_type}}.
Good:
Hi {{firstName}}, thanks for contacting us about {{serviceType}}.
Bad:
Hi {{firstName}}, I hope this message finds you well today. I wanted to take a moment to personally reach out and thank you for taking the time to fill out our contact form regarding your interest in {{serviceType}} services. As someone who has been in this industry for over 10 years, I understand how important it is to find the right partner for your project, and I believe we could be that partner for you...
Good:
Hi {{firstName}}, thanks for your {{serviceType}} inquiry! I'd love to chat about your project. Are you free for a quick call this week?

Template Library

Welcome/Thank You Templates

Hi {{firstName}},

Thanks for joining {{companyName}}! 

Your {{planType}} account is ready. Here's how to get started:

→ Login: {{loginUrl}}
→ Setup guide: {{guideUrl}}
→ Support: {{supportEmail}}

Welcome aboard!
{{teamName}}

Follow-Up Templates

Hi {{firstName}},

Following up on your {{serviceType}} inquiry from {{inquiryDate}}.

I have some specific ideas for your {{projectType}} project that I'd love to share.

Quick call this week? {{schedulingUrl}}

Best,
{{agentName}}

Appointment Confirmation

Hi {{firstName}},

Your {{serviceType}} appointment is confirmed:

📅 {{appointmentDate}}
🕐 {{appointmentTime}}
📍 {{location}}
⏱️ Duration: {{duration}}

What to bring:
• {{item1}}
• {{item2}}

See you soon!
{{providerName}}

Order Confirmation

Hi {{firstName}},

Order confirmed! 🎉

Order #{{orderNumber}}
Items: {{itemList}}
Total: {{orderTotal}}

Shipping to:
{{shippingAddress}}

Estimated delivery: {{deliveryDate}}
Track: {{trackingUrl}}

Thanks for your order!
{{companyName}}

Advanced Features

Multi-Message Sequences

While GoBlue sends one message per webhook, you can create sequences using delayed forms:
1

Immediate Welcome

Form 1: Instant response
Hi {{firstName}}, thanks for your {{serviceType}} inquiry! I'll review your details and get back to you with some ideas within 24 hours.
2

Follow-Up Ideas

Form 2: 24-hour delay
Hi {{firstName}}, I've reviewed your {{serviceType}} project. I have 3 specific strategies that could work well for your {{timeline}} timeline. Worth a quick chat?
3

Final Follow-Up

Form 3: 3-day delay
Hi {{firstName}}, don't want to be a pest, but I really think we could help with your {{serviceType}} project. Last chance to connect before I move on to other clients?

Seasonal and Time-Based Content

Include dynamic elements that change based on timing:
Hi {{firstName}},

Perfect timing for your {{serviceType}} project! 

{{#isHoliday}}
Even though it's {{holidayName}}, I wanted to reach out quickly because {{seasonalReason}}.
{{/isHoliday}}

{{#isBusy}}
I know {{busyPeriod}} is hectic, but that's exactly why you need help with {{serviceType}}.
{{/isBusy}}

Available for a quick chat {{timeframe}}?

{{agentName}}

Best Practices Summary

Keep It Personal

Always use the recipient’s name and reference specific details from their inquiry

Be Conversational

Write like you’re talking to a friend, not sending a corporate email

Include Clear CTA

Always have a clear next step or call-to-action

Test Everything

Test templates with real data before using them with customers

Next Steps

Start with simple templates and gradually add more personalization as you learn what resonates with your audience. The key is to sound genuine and helpful, not robotic or sales-y.