CRYPTO TAX MADE EASY

Trent's Pipeline Automations
Pipeline Architecture 13 Workflows Email & SMS Copy Settings & Config
Prepared by: Spencer Roberts
Prepared for: Crypto Tax Made Easy
Date: March 2026

Overview

This document is a complete record of the automation work performed on Trent's Sales Pipeline in GoHighLevel. It covers pipeline architecture, workflow logic, email and SMS copy, custom fields, tags, trigger links, sending configuration, and workflow settings for both cold and warm traffic.

What Was Built

A sales pipeline with 8 stages and 13 automated workflows organized into two sub-folders under a parent folder called "Trent's Pipeline Automations." The cold traffic folder handles leads coming in from paid ads through a two-step intake (form then calendar). The warm traffic folder handles leads that stalled in other pipelines and are being re-engaged through a direct booking link.

Workflow Folder Structure

Trent's Pipeline Automations
Cold Traffic
WF-1, WF-2, WF-3, WF-4a, WF-4b, WF-5, WF-6, WF-7
Warm Traffic
WF-1W, WF-2W, WF-3aW, WF-3bW, WF-4W

WF-5 (Qualified Notify + Task) and WF-6 (Karbon Handoff) are shared across both cold and warm traffic. They live in the Cold Traffic folder but fire for all opportunities in Trent's Pipeline regardless of traffic source. They were not duplicated for warm traffic because both trigger on shared pipeline stages, and duplicating them would cause double-firing.

Pipeline: Trent's Pipeline

Stages

#StagePurpose
1New LeadCold traffic intake. Opp created here by WF-1 on form submission.
2Call Booked - Cold TrafficLead booked via CTME Consultation Calendar (cold).
3Call Booked - Warm TrafficLead booked via Warm Traffic Calendar (warm).
4Follow Up NeededCall happened but lead needs more info before qualifying. Parks opp safely without triggering no-show detection.
5Call Completed - QualifiedTrent confirmed the lead is a fit. Triggers WF-5 (task to send quote).
6Quote SentTrent manually moves here after sending engagement letter + invoice.
7Awaiting PaymentInvoice outstanding. Trent manually moves here.
8Invoice Paid - Move to KarbonTrent moves here when payment received. Triggers WF-6 (Karbon handoff).

Dispositions: Won, Lost, Abandoned. Built-in GHL statuses accessible by dragging opps to the bottom of the pipeline board. Abandoned is auto-triggered by WF-4a/WF-4b after 30 days of no response.

Global Configuration

Sending Configuration

SettingValue
From NameMatt from CTME
From Emailmatt@cryptotaxmadeeasy.contact
From Number+18336973418
Future Email Migrationmatt@ctme.io (once domain is warmed)

Tags

TagSet ByPurpose
SMS EligibleWF-1 / WF-2 / WF-1WUS and Canada contacts. All downstream workflows check for this tag before sending SMS.
SMS IneligibleWF-1 / WF-2 / WF-1WAll non-US/Canada contacts. Explicit tag so eligibility is always confirmed.
Cold TrafficWF-1Identifies leads that entered through paid ad cold traffic intake.
Warm TrafficWF-1WIdentifies leads that entered through warm traffic re-engagement.
Active ClientWF-6Applied when opp reaches Invoice Paid. Segments paid clients for retention.

Opportunity Custom Fields

FieldTypeValues
Lead SourceDropdownForm Submission, Calendar Booking, Returning Client, CPA Referral, Paid Ad, Organic
Service TypeDropdownDone-For-You Recon, Course, White Label, Business Bookkeeping
Lost ReasonDropdownUnqualified, Price, Chose Competitor, DIY, Unresponsive, Bad Timing
Filing StatusRadioIndividual, Business Entity, Other
Activity TypesCheckboxDerivatives/Perps, Margin Trading, Futures, Staking, NFTs, Liquidity Pools, Bridges...
Have ALL Wallets Been Uploaded?RadioYes, Partially, No
Have ALL Exchange APIs Been Connected?RadioYes, Partially, No
Have You Emailed ALL CSV Backups?RadioYes, Partially, No
Estimated Total TransactionsRadioUnder 1,000; 1,000-5,000; 5,000-15,000; 15,000-50,000...
ComplexitySingle LineAuto-populated by webhook based on scoring formula
Tax SoftwareCheckboxKoinly, SUMM, Awaken, Netrunner, Mixed Stack
Tax Opinion Letter CandidateCheckboxStaking, Wrapping/Bridging, Airdrops

Tax year fields remain on the contact object as they existed prior to this build.

Complexity Scoring Formula

The Complexity field is auto-populated by a webhook that calculates a score based on the lead's intake form answers. 2024 and 2025 do not add points — they are baseline current-year filings.

Tax Years

FactorPoints
2023 selected+10
2022 selected+10
2021 selected+15
Before 2021 selected+25
More than 2 years total+10

Blockchains

FactorPoints
3+ chains selected+15
Each DeFi-heavy chain (Ethereum, Arbitrum, Base, Avalanche, Other)+10 each

Other

FactorPoints
No tax software+10
Non-standard country (not AU, CA, NZ, UK, USA)+15

Tier Thresholds

ScoreTier
0 – 20Tier 1 - Simple
21 – 45Tier 2 - Moderate DeFi
46 – 75Tier 3 - High Complexity
76+Tier 4 - Whale / Enterprise

Custom Values & Trigger Links

NameValueUsed In
Cold Traffic Booking Link{{trigger_link.byWW9xuyiuyGVG73BDRF}}All cold traffic emails and SMS
Warm Traffic Booking Link{{custom_values.trents_warm_traffic_calendar_link}}All warm traffic emails and SMS

System Merge Fields

NameMerge FieldUsed In
Meeting Location{{appointment.meeting_location}}Reminder emails and SMS
Appointment Time (time only){{appointment.only_start_time}}Lead-facing reminders
Appointment Time (full){{appointment.start_time}}Internal notifications
Contact First Name{{contact.first_name}}All lead-facing emails and SMS
Contact Last Name{{contact.last_name}}Opportunity naming, internal notifications
Contact Email{{contact.email}}Internal notifications, task descriptions
Contact Phone{{contact.phone}}Internal notifications, task descriptions

Workflow Settings

Cold Traffic

WorkflowRe-entryMulti OppsStop on ResponseTimezone
WF-1: New Lead IntakeOFFOFFONContact
WF-2: Calendar BookingOFFOFFOFFContact
WF-3: Appointment RemindersOFFOFFOFFContact
WF-4a: Cancellation HandlerOFFOFFONContact
WF-4b: No-Show HandlerOFFOFFONContact
WF-5: Qualified Notify + TaskOFFONOFFAccount
WF-6: Karbon HandoffOFFONOFFAccount
WF-7: Auto No-Show DetectionOFFOFFOFFContact

Warm Traffic

WorkflowRe-entryMulti OppsStop on ResponseTimezone
WF-1W: Intake + BookingOFFOFFOFFContact
WF-2W: Appointment RemindersOFFOFFOFFContact
WF-3aW: Cancellation HandlerOFFOFFONContact
WF-3bW: No-Show HandlerOFFOFFONContact
WF-4W: Auto No-Show DetectionOFFOFFOFFContact

Setting Definitions

Allow Re-entry: OFF for all workflows. Appointment-based triggers override this setting automatically per GHL documentation — contacts can always re-enter for new appointments regardless of this toggle.

Allow Multiple Opportunities: ON for opp-triggered workflows only (WF-5, WF-6). Future-proofed for when duplicate opportunities are enabled.

Stop on Response: ON for workflows with follow-up sequences sent to leads. When a lead replies, the sequence stops and Trent handles it manually.

Timezone: Contact timezone for all lead-facing workflows. Account timezone for internal-only workflows.

Cold Traffic Workflows

These workflows handle leads entering through paid advertising via a two-step intake: form submission (Step 1) followed by calendar booking (Step 2).

WF-1: New Lead Intake

Trigger: Inbound Webhook (intake form submission)

Fires on form submission. Updates contact, checks SMS eligibility, creates opportunity in New Lead, then waits 10 minutes for a calendar booking. If the lead doesn't book, runs a 3-step nudge sequence.

Actions

01
Update Contact — Map webhook fields: name, email, phone, country, tax year fields, transaction volume.
02
SMS Eligibility Check: If Country = USA or Canada → Add Tag: SMS Eligible + Cold Traffic. Otherwise → Add Tag: SMS Ineligible + Cold Traffic.
03
Find Opportunity → Trent's Pipeline, Status = Open. Found → STOP. Not Found → Continue.
04
Create Opportunity → Stage: New Lead, Name: contact.first_name contact.last_name - date
05
Wait 10 minutes
06
Find Opportunity → Stage = Call Booked - Cold Traffic. Found → STOP. Not Found → Continue.
07
SMS Eligible: Send SMS + Email. Ineligible: Send Email only. Both merge.
08
Wait 24 hours → Check stage → Booked: STOP. Not booked: SMS/Email split again. Merge.
09
Wait 48 hours → Check stage → Booked: End. Not booked: Final email (all contacts). End.
10-Minute Nudge — SMS (Eligible)
Hey contact.first_name, thanks for reaching out about your tax situation. We help investors like you every day. Book a quick call with our team and we will walk you through what we can do: trigger_link.byWW9xuyiuyGVG73BDRF
10-Minute Nudge — Email (All)
Subject: Let's talk about your tax situation
Hi contact.first_name,

Thanks for reaching out to us.

We reviewed your submission and would love to learn more about your situation. The best next step is a quick call with Trent on our data analysis team. He can look at your portfolio complexity, flag any risk areas, and give you a clear picture of what it would take to get everything sorted.

Most calls take about 15 to 20 minutes.

Book a time that works for you here: trigger_link.byWW9xuyiuyGVG73BDRF
Best,
Matt
24-Hour Nudge — SMS (Eligible)
Following up, contact.first_name. 90% of the time, tax software overestimates capital gains for digital asset investors. We can show you where that might be happening. Book a free review: trigger_link.byWW9xuyiuyGVG73BDRF
24-Hour Nudge — Email (All)
Subject: Quick question about your taxes
Hi contact.first_name,

Following up on your inquiry.

One thing we see constantly: investors using tax software that inflates their capital gains. In about 90% of cases, the software overestimates what you owe because it cannot handle complex DeFi activity, NFTs, or cross-chain transactions properly.

A quick call with our team can show you whether that is happening in your case and how much it could be costing you.

Book your free review here: trigger_link.byWW9xuyiuyGVG73BDRF
Best,
Matt
48-Hour Nudge — Email (All)
Subject: Last chance to book your tax review
Hi contact.first_name,

This is my last follow up. Our team takes on a limited number of new clients at a time to make sure every portfolio gets the attention it deserves.

If you want a specialist to review your transactions and make sure you are not overpaying or exposing yourself to audit risk, now is the time to book.

Book your free review: trigger_link.byWW9xuyiuyGVG73BDRF
Best,
Matt

WF-2: Calendar Booking

Trigger: Customer Booked Appointment (CTME Consultation Calendar)

Fires when a cold lead books. Removes contact from cancellation/no-show workflows, finds or creates opp, moves to Call Booked - Cold Traffic, assigns Trent, notifies Trent.

Actions

01
Remove from Workflow: WF-4a (Cancellation Handler)
02
Remove from Workflow: WF-4b (No-Show Handler)
03
Find Opportunity → Trent's Pipeline, Open, Latest.
Found Update Opportunity to Call Booked - Cold Traffic → Go To Add Owner (skip creation).
Not Found SMS Eligibility Check → Tag accordingly → Create Opportunity in Call Booked - Cold Traffic.
06
Add Owner to Opportunity → Trent
07
Internal Notification → Email to Trent.
SMS eligibility only runs in the Not Found branch. If the opp exists, WF-1 already tagged the contact.
Subject: New call booked - contact.first_name contact.last_name New discovery call booked.
Contact: contact.first_name contact.last_name
Email: contact.email
Phone: contact.phone
Country: contact.country
Appointment: appointment.start_time

WF-3: Appointment Reminders

Trigger: Customer Booked Appointment (CTME Consultation Calendar)

Sends reminders at 24hrs, 2hrs, and 30min before the call. 15-minute heads-up to Trent.

24-Hour — SMS (Eligible)
Hey contact.first_name, just a reminder your tax review is tomorrow at appointment.only_start_time. Check your email for details on how to prepare.
24-Hour — Email (All)
Subject: Your tax review is tomorrow
Hi contact.first_name,

Quick reminder that your tax review is scheduled for tomorrow at appointment.only_start_time.

To make the most of your call with Trent, it helps to have a rough idea of: how many wallets and exchanges you use, your approximate number of transactions, and which tax year or years you need help with.

Here is your meeting link: appointment.meeting_location
Talk soon,
Matt
2-Hour — SMS (Eligible)
Your tax review is in 2 hours at appointment.only_start_time. Join here: appointment.meeting_location
2-Hour — Email (Ineligible only)
Subject: Your call is in 2 hours
Hi contact.first_name,

Your tax review starts in about 2 hours. Here is your meeting link: appointment.meeting_location
See you soon,
Matt
30-Minute — SMS (Eligible only)
Starting in 30 min! Join here: appointment.meeting_location

// Ineligible contacts: skip entirely.

15-Minute — Internal Email to Trent
Subject: Call in 15 min - contact.first_name contact.last_name Upcoming call in 15 minutes.
Contact: contact.first_name contact.last_name
Email: contact.email
Phone: contact.phone
Country: contact.country

WF-4a: Appointment Cancellation Handler

Trigger: Appointment Status Changed → Cancelled (CTME Consultation Calendar)

Removes from WF-3, waits 5 min buffer (for reschedules), then runs reschedule follow-up sequence. After 30 days of no rebook, marks opp as Abandoned.

Actions

01
Remove from Workflow: WF-3
02
Wait 5 minutes (reschedule buffer)
03
SMS check → Eligible: SMS + Email. Ineligible: Email only. Merge.
04
Wait 3 days → Email (all)
05
Wait 5 days → Email (all)
06
Wait 30 days → Update Opportunity Status: Abandoned
If lead rebooks at any point, WF-2 fires and removes them from this workflow instantly.
Initial — SMS (Eligible)
No worries about the cancellation, contact.first_name. When you are ready to get your taxes sorted, grab a new time here: trigger_link.byWW9xuyiuyGVG73BDRF
Initial — Email (All)
Subject: Want to reschedule your tax review?
Hi contact.first_name,

We saw your appointment was cancelled. No problem at all.

When you are ready, you can book a new time for your tax review here: trigger_link.byWW9xuyiuyGVG73BDRF

Our team reviews portfolios like yours every day. A quick call is all it takes to see where you stand and whether you are leaving money on the table.
Best,
Matt
3-Day — Email (All)
Subject: Still interested in getting your taxes sorted?
Hi contact.first_name,

Just checking in. If your digital asset taxes are still on your to-do list, we are here to help.

One of the biggest mistakes we see is investors waiting until the last minute and then scrambling with inaccurate software. A 15 minute call now can save hours of stress later.

Book a new time here: trigger_link.byWW9xuyiuyGVG73BDRF
Best,
Matt
5-Day — Email (All)
Subject: Your tax review is still available
Hi contact.first_name,

This is my last follow up. Our team takes on a limited number of clients at a time and we are prioritizing investors who have already started the process.

If you want to make sure your taxes are handled correctly this year, grab a time before our availability closes up: trigger_link.byWW9xuyiuyGVG73BDRF
Best,
Matt

WF-4b: Appointment No-Show Handler

Trigger: Appointment Status Changed → No Show (CTME Consultation Calendar)

Fires when marked No Show (manually by Trent or automatically by WF-7). Runs reschedule follow-up with SMS branching. After 30 days, marks Abandoned.

Actions

01
Remove from Workflow: WF-3
02
SMS check → Eligible: SMS + Email. Ineligible: Email → Go To merge.
03
Wait 24hr → Email (all).
04
Wait 48hr → SMS check. Eligible: SMS. Ineligible: Go To skip.
05
Email (all): Final attempt.
06
Wait 30 days → Update Opportunity Status: Abandoned
If lead rebooks at any point, WF-2 fires and removes them instantly.
Initial — SMS (Eligible)
Hey contact.first_name, looks like we missed each other for your tax review. Want to reschedule? trigger_link.byWW9xuyiuyGVG73BDRF
Initial — Email (All)
Subject: We missed you today
Hi contact.first_name,

It looks like we were not able to connect for your tax review. These things happen.

Trent still has your information ready to go, so when you reschedule he can pick up right where you left off. No need to re-submit anything.

Book a new time here: trigger_link.byWW9xuyiuyGVG73BDRF
Best,
Matt
24-Hour — Email (All)
Subject: Your tax review is still on the table
Hi contact.first_name,

Following up from yesterday. We had a client last month in a similar situation: thousands of transactions, DeFi activity across multiple chains, and tax software telling them they owed way more than they actually did.

After our review, they went from a capital gains position to a capital loss. The refund more than covered our fee.

We would love to take a look at your situation. Book a new time here: trigger_link.byWW9xuyiuyGVG73BDRF
Best,
Matt
48-Hour — SMS (Eligible only)
Last follow up, contact.first_name. Your free tax review is still available. Book here before our schedule fills up: trigger_link.byWW9xuyiuyGVG73BDRF
Final — Email (All)
Subject: Should we close your file?
Hi contact.first_name,

I have followed up a few times and have not heard back, so I want to make sure I am not cluttering your inbox.

If now is not the right time, no worries at all. If you do want help with your taxes, you can always book directly here: trigger_link.byWW9xuyiuyGVG73BDRF

Otherwise I will close out your file on our end.
Best,
Matt

WF-5: Qualified — Notify + Task Shared

Trigger: Pipeline Stage Changed → Call Completed - Qualified

Fires when Trent drags opp to Call Completed. Creates a task and notifies Trent to send the quote. All quoting, invoicing, and payment collection is manual.

Actions

01
Create Task → Assigned to Trent, due today: "Send quote to contact.first_name contact.last_name"
02
Internal Notification → Email to Trent.
Shared workflow. Handles both cold and warm traffic. Not duplicated.
Subject: Qualified lead - send quote to contact.first_name contact.last_name contact.first_name contact.last_name has been moved to Call Completed - Qualified.

Action needed: Send engagement letter and invoice.
Contact: contact.email
Phone: contact.phone
Country: contact.country

WF-6: Karbon Handoff Shared

Trigger: Pipeline Stage Changed → Invoice Paid - Move to Karbon

Fires when Trent moves opp to final stage after payment. Tags client and creates task for Justice.

Actions

01
Add Tag: Active Client
02
Create Task → Assigned to Justice Vigohayes, due today: "Karbon assignment — contact.first_name contact.last_name"
Shared workflow. Handles both cold and warm traffic. Not duplicated.

WF-7: Auto No-Show Detection

Trigger: Customer Booked Appointment (CTME Consultation Calendar)

Fires on every booking. Waits 2 hours after appointment end time, then checks if opp moved out of Call Booked - Cold Traffic. If still there, auto-marks as No Show (fires WF-4b).

Actions

01
Wait until appointment end time
02
Wait 2 hours
03
Find Opportunity → Stage = Call Booked - Cold Traffic, Open
Found Update Appointment Status: No Show → End.
Not Found STOP (call happened).

Scenario Coverage

[ Lead shows up, Trent moves opp ]: Not found in Call Booked → exits. No false no-show.

[ Lead no-shows, Trent forgets ]: Found in Call Booked → auto-marks No Show → WF-4b fires.

[ Lead cancels ]: GHL pulls contact out of WF-7. Never reaches check.

[ Trent marks No Show manually ]: GHL pulls contact out of WF-7. WF-4b fires from manual mark. No double-fire.

Warm Traffic Workflows

These workflows handle leads that stalled in the Email Sales pipeline and are being re-engaged through a direct booking link. The contact and context already exist. Tone is familiar: Trent has already reviewed their portfolio.

WF-1W: Warm Traffic Intake + Booking

Trigger: Customer Booked Appointment (Warm Traffic Calendar)

Combines intake and booking. Removes from warm follow-up workflows, finds existing opp in Email Sales, moves to Trent's Pipeline.

Actions

01
Remove from Workflow: WF-2W, WF-3aW, WF-3bW
02
Find Opportunity → Email Sales Pipeline, Open
Found Update Opportunity → Trent's Pipeline, Call Booked - Warm Traffic. Add Tag: Warm Traffic → Go To Add Owner.
Not Found SMS Eligibility Check → Tag → Create Opp in Call Booked - Warm Traffic.
05
Add Owner → Trent
06
Internal Notification → Email to Trent.
Subject: Warm lead booked - contact.first_name contact.last_name Warm traffic lead has booked a call.
Contact: contact.first_name contact.last_name
Email: contact.email
Phone: contact.phone
Country: contact.country
Appointment: appointment.start_time
Source: Warm Traffic

WF-2W: Appointment Reminders (Warm)

Trigger: Customer Booked Appointment (Warm Traffic Calendar)

Same structure as cold WF-3. Copy references Trent having already reviewed their portfolio.

24-Hour — SMS (Eligible)
Hey contact.first_name, just a reminder your call with Trent is tomorrow at appointment.only_start_time. Check your email for details.
24-Hour — Email (All)
Subject: Your call with Trent is tomorrow
Hi contact.first_name,

Quick reminder that your call with Trent is scheduled for tomorrow at appointment.only_start_time.

Trent has already reviewed your portfolio and transaction history, so he will be ready to walk you through his findings and answer any questions.

Here is your meeting link: appointment.meeting_location
Talk soon,
Matt
2-Hour — SMS (Eligible)
Your call with Trent is in 2 hours at appointment.only_start_time. Join here: appointment.meeting_location
2-Hour — Email (Ineligible only)
Subject: Your call is in 2 hours
Hi contact.first_name,

Your call with Trent starts in about 2 hours. Here is your meeting link: appointment.meeting_location
See you soon,
Matt
30-Minute — SMS (Eligible only)
Starting in 30 min! Join here: appointment.meeting_location

// Ineligible contacts: skip entirely.

15-Minute — Internal Email to Trent
Subject: Warm lead call in 15 min - contact.first_name contact.last_name Upcoming warm traffic call in 15 minutes.
Contact: contact.first_name contact.last_name
Email: contact.email
Phone: contact.phone
Country: contact.country
Source: Warm Traffic

WF-3aW: Cancellation Handler (Warm)

Trigger: Appointment Status Changed → Cancelled (Warm Traffic Calendar)

Same structure as cold WF-4a. Copy references Trent's existing review and portfolio findings.

Actions

01
Remove from Workflow: WF-2W
02
Wait 5 minutes (reschedule buffer)
03
SMS check → Eligible: SMS + Email. Ineligible: Email only. Merge.
04
Wait 3 days → Email (all)
05
Wait 5 days → Email (all)
06
Wait 30 days → Update Opportunity Status: Abandoned
Initial — SMS (Eligible)
No worries about the cancellation, contact.first_name. Trent still has your portfolio review ready to go. Grab a new time here: custom_values.trents_warm_traffic_calendar_link
Initial — Email (All)
Subject: Want to reschedule your call with Trent?
Hi contact.first_name,

We saw your appointment was cancelled. No problem at all.

Trent has already reviewed your portfolio and flagged a few areas worth discussing. When you are ready, he can pick up right where he left off.

Book a new time here: custom_values.trents_warm_traffic_calendar_link
Best,
Matt
3-Day — Email (All)
Subject: Trent's findings are ready when you are
Hi contact.first_name,

Just checking in. Trent flagged at least one area where investors at your portfolio size typically overpay or misreport, usually because the software they use is not built for complex activity.

We can show you exactly where that might be happening in your account. A quick call is all it takes.

Book a new time here: custom_values.trents_warm_traffic_calendar_link
Best,
Matt
5-Day — Email (All)
Subject: Last chance to review your findings with Trent
Hi contact.first_name,

This is my last follow up. Trent's review of your portfolio is ready and waiting. We take on a limited number of clients at a time, so if you want to walk through his findings, now is the time.

Book here: custom_values.trents_warm_traffic_calendar_link
Best,
Matt

WF-3bW: No-Show Handler (Warm)

Trigger: Appointment Status Changed → No Show (Warm Traffic Calendar)

Same structure as cold WF-4b. Copy references findings ready and waiting.

Actions

01
Remove from Workflow: WF-2W
02
SMS check → Eligible: SMS + Email. Ineligible: Email → Go To merge.
03
Wait 24hr → Email (all).
04
Wait 48hr → SMS check. Eligible: SMS. Ineligible: Go To skip.
05
Email (all): Final attempt.
06
Wait 30 days → Update Opportunity Status: Abandoned
Initial — SMS (Eligible)
Hey contact.first_name, looks like we missed each other. Trent still has your portfolio review ready. Reschedule here: custom_values.trents_warm_traffic_calendar_link
Initial — Email (All)
Subject: We missed you today
Hi contact.first_name,

It looks like we were not able to connect for your call with Trent. No worries.

He still has your portfolio review ready to go, so when you reschedule he can pick up right where he left off. No need to re-submit anything.

Book a new time here: custom_values.trents_warm_traffic_calendar_link
Best,
Matt
24-Hour — Email (All)
Subject: Trent's findings are still waiting
Hi contact.first_name,

Following up from yesterday. While reviewing your portfolio and transaction history, Trent noticed a few patterns that could materially affect how much tax you pay and your audit risk.

In some cases like yours, a small change in how activity is classified means a five or six figure difference over a few years.

We would love to walk you through it. Book a new time here: custom_values.trents_warm_traffic_calendar_link
Best,
Matt
48-Hour — SMS (Eligible only)
Last follow up, contact.first_name. Trent's review of your account is ready. Book here: custom_values.trents_warm_traffic_calendar_link
Final — Email (All)
Subject: Should we close your file?
Hi contact.first_name,

I have followed up a few times and have not heard back, so I want to make sure I am not cluttering your inbox.

If now is not the right time, no worries at all. If you do want to walk through Trent's findings, you can always book directly here: custom_values.trents_warm_traffic_calendar_link

Otherwise I will close out your file on our end.
Best,
Matt

WF-4W: Auto No-Show Detection (Warm)

Trigger: Customer Booked Appointment (Warm Traffic Calendar)

Same logic as cold WF-7. Checks Call Booked - Warm Traffic instead of Cold Traffic.

Actions

01
Wait until appointment end time
02
Wait 2 hours
03
Find Opportunity → Stage = Call Booked - Warm Traffic, Open
Found Update Appointment Status: No Show → End (fires WF-3bW).
Not Found STOP.

Trent's Daily Workflow

With all automations in place, Trent's manual workload per deal is four actions:

01
Take the call. Leads arrive in Call Booked automatically. Trent reviews the opp card for context and takes the discovery call.
02
Move the opp. After each call, drag to: Call Completed - Qualified (triggers task to send quote), Follow Up Needed (parks safely), or Lost (closes deal).
03
Send the quote. Send engagement letter + invoice. Move opp through Quote Sent → Awaiting Payment.
04
Move to Karbon. When paid, drag to Invoice Paid - Move to Karbon. WF-6 tags Active Client and creates a task for Justice.

Everything else — booking nudges, appointment reminders, no-show detection, cancellation follow-ups, and Karbon handoff — runs automatically.

How the Workflows Interact

Cross-Workflow Cleanup

When a lead rebooks after cancelling or no-showing, the new booking workflow removes the contact from any running follow-up sequences.

When This FiresIt Removes Contact From
WF-2 (cold booking)WF-4a, WF-4b
WF-1W (warm booking)WF-2W, WF-3aW, WF-3bW

GHL Native Pull-Out Behavior

GHL automatically pulls contacts out of appointment-triggered workflows when the appointment status changes to Cancelled, No Show, or Invalid. The documentation is ambiguous on whether this applies to all appointment-triggered workflows or just one. WF-4a, WF-4b, WF-3aW, and WF-3bW include Remove from WF-3/WF-2W as a belt-and-suspenders safety net.

Auto No-Show Detection

GHL does not automatically mark appointments as No Show. WF-7 (cold) and WF-4W (warm) solve this by waiting 2 hours after the appointment end time and checking whether the opportunity has moved out of Call Booked. If it has, the call happened. If it hasn't, the appointment is auto-marked as No Show.

SMS Eligibility

US and Canada contacts are tagged SMS Eligible at intake. All other contacts are tagged SMS Ineligible. Every workflow checks for the SMS Eligible tag before sending SMS. The 30-minute appointment reminder is SMS only — ineligible contacts skip it. The word "crypto" is avoided in all copy to prevent Twilio filtering and ESP deliverability issues.