Skip to main content

Prerequisites

Before continuing, you should have already completed the following for this connector:
1

Configure the Connector

Enable the connector and set up its connector profile in your project. See Managing Connectors.

Connector Profile

CATS - API Key
2

Link an Account

Connect an account using StackOne Hub or Auth Link.

Link Account

CATS - API Key

How webhooks are set up

StackOne creates and manages the CATS webhook subscriptions automatically when the account is connected, and removes them when it is disconnected — there is nothing to paste into CATS and no URL to copy.

1

Enable the WebHooks integration in CATS

Webhooks are an add-on in CATS. In CATS, click your avatar in the top right, go to Administration, open Integrations and make sure WebHooks is enabled. If the option is unavailable on your plan, contact CATS to upgrade — without it CATS rejects webhook subscriptions and no events are delivered.

2

Enable the events you need

When the connection is established, StackOne generates a unique callback URL for it and creates a single CATS webhook subscription covering every event you enable in StackOne. Only the events you enable are subscribed — CATS does not deliver events you have not subscribed to. The subscription is visible under AdministrationEvents & Webhooks; leave it as it is, because StackOne creates, updates and removes it for you.

Available webhook events

The events below can be enabled for this connection. Only the events you select in StackOne are subscribed in CATS and delivered.

1

Review candidate events

Events related to candidate records.

  • Candidate Created (candidate.created) — Fired when a candidate is created.
  • Candidate Updated (candidate.updated) — Fired when a candidate record is modified.
  • Candidate Deleted (candidate.deleted) — Fired when a candidate is deleted.
2

Review job order events

Events related to job orders.

  • Job Created (job.created) — Fired when a job order is created.
  • Job Updated (job.updated) — Fired when a job order is modified.
  • Job Deleted (job.deleted) — Fired when a job order is deleted.
  • Job Status Changed (job.status_changed) — Fired when a job order’s status changes. The payload carries both the previous and the new status id.
3

Review pipeline events

Events related to pipelines — a candidate attached to a job order.

  • Pipeline Created (pipeline.created) — Fired when a candidate is added to a job order’s pipeline.
  • Pipeline Deleted (pipeline.deleted) — Fired when a candidate is removed from a job order’s pipeline.
  • Pipeline Status Changed (pipeline.status_changed) — Fired when a candidate moves to a different pipeline status, such as from Submitted to Interviewing. The payload carries both the previous and the new status id.
4

Review contact events

Events related to contacts at client companies.

  • Contact Created (contact.created) — Fired when a contact is created.
  • Contact Updated (contact.updated) — Fired when a contact record is modified.
  • Contact Deleted (contact.deleted) — Fired when a contact is deleted.
  • Contact Status Changed (contact.status_changed) — Fired when a contact’s status changes. The payload carries both the previous and the new status id.
5

Review company events

Events related to client companies.

  • Company Created (company.created) — Fired when a company is created.
  • Company Updated (company.updated) — Fired when a company record is modified.
  • Company Deleted (company.deleted) — Fired when a company is deleted.
  • Company Status Changed (company.status_changed) — Fired when a company’s status changes. The payload carries both the previous and the new status id.
6

Review activity events

Events related to logged activities such as calls, emails and meetings.

  • Activity Created (activity.created) — Fired when an activity is logged against a record.
  • Activity Updated (activity.updated) — Fired when a logged activity is modified.
  • Activity Deleted (activity.deleted) — Fired when a logged activity is deleted.
7

Review user events

Events related to the user accounts on your CATS account.

  • User Created (user.created) — Fired when a user is added to the account.
  • User Updated (user.updated) — Fired when a user’s details or access level change.
  • User Deleted (user.deleted) — Fired when a user is removed from the account.

Delivery format

How CATS delivers events to StackOne.

1

Inspect event payloads

CATS sends each event as an HTTP POST with a JSON body containing the event name in an event field (for example candidate.created) and the id of the affected record in a field named after its type (candidate_id, job_id, pipeline_id, and so on). Status change events additionally carry previous_status_id and new_status_id.

2

Read the embedded record

Create, update and status change deliveries embed the full affected record under _embedded, so the record does not have to be fetched separately. Webhooks embed up to 1000 of each related type — far more than the 25 returned by the REST endpoints — so all custom fields arrive with the event.

3

Handle delete events without an embedded record

Delete events are the exception: they carry only the event name, the deleted record’s id, the id of the user who deleted it and the event date. There is no _embedded or _links block, because the record no longer exists. pipeline.deleted additionally reports the candidate_id and job_id the pipeline connected.

4

Plan for one delivery per record on bulk changes

CATS delivers one event per record, including for mass updates made in the CATS UI. Editing a large number of records at once therefore produces a burst of individual events rather than a single batched one.

5

Verify deliveries

CATS signs every delivery. The X-Signature header holds an HMAC-SHA256 digest of the request body concatenated with the X-Request-Id header value, keyed with the signing secret StackOne registers when it creates the subscription. StackOne verifies this signature, and the unique per-connection callback URL identifies the account.

Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.