SalesCal Docs
Integrations

Hyros Integration

Push leads and call lifecycle events to Hyros for SQL-level ad attribution across Meta, Google, and TikTok.

Benefits

  • 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

Connecting Hyros

  1. In Hyros, go to Settings > Profile > Api keys and generate (or copy) an API key
  2. In SalesCal, go to Settings > Integrations > Hyros
  3. Paste your key into the API Key field
  4. 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.

What Gets Sent to Hyros

SalesCal maps each lead/meeting lifecycle event to a Hyros API call:

SalesCal eventHyros operationHyros object
Lead form started (name + contact captured)Upsert leadLead
Form qualifiedUpsert lead with QUALIFIED stateLead
Form disqualifiedUpsert lead with DISQUALIFIED stateLead
Booking createdUpsert lead + create call (state: QUALIFIED)Lead + Call
Booking rescheduledUpsert lead + update call (state: QUALIFIED)Lead + Call
Booking cancelledUpdate call (state: CANCELLED)Call
Outcome: No-showUpdate call (state: NO_SHOW)Call
Outcome: CompletedUpdate 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.

Defaults to Know About

  • 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

Auto-Tagging by Ad Platform

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 URLHyros tag
fbclid@meta
gclid, gbraid, wbraid@google
ttclid@tiktok
utm_source=<source>@<normalized-source> (lowercase, alphanumeric/hyphens only)

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.

Workspace-Wide

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.

Requirements for Sync

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

Test Connection

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).

Troubleshooting

"Invalid API key"

Regenerate it in Hyros (Settings → Profile → Api keys) and re-paste. Hyros revokes keys when you change your password.

"Leads aren't showing in Hyros"

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.

"Cancellation didn't update the call"

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.

"Stage isn't appearing in Hyros"

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).

"Old logs are missing"

Sync log entries are pruned nightly after 30 days. For longer retention, export from Hyros itself.

Disconnecting Hyros

  1. Go to Settings > Integrations > Hyros
  2. Click Disconnect in the top right
  3. 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.

Privacy & Security

  • 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