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.
Workflow Settings
Cold Traffic
| Workflow | Re-entry | Multi Opps | Stop on Response | Timezone |
| WF-1: New Lead Intake | OFF | OFF | ON | Contact |
| WF-2: Calendar Booking | OFF | OFF | OFF | Contact |
| WF-3: Appointment Reminders | OFF | OFF | OFF | Contact |
| WF-4a: Cancellation Handler | OFF | OFF | ON | Contact |
| WF-4b: No-Show Handler | OFF | OFF | ON | Contact |
| WF-5: Qualified Notify + Task | OFF | ON | OFF | Account |
| WF-6: Karbon Handoff | OFF | ON | OFF | Account |
| WF-7: Auto No-Show Detection | OFF | OFF | OFF | Contact |
Warm Traffic
| Workflow | Re-entry | Multi Opps | Stop on Response | Timezone |
| WF-1W: Intake + Booking | OFF | OFF | OFF | Contact |
| WF-2W: Appointment Reminders | OFF | OFF | OFF | Contact |
| WF-3aW: Cancellation Handler | OFF | OFF | ON | Contact |
| WF-3bW: No-Show Handler | OFF | OFF | ON | Contact |
| WF-4W: Auto No-Show Detection | OFF | OFF | OFF | Contact |
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
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
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
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.
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
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 Fires | It 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.