Heavenly Greens — Full Zapier Deprecation & Modal Migration
Heavenly Greens is one of Northern California's largest artificial turf installation companies, operating across 9+ locations from Sacramento to Santa Cruz. They run a dual-CRM stack: AGM (GoHighLevel) for marketing automation, lead nurturing, and pipeline management, and Salesforce as the system of record for sales, jobs, and reporting. A Costco/Shaw Industries partnership adds a high-volume retail channel with its own lead intake process.
Heavenly Greens' website forms — Schedule Consultation, Request Callback, Services, and PPC landing pages across all 9 locations — were creating contacts in AGM. But those leads were never reaching Salesforce. The sales team couldn't see them. The pipeline was silently breaking.
The company relied on 38 Zapier automations to bridge AGM and Salesforce. Each location, each form type, each lead channel had its own zap — a fragile web of point-to-point integrations with no monitoring, no deduplication, and no alerting when something broke.
As part of a broader migration initiative, some zaps had been turned off — but the Modal-based replacement wasn't live yet. The result: web form leads were landing in AGM with no outbound path to Salesforce.
AGM Pro Tools conducted a complete audit of all 42 Zapier automations (38 active, 4 already off) across three pages of the Zapier dashboard, categorizing each by function, replacement status, and risk.
Every zap categorized: 32 location-based AGM→SF lead syncs, 1 SF Job Sold→AGM tag removal, 1 Costco email intake, 1 AGM Chat→SF, 3 unknown/investigation items, 2 obsolete, 2 already off.
The original plan was to point AGM workflow webhooks at Modal endpoints. Investigation revealed the GHL v2 API cannot read or edit workflow actions — only list workflow names. This meant Andrew would need to manually swap webhook URLs in 32+ workflows. Unacceptable dependency.
Instead of waiting for webhooks, the replacement polls AGM every 5 minutes for new contacts. This eliminates all dependency on AGM workflow configuration — no manual URL swaps, no Andrew bottleneck, fully autonomous operation.
Documented every AGM source field and UTM parameter, then built a mapping table to Salesforce's LeadSource picklist — ensuring leads arrive in SF with the correct attribution (Paid Search, Internet, Chat Bot, Display Ads, Referral).
Three zaps flagged during audit as "needs investigation" — Open Service Request, Stop Nurture, and Appointment from AGM — all confirmed as either dead, redundant, or already covered by existing Modal crons.
Instead of 38 fragile point-to-point integrations, AGM Pro Tools deployed a single intelligent polling engine on Modal that handles every lead sync path.
| Component | Purpose |
|---|---|
| AGM Contacts API Poller | Polls every 5 minutes for new contacts since last sync |
| Intelligent Filtering | Skips Costco leads (separate pipeline), missed calls, spam, guest visitors |
| Source Mapping Engine | Maps AGM UTM sources + form sources to SF LeadSource picklist |
| Secondary Source Extraction | Pulls location name from tags, source field, or UTM campaign |
| SF Deduplication | Checks for existing leads by email and phone before creating |
| Modal Volume State | Persists last poll timestamp — survives restarts, never double-processes |
| Slack Alerts | Real-time notification for every sync event and every failure |
| Modal Sync Stamp | Every SF lead tagged with "Synced by Modal" — full audit trail |
Every lead arrives in Salesforce with proper attribution — not a generic "Web" source like Zapier provided.
| AGM UTM Source | SF LeadSource |
|---|---|
| Paid Search | Paid Search |
| Organic Search | Internet |
| Direct Traffic | Internet |
| Referral | Referral |
| Display | Display Ads |
| AGM Source Field | SF LeadSource |
|---|---|
| Schedule Consultation | Internet |
| PPC Contact Form * | Paid Search |
| HG Live Chat | Chat Bot |
| Callback - Website | Internet |
| Services - Website | Internet |
CENTAH email → Salesforce + AGM pipeline. Dedicated Modal cron, completely independent of Zapier.
Salesforce Opportunity stage changes sync to AGM pipeline positions every 5 minutes. Replaced 4 Zapier zaps.
When SF marks a job as sold, Modal adds job-sold + remove-from-lnc tags to AGM contact. Every 10 minutes.
The final piece. All 32 location-based lead sync zaps replaced by a single 5-minute polling engine.
On March 30, 2026, AGM Pro Tools demonstrated end-to-end proof by querying both the Salesforce and AGM APIs directly — not from logs, not from deploy output, but from the actual destination records.
| Lead Name | AGM Source | SF LeadSource | SF Status |
|---|---|---|---|
| Peggy McCarthey | PPC Contact Form | Paid Search | Confirmed |
| Kathleen Tran | Schedule Consultation | Internet | Confirmed |
| Gary Gairaud | PPC Contact Form | Paid Search | Confirmed |
All three leads created via AGM web forms, picked up by the poller within 5 minutes, and confirmed present in Salesforce with correct source mapping and Modal sync stamps.
"Deployed" is never "done." "Logs look good" is never "done." Querying Salesforce and showing the actual record with the actual data — that's done.
| Capability | Zapier | AGM Pro Tools |
|---|---|---|
| Replace 38 zaps with 1 engine | N/A | Single poller |
| Intelligent source mapping | Generic "Web" | UTM + form-based attribution |
| Cross-channel deduplication | No | Email + phone match |
| Lead filtering (Costco, spam, missed calls) | No | Tag + source-based filtering |
| Persistent poll state | No | Modal Volume — survives restarts |
| Real-time failure alerting | No | Slack per event |
| Audit trail per lead | No | Modal sync stamp in SF |
| No AGM workflow dependency | Requires webhook URLs in 32+ workflows | Autonomous polling |
| Secondary source extraction | No | Location from tags/UTM/source |
| Client isolation | Shared account | Separate Modal app + secrets |
The full Zapier elimination was executed in phases over 28 days, with zero lead loss and zero downtime.
First Modal cron deployed. CENTAH emails parsed and routed to Salesforce + AGM automatically. Replaced Zapier zap #3.
Salesforce Opportunity stage changes sync to AGM pipeline every 5 minutes. Replaced 4 Zapier zaps. First Modal replacement with SQLite dedup and dead-letter replay.
Bearer auth on all endpoints. Encrypted backups. Pre-commit hooks. All 3 critical vulnerabilities closed.
Modal cron tags AGM contacts with job-sold + remove-from-lnc when Salesforce marks a job as sold. Every 10 minutes. Replaced Zapier zap #1.
Monolithic 5,249-line Modal app decomposed into 6 independent apps + shared library. 12 total apps live. Each client isolated.
Single polling engine replaces all 32 location-based lead sync zaps. Verified end-to-end with live Salesforce records. All 38 Zapier zaps now have Modal replacements.
Zapier was 38 individual bridges — each one a single point of failure. AGM Pro Tools replaced them with one intelligent engine that filters, maps, deduplicates, and monitors every lead automatically. When Heavenly Greens adds a 10th location, the poller picks it up. No new zaps. No manual configuration. It just works.
AGM Pro Tools is an enterprise integration platform for field service businesses. We connect your FSM, CRM, and sales automation systems with self-healing pipelines, real-time monitoring, and the operational intelligence to find and fix problems before they affect your customers.
We don't just connect systems. We understand what's happening inside them.
Book a Free Strategy Call