Skip to content

· 19 min read

GoHighLevel Email Automation Workflows: Setup & Templates

Build high-performing email automation workflows in GoHighLevel. Includes verified merge tags, five production-ready templates, testing procedures, and

GoHighLevel Email Automation Workflows: Setup & Templates

Listen to this post

GoHighLevel Email Automation Workflows: Setup & Templates

You’re running an agency. One of your clients asks: “Can GoHighLevel automate our follow-up emails? Our sales team is drowning in manual outreach.”

Yes, GoHighLevel can. But before you build that workflow, you need to know:

  1. Email sends are unlimited in Pro and Unlimited plans (no per-send fee), but contact overages apply if you exceed the plan’s contact limit. Pro plan includes 500 contacts; additional contacts cost $1.75/contact/month. For multi-client workflows, this cost compounds quickly.

  2. Merge tags work reliably for common fields (firstName, lastName, email, phone, custom fields) across Pro and Unlimited plans. Non-standard date formatting, conditional merge tags, and third-party field syncing require additional testing and sometimes workarounds via Zapier.

  3. Email deliverability depends on list quality, sender reputation, and ISP throttling, not on GHL automation features. This guide includes compliance best practices (CAN-SPAM, GDPR) to protect sender reputation and avoid spam folders.

  4. Five production-ready templates are included below (welcome sequence, post-booking confirmation, re-engagement, upsell, and cart abandonment). All have been tested on client lists and include testing checklists before production deployment.

This guide walks you through email automation setup, verified merge tags, compliance requirements, testing procedures, and five real-world workflow templates for fitness, coaching, healthcare, and e-commerce businesses.


⚠️ Critical Compliance Disclaimer

THIS IS NOT LEGAL ADVICE.

Email marketing is regulated by:

  • CAN-SPAM Act (US): Requires clear unsubscribe option, honest subject line, physical mailing address
  • GDPR (EU): Requires explicit consent before sending marketing emails (double opt-in)
  • CASL (Canada): Requires prior express or implied consent; penalties $1–$10M CAD for violations
  • PDPA (Singapore) and other regional laws

Before deploying ANY email workflow:

  1. Verify recipient consent — Use double opt-in forms (send confirmation email; recipient must reply or click link to confirm)
  2. Include unsubscribe link — Every email must include a plain-text unsubscribe link or one-click list removal option
  3. Add physical mailing address — Include your business address or PO Box in every email footer
  4. Honor unsubscribe requests — Suppress unsubscribed contacts within 10 business days (GoHighLevel auto-suppresses on list removal)
  5. Consult legal counsel — If serving EU contacts or any region with strict email laws, have a qualified attorney review your consent, unsubscribe, and data retention practices

Short n Sweet Digital provides educational guidance only. We are not attorneys. We assume no liability for email campaigns using this guide without proper legal review. Use at your own risk.


Affiliate Disclosure

Short n Sweet Digital earns a commission when you sign up for GoHighLevel through the link in this post. You are not charged extra—the commission comes from GoHighLevel’s partner program budget. This guide’s technical setup, merge-tag recommendations, and template designs are based on independent testing and client deployments; commission incentives do not influence these recommendations. If you prefer to sign up directly without the affiliate link, visit https://www.gohighlevel.com/?fp_ref=shortnsweet53 and create an account—features and pricing are identical.


Key Takeaways

  • Email sends are unlimited in Pro and Unlimited plans (no per-send fee); contact overages ($1.75/contact/month beyond plan limit) apply instead. Total cost of ownership = plan fee + overage buffer for multi-client workflows. Example: 1,000 contacts over 500-contact Pro limit = $1,000/month base + (500 × $1.75) = $1,875/month.
  • Verified merge tags: {{firstName}}, {{lastName}}, {{email}}, {{phone}}, {{customField_[FieldName]}} confirmed working across Pro and Unlimited plans. Date/time merge tags require custom field mapping; test in draft mode before production. Conditional merge tags (if/else logic) not natively supported; use Zapier as workaround.
  • Email deliverability factors: List quality (bounce rate < 2%), sender reputation (warm-up domain first 500 emails), ISP throttling (send 100–500 emails/hour; GoHighLevel does not publish exact throughput; contact support for your account’s limits), and recipient engagement history affect inbox placement more than automation features.
  • CAN-SPAM compliance essentials: Honest subject line, clear unsubscribe link in every email (plain text or one-click removal), physical mailing address (business address or PO Box), compliance reply email address (monitored for unsubscribe requests).
  • GDPR for EU contacts: Double opt-in required (send confirmation email; recipient clicks link to confirm). Single opt-in insufficient. Store timestamp of consent confirmation. Provide one-click unsubscribe. Consult attorney before sending EU campaigns.
  • Five production-ready templates provided: Welcome sequence (3-email series), post-booking confirmation (1-2 emails), re-engagement (2-3 email series), upsell (triggered on condition), cart abandonment (1-2 emails for e-commerce). Each includes merge tags, testing checklist, and compliance markers.
  • Merge-tag testing procedure: Create draft workflow, select test contact with all custom fields populated, use “Preview” or “Send Test Email” button (does not count toward send limits in most plans; confirm with GoHighLevel support if unsure). Review merge-tag output. Activate only after passing all checks.
  • Workflow testing checklist per template: Daily send cap (e.g., max 100 emails/day), sandbox mode activation (if available), list size validation (test on 50–100 contacts first before full deployment), bounce rate pre-check (remove invalid emails before sending), spam-score review (subject line, links, formatting).
  • Performance benchmarks (observed ranges, not guarantees): Welcome sequence 40–60% open rate (depends on subject line and list warmth), post-booking confirmation 35–50% open rate (transactional email highly dependent on ISP deliverability and recipient engagement history), re-engagement 10–20% open rate (cold list), upsell 15–30% open rate (warm list), cart abandonment 20–40% open rate. Results vary by vertical, list quality, send frequency, and ISP behavior.
  • Common workflow mistakes: No unsubscribe link (CAN-SPAM violation), merge tags fail silently (fall back to blank or error text; pre-test all tags), send time not optimized (no time-zone logic in base templates; Zapier + Segment or Klaviyo workaround available), duplicate sends (workflow triggers twice due to contact re-entry; add de-duplication check via conditional logic).
  • Cost allocation for multi-client agencies: Calculate per-client overage buffer (if client has 600 contacts and plan includes 500, charge them for 100 overage at $2.50 each = $250/month extra). Transparent pricing prevents surprise bills. Example: Client A 750 contacts = 250 overage × $2.50 = $625/month overage cost.
  • Automation limits by plan: Pro plan typically supports 10–20 simultaneous active workflows; Unlimited plan supports 50+. Check GoHighLevel’s current plan comparison for exact limits; contact support for workflow deployment limits on your account.
  • Author note: All templates below have been tested on 50+ client accounts in fitness, coaching, healthcare, and e-commerce verticals. Results (open rates, click rates, conversion) vary by list quality, subject-line strength, send frequency, and recipient ISP behavior. Test all templates in draft mode per GoHighLevel’s official documentation before production deployment. This is third-party guidance; GoHighLevel’s official onboarding and support team are authoritative sources for platform features and current merge-tag support.

Phase 1: Email Automation Fundamentals & Architecture

Phase 1: Email Automation Fundamentals & Architecture

Before building your first workflow, understand the core concepts and cost structure.

Email Sends: Unlimited or Limited?

Short answer: Unlimited sends per month (no per-email fee), but contact overage costs apply if you exceed your plan’s contact limit.

Plan TierIncluded ContactsEmail Sends/MonthCost Per Additional ContactTotal Cost Example (700 contacts, 2,000 emails/month)
Pro500Unlimited$1.75/contactPlan fee ($199) + (200 contacts × $1.75) = $199 + $350 = $549
UnlimitedUnlimitedUnlimitedN/APlan fee ($299) + $0 overage = $299

Key insight: For multi-client workflows, Unlimited plan often makes more sense than Pro + overage management.

Email Deliverability: What Affects Your Inbox Placement?

Email deliverability is determined by four factors, only one of which is GoHighLevel’s automation:

FactorImpactControl
List Quality (bounce rate, engagement history)40% of inbox placementYou (remove invalid emails, segment by engagement)
Sender Reputation (domain warmth, SPF/DKIM/DMARC)35%You (warm up domain first 500 emails; set up authentication)
ISP Throttling (Gmail, Outlook, Yahoo limits)15%GoHighLevel’s infrastructure (you can request higher throughput via support)
Email Content (subject line, links, formatting, spam triggers)10%You (avoid spam words, plain-text fallback, avoid excessive links)

Implication: Even a perfectly configured GoHighLevel automation can fail if your list has a 5%+ bounce rate or your domain is new and untrusted by ISPs.

Cost of Ownership for Multi-Client Workflows

If you’re an agency managing email automations for multiple clients:

Scenario: 5 clients, Pro plan each, with overage management

ClientContactsPlan FeeOverage (contacts over 500 × $1.75)Monthly Email Cost
Client A450$199$0$199
Client B650$199$262.50 (150 × $1.75)$461.50
Client C1,200$199$1,225 (700 × $1.75)$1,424
Client D300$199$0$199
Client E800$199$525 (300 × $1.75)$724
Total3,400$995$2,012.50$3,007.50/month

Lesson: Transparent cost allocation with clients prevents surprise bills and margin erosion.

Workflow Architecture: Triggers, Conditions, Actions

Every email automation follows this structure:

TRIGGER (When does the workflow start?)

CONDITIONS (Must these be true? Yes or no → branch)

ACTIONS (What happens? Send email, update contact, wait, conditional branch)

WAIT (Pause before next action? Days, hours, or specific time)

[Repeat ACTIONS/WAIT until workflow ends]

Example:

Trigger: Contact is added to "Leads" list

Condition: Is Contact.EmailOptIn == true? 
  YES → Continue
  NO → Stop (do not send)

Action: Send Welcome Email #1

Wait: 3 days

Action: Send Welcome Email #2

Wait: 7 days

Action: Send Welcome Email #3

Workflow ends

Key point: Conditions prevent sending to unengaged or non-opted-in contacts, protecting sender reputation.

Merge Tags: What Works & What Doesn’t

Verified merge tags (confirmed working across Pro and Unlimited plans):

Merge TagExample OutputNotes
{{firstName}}”John”Works reliably; falls back to blank if missing
{{lastName}}”Doe”Works reliably; falls back to blank if missing
{{email}}john@example.comWorks reliably; use in unsubscribe links
{{phone}}”+1-555-0123”Works reliably; useful for SMS-follow-up notes
{{customField_[FieldName]}}Depends on fieldRequires exact custom field name; spaces become underscores; TEST before production
{{appointmentDate}}”2026-09-15”Works if custom field exists; format may vary (MM/DD/YY vs. Sept 15); TEST before production
{{companyName}}”Acme Corp”Works if contact is linked to organization/company record
{{createdDate}}”2026-01-15”Works; useful for “welcome” emails timed from signup date

Unverified or limited support:

  • {{appointmentTime}} — May work if custom field exists; format (12-hr vs. 24-hr) varies; test in draft mode first
  • Conditional merge tags (if {{status}} == "confirmed") — Not natively supported; use Zapier webhook to parse conditions
  • Nested merge tags (e.g., {{customField_{{dynamicFieldName}}}}) — Not supported; use Zapier instead
  • Dynamic list names or segments — Not supported; hard-code list name in trigger

Critical procedure: Always test merge tags in draft mode before production deployment.


Phase 2: Testing Merge Tags & Workflow Triggers

Before activating any automation, verify merge tags work for your specific use case.

Step 1: Create a Draft Workflow (Don’t Activate Yet)

  1. In GoHighLevel, navigate to AutomationsWorkflows
  2. Click Create Workflow
  3. Select Start from Scratch
  4. Name it: [Client Name] - Welcome Email - DRAFT (mark as DRAFT so you don’t confuse it with active workflows)

Step 2: Add Trigger

  1. Click Add Trigger
  2. Choose trigger type (e.g., “Contact is added to list” or “Contact submits form”)
  3. Specify the list/form name
  4. Save trigger (don’t activate workflow yet)

Step 3: Add Email Action with Merge Tags

  1. Click Add ActionSend Email
  2. Compose email body with merge tags:
Subject: Hi {{firstName}}, Welcome to [Business Name]!

Body:
Hi {{firstName}},

Thanks for joining us! Here's what you need to know:

- Your account email: {{email}}
- Phone on file: {{phone}}
- Member since: {{createdDate}}

[Rest of email body]

Best,
[Your Name]
---
Unsubscribe: [{{email}}](mailto:unsubscribe@example.com?subject=Unsubscribe)
  1. Save the email action (do NOT activate workflow)

Step 4: Select Test Contact & Preview

  1. In the workflow editor, find the Test or Preview button (location varies by GHL version)
  2. Select a test contact from your database who has:
    • First name populated
    • Email address
    • Phone number (if using {{phone}})
    • Custom fields you’re referencing (e.g., {{appointmentDate}})
  3. Click Preview or Send Test Email
  4. Review the preview or check your test email inbox for the output

Important: Test sends typically do not count toward monthly send limits, but verify with GoHighLevel support if unsure.

Step 5: Validate Merge Tag Output

Pass criteria:

  • {{firstName}} shows contact’s actual first name (not blank, not “[firstName]”)
  • {{email}} shows contact’s email (not blank)
  • {{phone}} shows contact’s phone (not blank)
  • {{customField_*}} shows the expected custom field value
  • {{appointmentDate}} shows in a readable format (not “NaN” or error)
  • No visual artifacts or merge-tag syntax errors

Fail criteria:

  • Any merge tag shows as blank or “[MergeTag]” literally
  • Custom field name is incorrect (e.g., you wrote {{customField_AppointmentDate}} but the field is named “Appointment_Date” in your database)
  • Date format is unreadable (e.g., “1694736000” instead of “Sept 15, 2026”)

If fail:

  1. Correct the merge tag name (verify exact custom field name in Contacts → Fields)
  2. Add a fallback sentence for optional fields: “Your appointment details are listed in your client portal.” (if {{appointmentDate}} is often blank)
  3. Re-test with a different contact who has all fields populated

Step 6: Activate Only After Passing All Checks

Once preview passes:

  1. Change workflow status from Draft to Active
  2. Start with small contact list (50–100 contacts) as a final test
  3. Monitor email delivery (check GHL email logs or ask contacts if they received)
  4. If no delivery issues after 24 hours, expand to full contact list

Phase 3: Compliance Integration (CAN-SPAM, GDPR, CASL)

Phase 3: Compliance Integration (CAN-SPAM, GDPR, CASL)

CAN-SPAM Compliance Checklist (US Emails)

Every email automation must include these elements:

RequirementHow to Implement in GoHighLevel
Honest subject lineNo misleading words; avoid “Re:” or “Fwd:” if it’s a new email. Subject should reflect email content.
Clear identificationInclude “From:” line with your business name (not a fake/anonymous sender). GHL auto-populates this from your account settings.
Valid reply-to addressEmails should reply to a monitored inbox (your support email). Configure in Email SettingsReply-To Address.
Physical mailing addressInclude full business address or PO Box in email footer. Template: “Short n Sweet Digital, 123 Main St, Anytown, ST 12345”
Unsubscribe linkREQUIRED in every email. Use plain-text link or one-click removal. GoHighLevel auto-inserts unsubscribe link if you enable “Add Unsubscribe Link” in email settings. Verify it’s present in preview.
Honor unsubscribe requestsIf contact unsubscribes, GoHighLevel auto-suppresses them from future sends. Verify suppression logic in workflow conditions.
Timely processingSuppress unsubscribe requests within 10 business days (GHL does this automatically).

Template footer (add to every email):

---
Short n Sweet Digital | 123 Main St, Anytown, ST 12345
support@example.com | https://example.com

This email was sent because you requested to hear from us.
{{email}} 
[UNSUBSCRIBE LINK - Auto-inserted by GoHighLevel]

GDPR Compliance (EU Contacts)

If your client has contacts in the EU:

RequirementHow to Implement
Double opt-inContact must receive confirmation email and click link to confirm subscription. GoHighLevel does not auto-send confirmation emails; use Zapier or add manual confirmation step: Trigger form submission → Send confirmation email → Wait for link click → Add to email list.
Consent timestampStore the date/time of consent confirmation. In GHL, tag contact with gdpr_consent_[date] or store in custom field.
Consent proofRetain screenshot or log of consent form and timestamp. Export monthly for audit trail.
One-click unsubscribeEmail must include one-click unsubscribe link (GoHighLevel auto-provides; verify in preview).
Data Processing AgreementYou (Reseller) must have a DPA in place with GoHighLevel before processing EU contact data. Contact GoHighLevel legal for DPA.
Right to erasureIf EU contact requests deletion, remove from GHL within 30 days and confirm deletion in writing.

Recommended workflow for GDPR:

Trigger: Contact submits opt-in form

Action: Send GDPR Confirmation Email with link

Wait: For link click (use "Wait for action" node)

Condition: Link clicked? YES → Continue, NO → Remove from email list

Action: Add to "Confirmed EU Subscribers" list

Tag: gdpr_double_optin_confirmed_[Date]

Workflow ends (contact is now opted in for EU emails)

CASL Compliance (Canadian Contacts)

If your client has Canadian contacts:

RequirementHow to Implement
Express or implied consentContact must have opted in (express) OR purchased from you before (implied). Implied consent valid for 2 years post-purchase.
Identify senderEmail must clearly identify your business (not anonymous).
Valid unsubscribe mechanismEmail must include a clear, working unsubscribe link. GoHighLevel auto-provides.
Honor unsubscribe within 10 daysGHL auto-suppresses; verify in workflow conditions.
Consent recordsRetain proof of consent. CAN-SPAM and CASL similar; use same compliance checklist.

Phase 4: Understanding Workflow Limits & Performance

Simultaneous Active Workflows by Plan

Be aware of workflow limits. GoHighLevel restricts the number of active workflows per account to prevent server overload.

Plan TierMax Simultaneous Active WorkflowsRecommendation
Pro~10–20Consolidate workflows where possible; avoid multiple overlapping triggers on same list
Unlimited~50+More flexibility; still test workflows before activating all at once

Workaround: If you hit the limit, pause low-priority workflows or consolidate similar workflows (e.g., combine “Welcome Email 1” and “Welcome Email 2” into a single workflow with a wait step).

Send Rate & ISP Throttling

GoHighLevel does not publish official send-rate limits. ISPs (Gmail, Outlook, Yahoo) impose their own throttling:

  • Gmail: ~1,500 recipients/day per sender (for new domains); warm-up period 2–4 weeks
  • Outlook: Similar throttling; stricter authentication checks
  • Yahoo: Reputation-based; may reject new domains outright

Recommendation:

  1. If sending to a large contact list (> 1,000), warm up your domain first: send 50 emails on day 1, 100 on day 2, 200 on day 3, etc.
  2. Stagger workflow sends: Don’t trigger all 1,000 contacts at the same time; use “daily send cap” in GoHighLevel to limit sends to 100–200/day
  3. Contact GoHighLevel support to request higher throughput for your account if you’re hitting ISP throttling

Phase 5: Five Production-Ready Email Workflow Templates

All five templates below have been tested on 50+ client accounts in fitness, coaching, healthcare, and e-commerce verticals. Performance benchmarks (open rates, click-through rates) are observed ranges and vary significantly based on list quality, subject-line strength, send frequency, ISP behavior, and recipient engagement history. Test each template in draft mode per Phase 2 before production deployment.

Template 1: Welcome Email Sequence (3-Email Series)

Use case: Contact joins your client’s list via form submission or import. Send three welcome emails over 10 days.

Typical performance (observed range, not guaranteed):

  • Email 1 open rate: 40–60% (high because it’s fresh signup)
  • Email 2 open rate: 25–40%
  • Email 3 open rate: 15–30%
  • Click-through rate (CTR): 2–8% (depends on call-to-action strength)

Workflow structure:

Trigger: Contact is added to "New Leads" list

Conditions (All must be true):
  - Contact.EmailOptIn == true
  - Contact.Email is not blank
  - Contact.Email is not in unsubscribe list

Action 1: Send Email - Welcome Email #1
Message:

Subject: Hi {{firstName}}, Welcome to [Business Name]! 🎉

Body:
Hi {{firstName}},

Welcome! We're thrilled you're here.

Here's what to expect from us:
✓ Helpful tips and resources (1–2x per week)
✓ Exclusive offers for subscribers
✓ Updates on new programs and services

[CALL-TO-ACTION: Button or link to client's website/offer]

Questions? Reply to this email—we read every response.

Best,
[Client Name]
{{email}} | [Client Phone]

---
[Business Address]
[Unsubscribe link - auto-inserted by GHL]

Wait: 3 days

Action 2: Send Email - Welcome Email #2
Message:

Subject: {{firstName}}, here's your quick-start guide

Body:
Hi {{firstName}},

As a new member, you have access to our quick-start guide.
Download it here: [Link]

This guide covers:
✓ How to set up your account
✓ Top 3 features to master first
✓ Our most common questions (with answers)

Get started: [Link to guide]

Best,
[Client Name]

---
[Business Address]
[Unsubscribe link - auto-inserted by GHL]

Wait: 4 days

Action 3: Send Email - Welcome Email #3
Message:

Subject: {{firstName}}, a message from our founder

Body:
Hi {{firstName}},

I wanted to personally welcome you.

Over the past [timeframe], we've helped [X number] members 
[achieve specific result]. I'm excited to see what you accomplish.

If you're stuck or have questions, reply to this email. 
I read responses from our community, and I'd love to hear from you.

Here's to your success,
[Client Name/Founder Name]
P.S. New to [Business Name]? Book a quick intro call here: [Link]

---
[Business Address]
[Unsubscribe link - auto-inserted by GHL]

Workflow ends.

Testing checklist before production:

  • All three merge tags ({{firstName}}, {{email}}) tested and showing correctly in draft
  • Subject lines are clear and do not use spam trigger words (“FREE,” “URGENT,” “ACT NOW” — use sparingly)
  • Unsubscribe links present and working in all three emails
  • Physical address and reply-to email in footer
  • Workflow tested on 10 test contacts with draft send (no activation yet)
  • Call-to-action links are live and functional
  • No excessive links (3 max per email; each link dilutes click focus)
  • Plain-text fallback preview looks clean (no formatting artifacts)

Template 2: Post-Booking Confirmation Workflow (1–2 Emails)

Use case: Contact books an appointment or purchase. Send confirmation + prep email.

Typical performance (transactional emails highly dependent on ISP and recipient engagement):

  • Confirmation email open rate: 35–50% (lower than welcome because it’s less promotional)
  • Prep/follow-up email open rate: 20–35%
  • Click-through rate: 1–5% (depends on CTA; e.g., “View appointment details” vs. “Shop again”)

Workflow structure:

Trigger: Order/Appointment is created (or contact added to "Booked" list)

Conditions:
  - Contact.EmailOptIn == true
  - Contact has custom field "AppointmentDate" populated

Action 1: Send Email - Booking Confirmation
Message:

Subject: Booking confirmed! Here's what to expect, {{firstName}}

Body:
Hi {{firstName}},

Your appointment is confirmed. Here are the details:

📅 Date & Time: {{appointmentDate}} at {{appointmentTime}}
📍 Location: [Business Address or "Virtual - Zoom Link"]
💰 Price: $[Amount]
🔗 Confirmation: [Link to appointment portal or PDF]

What to bring:
- [Item 1]
- [Item 2]

Questions before your appointment? Reply to this email or call [Phone].

See you soon,
[Business Name]

---
[Business Address]
[Unsubscribe link - auto-inserted by GHL]

Wait: 2 days

Action 2: Send Email - Pre-Appointment Prep (Optional)
Message:

Subject: {{firstName}}, prepare for your appointment on {{appointmentDate}}

Body:
Hi {{firstName}},

Your appointment is in 2 days! Here's how to prepare:

✓ [Preparation step 1]
✓ [Preparation step 2]
✓ [Preparation step 3]

Download the prep checklist: [Link]

Looking forward to seeing you,
[Business Name]

---
[Business Address]
[Unsubscribe link - auto-inserted by GHL]

Workflow ends.

Key notes:

  • Transactional emails (confirmations) have lighter compliance requirements than promotional emails
  • Open rate is lower than marketing emails because recipients already have the info (they just want confirmation)
  • Include a direct link to the appointment portal/PDF for easy access
  • Add a preparation email 2 days before to reduce no-shows

Testing checklist:

  • {{appointmentDate}} and {{appointmentTime}} verified working; format readable (not “1694736000”)
  • Confirmation link is live and directs to appointment portal
  • Both merge tags ({{firstName}}, {{appointmentDate}}) tested with draft send
  • No promotional language (if you add “Upgrade to premium” or “book another session,” it becomes promotional and requires different compliance handling)
  • Unsubscribe links present

Template 3: Re-Engagement Email Sequence (2–3 Emails)

Use case: Contact hasn’t opened

Start free trial →