Ad attribution: Map booked calls back to the exact ad that drove the lead
Multi-platform: Auto-tags Meta, Google, and TikTok click IDs without extra setup
Lead + call sync: Both Hyros Leads and Hyros Calls are created/updated as prospects progress
API-key auth: No OAuth dance — paste a key from Hyros and you're connected
In Hyros, go to Settings > Profile > Api keys and generate (or copy) an API key
In SalesCal, go to Settings > Integrations > Hyros
Paste your key into the API Key field
Click Test & Connect
SalesCal validates the key against Hyros before saving. If it's valid, the connected account email appears in the card; if not, you'll see an inline error and the key is not stored.
SalesCal maps each lead/meeting lifecycle event to a Hyros API call:
SalesCal event | Hyros operation | Hyros object |
Lead form started (name + contact captured) | Upsert lead | Lead |
Form qualified | Upsert lead with QUALIFIED state | Lead |
Form disqualified | Upsert lead with DISQUALIFIED state | Lead |
Booking created | Upsert lead + create call (state: QUALIFIED) | Lead + Call |
Booking rescheduled | Upsert lead + update call (state: QUALIFIED) | Lead + Call |
Booking cancelled | Update call (state: CANCELLED) | Call |
Outcome: No-show | Update call (state: NO_SHOW) | Call |
Outcome: Completed | Update call (state: QUALIFIED) | Call |
Each event has a row in the Event settings card where you can toggle it on/off and set the Hyros stage name that the event should map to. The stage autocomplete pulls live values from your Hyros account, but you can type a new stage and Hyros will create it on first sync.
Lead-only events (form started, qualified, disqualified) fire by default
Booking created and Booking cancelled fire by default
Booking rescheduled is disabled by default — turn it on if you want Hyros to track rescheduled calls
Outcome: Completed is disabled by default — turn it on if you mark meeting outcomes and want Hyros to know
Outcome: No-show fires by default
SalesCal captures click IDs and UTM parameters when a prospect lands on a public booking page and forwards them to Hyros as tags on every lead:
Parameter on the URL | Hyros tag |
|
|
|
|
|
|
|
|
You don't need to configure any of this — if your booking link has the click ID in the URL (which Meta, Google, and TikTok add automatically when ads click through), Hyros gets the tag.
The Hyros connection is team-level. One API key, one set of event settings, applied to every event you run. You can't connect different Hyros accounts to different SalesCal events.
A lead is skipped (logged but not sent) if:
No email — Hyros requires an email to dedupe leads, so prospects who only entered a phone won't sync
Call event without an existing meeting — if "Booking cancelled" fires but Hyros has no call to update, the event is logged as "No meeting" and skipped
The Test & Connect button does a live GET /api/v1.0/account call against Hyros. If the key is valid, Hyros returns your account email — that's what appears in the connected card. If not, the inline error shows the exact reason (invalid key, revoked key, network).
Regenerate it in Hyros (Settings → Profile → Api keys) and re-paste. Hyros revokes keys when you change your password.
Check the prospect has an email — Hyros won't accept lead syncs without one. The Sync log card lists every skipped event with a reason.
The booking must have synced as a "Booking created" first. If you connected Hyros after some bookings were already made, those bookings won't have Hyros call records — cancellations on them are logged with "No meeting" and skipped.
Stages auto-create when first used. If you typed a custom stage and it didn't appear in Hyros, check the Sync log for a 4xx response — Hyros may have rate-limited the create or rejected the stage name (try simpler ASCII).
Sync log entries are pruned nightly after 30 days. For longer retention, export from Hyros itself.
Go to Settings > Integrations > Hyros
Click Disconnect in the top right
Confirm the prompt: "Disconnect Hyros? Stored settings will be lost."
Hyros stops receiving events from SalesCal immediately. Leads and calls already in Hyros are not deleted — manage cleanup from inside Hyros.
The API key is stored encrypted at rest
Prospect email, name, and phone are sent to Hyros in plaintext (Hyros's API doesn't require hashing the way Meta CAPI does — your data-sharing posture is whatever you've agreed with Hyros)
IP address and tracking params are sent so Hyros can match leads to ad clicks
Meta Pixel Integration — for Meta-specific tracking via Conversions API
Google Tag Manager — for arbitrary tag firing on the booking page
Qualification Rules — controls when "Qualified" vs "Disqualified" fires for Hyros