Integrations · Zoho CRM
Storm leads in your Zoho CRM pipeline
Minutes after NOAA radar confirms hail in your territory, a lead lands in Zoho CRM — hail size, county, and a link to every affected property. Zoho can catch the storm directly through Zoho Flow, with no third-party tool in between.
Get a free Swath key
Sign up at swathapi.com/signup — one email field, no credit card. Your key (it starts with sk_) comes back instantly and is shown once, so paste it somewhere safe. The free plan includes 100 credits a month; storm webhooks themselves cost nothing.
Get a webhook URL to give Swath
Path A · Zoho Flow — Zoho's own automation tool, no middleman
- Open Zoho Flow and click Create Flow
- Choose the Webhook trigger
- Set the payload type to JSON — that's what Swath sends
- Flow generates a unique webhook URL; copy it for step 3
CHECK YOUR PLAN: Zoho Flow is a separate Zoho product from Zoho CRM, bundled with some Zoho suites and sold on its own otherwise. If you don't have Flow, Path B works on any Zoho plan.
Path B · Zapier — works without Zoho Flow
- In Zapier, click Create Zap
- Trigger app: Webhooks by Zapier → event: Catch Hook
- Zapier shows a unique webhook URL — copy it; that's the URL for step 3
- Leave the Zap open; you'll add the Zoho CRM action in step 5
Catch Hook is a Zapier premium trigger, so it needs a paid Zapier plan. A native Swath app for Zapier is built and headed for the directory — until it's live, Webhooks by Zapier does the same job with one extra copy-paste.
Tell Swath to watch your territory
Path A · Ask your AI — no code, recommended
Connect Swath to Claude or ChatGPT first (a 2-minute paste-one-URL setup — steps here), then say:
Create a Swath storm monitor covering [YOUR COUNTY OR CITY] for hail 1 inch and up. Use this webhook URL: [PASTE THE WEBHOOK URL FROM STEP 2]. Name it "[TERRITORY NAME]".
The AI draws the box around your territory, creates the monitor, and confirms. Ask it to save the webhook_secret it gets back.
Path B · Or paste this in any terminal
curl -X POST https://swathapi.com/v1/monitors \ -H "Authorization: Bearer sk_YOUR_KEY" \ -H "content-type: application/json" \ -d '{ "name": "My territory", "bbox": [-97.5, 32.5, -96.4, 33.3], "hail_min_in": 1.0, "webhook_url": "PASTE_THE_WEBHOOK_URL_FROM_STEP_2" }'
Swap in your sk_ key and the webhook URL from step 2. The bbox is the [west, south, east, north] corners of a box around your territory — the example roughly covers Dallas–Fort Worth. The response includes a webhook_secret, shown once — save it.
Send a test storm so the fields get mapped
These tools map fields from a request they have actually seen — and you can't make it hail on demand. Send a realistic sample to your webhook URL: either ask your AI ("Send a test POST to [the webhook URL] with this exact JSON: …") or paste this in any terminal:
curl -X POST "PASTE_THE_WEBHOOK_URL_FROM_STEP_2" \
-H "content-type: application/json" \
-d '{
"event": "storm.verified",
"storm_id": "sw_db69f3ae",
"monitor_id": "mon_1a2b3c4d",
"type": "hail",
"mesh_in": 1.75,
"wind_mph": null,
"verified_at": "2026-07-24T19:42:00Z",
"county": "Dallas, TX",
"swath_geometry_url": "/v1/swaths/sw_db69f3ae/geometry",
"report_url": "/v1/swaths/sw_db69f3ae/properties",
"parcels_in_swath_est": null
}'
The sample then shows up as the test record, and you map from its fields. Every field Swath sends, and what it means:
| Field | What it is |
|---|---|
| event | Always storm.verified — the only event Swath sends today |
| storm_id | The storm's permanent ID, e.g. sw_db69f3ae |
| monitor_id | Which of your territories it hit, e.g. mon_1a2b3c4d |
| type | hail or wind |
| mesh_in | Largest radar-measured hail in the swath, in inches (null on wind events) |
| wind_mph | Peak measured wind, mph (null on hail events) |
| verified_at | When radar confirmed it, UTC — e.g. 2026-07-24T19:42:00Z |
| county | County the swath centers on — e.g. Dallas, TX (null only offshore / outside the US) |
| swath_geometry_url | Path to the storm's shape on a map: /v1/swaths/{storm_id}/geometry |
| report_url | Path to the affected-property list: /v1/swaths/{storm_id}/properties |
| parcels_in_swath_est | Reserved for a future estimate — currently always null |
Finish the automation
Path A (Zoho Flow): add a Zoho CRM → Create Record action, choose the Leads module, and map the fields Flow captured from your test:
- Lead name from county + mesh_in, e.g. "Storm — Dallas, TX — 1.75″ hail"
- report_url into a custom field or the description — that's the property list
- Optionally branch on county to assign the right owner
Path B (Zapier): same idea with a Zoho CRM action step instead.
HONEST NOTE: the webhook is the storm, not a homeowner list — you get one new record per verified storm, with hail size and county. The leads live behind report_url: the Swath Report lists every affected property with the hail size measured at that address (billed per property — ask for a quote first). Easiest pull: ask your AI "Pull the Swath Report for storm sw_… and give me a CSV."
The fine print (plain English)
One storm, one POST. Each verified storm that crosses a monitor produces exactly one webhook to that monitor — no duplicates. If your endpoint is down, Swath retries with increasing delays.
Every POST is signed. Swath adds an X-Swath-Signature header (t=<unix>,v1=<HMAC-SHA256>, keyed by the webhook_secret you got when the monitor was created) plus X-Swath-Event: storm.verified. Zoho Flow doesn't check signatures on inbound webhooks — that's normal for this kind of setup; the long, unguessable webhook URL is the gate.
Turning it off. Delete the monitor any time — ask your AI ("delete my Swath monitor") or call DELETE /v1/monitors/{id}.
Zoho steps verified against Zoho Flow's trigger documentation (webhook trigger, JSON payload type) as of July 27, 2026. Swath itself has no Zoho CRM-specific code — a monitor posts to whatever webhook URL you give it, which is why this page is instructions rather than a connector. Vendors rename menus periodically; if a label here doesn't match your screen, look for the inbound-webhook trigger. Webhook payload fields on this page are copied verbatim from the Swath dispatcher and stay current with the docs.