Connecting your tools
Who this is for: anyone on your team who sets up alerts, connects a CRM, or hands webhooks to a developer.
CallOps can notify you the instant something important happens — a meeting gets booked, a hot lead comes in — and it can keep your CRM and calendar in sync automatically. This page covers everything under Settings → Integrations, Settings → Developer, the notification bell, and Settings → Webhooks (inbound leads).
Note: your provider may show this product under a different name. This guide calls it "CallOps."
What's live today vs. what's coming
Be honest with yourself about what each connection currently does:
| Integration | Status | What actually happens |
|---|---|---|
| Slack | Live | Paste in a Slack incoming-webhook URL and real alerts post to your channel immediately. |
| Microsoft Teams | Live | Same as Slack — paste in a Teams incoming-webhook URL and real alerts post to your channel. |
| HubSpot | Simulated | Connecting it turns the integration "on" and the events pipeline runs, but contacts/activity are only logged internally — nothing is pushed to your real HubSpot account yet. |
| Salesforce | Simulated | Same as HubSpot — wiring is in place, but nothing reaches a live Salesforce org yet. |
| Calendar (Cal.com / Google) | Simulated | Booking events are recognized and processed, but no real calendar event is created yet — you'll see a placeholder link instead of an actual calendar invite. |
| Zapier | Bring your own | There's no built-in Zapier button. Use an outbound webhook (below) pointed at a Zapier "Catch Hook" trigger to connect to Zapier's 6,000+ apps. |
If your team relies on HubSpot, Salesforce, or calendar sync being fully live, check with whoever manages your CallOps account about when real credentials are wired in — the connection screen will say "connected," but until it's fully wired, those two only log activity internally.
Connecting an integration
- Go to Settings → Integrations.
- Find the card for the tool you want (Slack, Microsoft Teams, HubSpot, Salesforce, Calendar, or Zapier).
- Fill in the field it asks for and click Connect:
- Slack — paste your Slack incoming webhook URL (starts with
https://hooks.slack.com/services/…). - Microsoft Teams — paste your Teams incoming webhook URL (starts with
https://outlook.office.com/webhook/…). - HubSpot — paste your HubSpot private-app token (starts with
pat-na1-…). - Salesforce — paste your Salesforce access token.
- Calendar — paste your Cal.com/Google API token.
- Zapier — no field to fill in here; see outbound webhooks below instead.
- Slack — paste your Slack incoming webhook URL (starts with
- The card shows a connected badge once it's saved.
To remove a connection, click Disconnect on that card at any time — it takes effect immediately.
Slack and Teams: what triggers an alert
Once Slack or Teams is connected, CallOps posts a message automatically for two events:
| Event | Message |
|---|---|
| A meeting gets booked on a call | "🔥 Meeting booked!" with the contact's name, phone number, and a short summary |
| A new lead comes in through a lead webhook | "⚡ New lead received" with the contact's name and phone number |
Nothing else posts to Slack/Teams automatically — routine calls, campaign updates, and low-balance warnings show up in the notification center instead, not in chat.
HubSpot and Salesforce: what gets logged
When a CRM integration is active, two things sync on the relevant events:
- New contact created in CallOps → the contact's name, phone, and email are upserted into the CRM.
- Call completed → a call activity is logged against that contact, including outcome and duration.
As noted above, in the current build this sync writes to CallOps's own internal log rather than a live HubSpot/Salesforce account — so you can verify the wiring end-to-end, but don't expect to see new records appear in your actual CRM yet.
Calendar
When connected, a booked meeting on a call triggers a calendar-booking event carrying the meeting title and the contact's name/phone. Today this returns a placeholder confirmation rather than creating a real event on your Cal.com or Google Calendar — treat it as a preview of the feature, not a working calendar sync yet.
Outbound webhooks (for developers)
If you have a developer on your team, or you want to pipe events into a tool like Zapier, Make, or your own backend, use outbound webhooks instead of (or alongside) the built-in integrations above.
Creating an endpoint
- Go to Settings → Developer.
- Under Outbound webhooks, enter your endpoint's URL (must be
https://…) and an optional description. - Check the boxes for every event you want delivered (see the full list below) — at least one is required.
- Click Add endpoint.
You can Disable (pause without deleting), re-Enable, or Delete an endpoint at any time from the same page.
Events you can subscribe to
| Event | Fires when |
|---|---|
call.completed |
A call finishes |
call.booked |
A meeting is booked during a call |
call.opted_out |
A contact opts out (asks not to be called again) |
contact.created |
A new contact is added |
campaign.completed |
A calling campaign finishes |
lead.received |
A new lead arrives through a lead webhook (speed-to-lead) |
wallet.low_balance |
Your prepaid balance runs low |
Verifying deliveries (signing secret)
Every webhook endpoint gets its own signing secret (shown on the Developer page, formatted like whsec_…). Each delivery includes an x-callops-signature header — an HMAC-SHA256 hash of the raw request body, signed with your secret — plus an x-callops-event header naming the event type. Have your developer verify it like this:
signature = HMAC_SHA256(your_signing_secret, raw_request_body)
// Compare this to the incoming "x-callops-signature" header.
// Reject the request if they don't match.
Treat the signing secret like a password — anyone with it could forge events to your endpoint.
Debugging deliveries
The Developer page shows a Recent deliveries table with the last 25 attempts across all your endpoints: timestamp, event type, HTTP status (green badge for success, red for failure), and a preview of the response your endpoint returned. Use it to confirm an endpoint is receiving events and responding correctly, or to see why a delivery failed (timeout, wrong status code, connection error, etc.).
Webhooks currently deliver once — there's no automatic retry if your endpoint is briefly down, so build your endpoint to respond quickly and reliably.
API keys
The Developer page also issues API keys (ck_live_…) for CallOps's REST API, separate from webhooks. Use these if you want to pull data (contacts, campaigns, calls, analytics) rather than have it pushed to you. Keys are shown in full only once, at creation — copy it immediately. You can revoke a key at any time.
Notification center
Regardless of which integrations you connect, CallOps keeps its own in-app notification feed — click the bell icon in the top bar. It shows:
- Meetings booked
- Contacts opting out
- Campaigns completing
- New leads received
- Low wallet balance warnings
Unread notifications show a red count badge; click Mark all read to clear it. Notifications with a relevant destination (like a specific call or campaign) are clickable and take you straight there. This feed always works, even if you haven't connected Slack, Teams, or anything else.
Receiving leads from your website (inbound)
The integrations above are for things happening inside CallOps flowing out. If you want your website's contact form or a lead source to send leads into CallOps so an agent can call them automatically, that's the lead webhook feature under Settings → Webhooks. Each lead webhook carries a consent attestation (you confirm the leads arriving through it have the consent you claim), and a qualifying lead is dialed within seconds when the calling window and wallet allow — see the FAQ for how consent levels and the calling window gate those calls.
Related
- API reference — full docs for the REST API and the outbound-webhook signature/envelope your developer will implement against.
- Billing & wallet — what triggers the low-balance notification and webhook event.
- Understanding your results — the data these integrations and API keys read and push.
- FAQ & troubleshooting — inbound lead webhooks, consent, and API-key (401) troubleshooting.