Event Reference
| Event | Description | When it fires |
|---|---|---|
signal.created | A new signal has been ingested into Stairoids | When any source (API, webhook, or integration) delivers a new signal |
signal.scored | A signal’s contribution to the account/contact score has been calculated | After each signal is processed through the scoring engine |
account.score_changed | An account’s overall engagement score has changed | When a new signal or score recalculation updates an account’s aggregate score |
contact.score_changed | A contact’s engagement score has changed | When a new signal or score recalculation updates a contact’s score |
automation.triggered | An outgoing automation has fired | When a configured outgoing automation matches a signal and executes its action |
signal.created
Fired when a new signal is successfully ingested into your workspace, regardless of the source. Use this event to react to raw intent data in real time — for example, routing high-value signals to a Slack channel or logging them to a data warehouse.
signal.created payload fields
signal.created payload fields
| Field | Type | Description |
|---|---|---|
event | string | Always signal.created |
id | string | Unique event delivery ID |
created_at | string | ISO 8601 timestamp of the event |
data.id | string | Unique signal ID |
data.type | string | Signal type, e.g. page_visit, form_submit, email_open |
data.account | object | Account associated with the signal |
data.contact | object | Contact associated with the signal (if resolved) |
data.score | integer | Point value assigned to this individual signal |
data.source | string | Origin of the signal, e.g. website, hubspot, api |
data.properties | object | Freeform metadata attached to the signal |
data.created_at | string | ISO 8601 timestamp of when the signal was received |
signal.scored
Fired after the scoring engine processes a signal and calculates its contribution to the associated account and contact scores. Use this event when you want to act on scored — rather than raw — intent data.
account.score_changed
Fired when the aggregate engagement score for an account changes as a result of a new signal or a periodic score recalculation. The payload includes both the previous and new score so you can calculate the delta and trigger threshold-based logic on your end.
account.score_changed payload fields
account.score_changed payload fields
| Field | Type | Description |
|---|---|---|
data.account | object | The account whose score changed |
data.previous_score | integer | The account’s score immediately before this change |
data.new_score | integer | The account’s score after this change |
data.delta | integer | The difference (new_score - previous_score). Can be negative for score decay events. |
data.triggering_signal_id | string | The signal ID that caused the recalculation, if applicable |
data.scoring_model | string | The scoring model used, e.g. default or a custom model name |
contact.score_changed
Fired when an individual contact’s engagement score changes. The structure mirrors account.score_changed but scoped to a specific contact rather than an account.
automation.triggered
Fired every time an outgoing automation successfully matches a signal and executes its action. The payload includes the full context of the triggering signal, the matched account and contact, and details about which automation fired.
automation.triggered payload fields
automation.triggered payload fields
| Field | Type | Description |
|---|---|---|
data.automation_id | string | The ID of the automation that fired |
data.automation_name | string | The display name of the automation |
data.action_type | string | The integration the action targeted, e.g. hubspot, pipedrive |
data.account | object | The account associated with the triggering signal |
data.contact | object | The contact associated with the triggering signal |
data.signal | object | A summary of the signal that matched the automation trigger |
data.outcome.status | string | success or failed |
data.outcome.external_id | string | The ID of the record created or updated in the destination system |
data.triggered_at | string | ISO 8601 timestamp of when the automation executed |