Description
Summary We run Facebook ads for garage floor coating. A homeowner requests a quote → our appointment setter calls and books an in-home estimate on a contractor's calendar → the contractor pays us $350 per appointment that actually happens. I need the GoHighLevel system that runs it. A full written spec already exists — every custom field, custom value, tag, trigger link, pipeline stage, workflow step, branch condition, and SMS message is written. You are building to spec, not designing. I'll send it before you quote so your number is real. Scope — one sub-account: ~30 custom fields across two contact types + ~50 custom values (the routing table) Three pipelines (setter queue, appointment/billing ledger, contractor accounts) Lead intake + routing — matches inbound leads to the right contractor by zip code, two priority tiers per market, fallback branch when nobody covers the area Speed-to-lead alert — SMS to the setter in under 60 seconds 14-day follow-up cadence — 13 call tasks + 8 SMS, time-of-day targeting, exit conditions on every branch, stop-on-response Appointment confirmations — dual-sided (homeowner and contractor) at booking, 24h, and 2h No-show reset — task + rebook sequence Post-appointment verification + auto-charge — fires on a timer off the appointment's end time, texts both parties, contractor answers via trigger links, 24h dispute window, then either a Stripe charge or a prepaid-credit decrement depending on that contractor's billing model Decline handling — retry schedule, then auto-pause routing to that contractor Calendars, one per contractor The hard part — quote it honestly: The appointment attaches to the homeowner's contact record. The card on file belongs to the contractor's contact record. GHL runs a workflow on one contact at a time, so there is no native path from "this appointment happened" to "charge this contractor." My spec bridges it with GHL API v2 custom webhooks — a Private Integration Token, a PUT to write fields onto the contractor, then a POST to tag him, which triggers a second workflow on his record where the card is actually reachable. I need you to tell me whether that works. Specifically: does GHL render a merge field inside a Custom Webhook's URL path? If it doesn't, the bridge needs Make.com instead — quote that separately. Not in scope: design, copywriting (every message is written), landing pages, ad setup, Stripe account configuration, hiring the setter. 1. An appointment is booked on Contact A (a homeowner). Two hours after that appointment ends, I need to charge a card on file that belongs to Contact B (a contractor). Contact A has B's contact ID stored in a custom field. How do you do this in GoHighLevel? Be specific. 2. Does a one-time GHL invoice payment vault the card for later off-session charging via the Stripe workflow action — or does that only work on subscriptions? Have you personally built this? 3. Link me to a sub-account you've built with 5+ interconnected workflows. Not screenshots — I want to click through it. 4. What's your fixed price for items 1–10? Does it change if the webhook bridge doesn't work?