Reference · Tools
Affinity Trigger
Starts workflow when Affinity CRM events occur (persons, organizations, lists, notes, opportunities, fields, files)
The Affinity Trigger node listens for webhook events from Affinity CRM and starts a workflow the moment something changes — a new person added, an opportunity updated, a note created. One common use: automatically enrich or log records in another system whenever an organization is created in Affinity. It covers 25 event types across 9 resource categories, all routed through a single node.
- Node type
- Webhook trigger
- Parameters
- 1
- Outputs
- Output
- Credentials
- Affinity API
Affinity Trigger
Triggers on Affinity CRM events like person, organization, or opportunity changes.
Overview
The Affinity Trigger node listens for webhook events from Affinity CRM. When configured events occur (such as creating or updating persons, organizations, opportunities, lists, list entries, notes, fields, or files), Affinity sends an HTTP POST to this webhook. The node receives the event payload, identifies the resource type and ID, and outputs the event data for downstream processing. Supports 25 distinct event types across 9 resource categories.
Category: Sales
Tool Name: affinity_trigger
Version: 1
Appearance: Icon: lucide-Network | Color: #5948a2
Node Type
Trigger — webhook (receives incoming HTTP callbacks)
Input / Output
| Direction | Port(s) |
|---|---|
| Input | None (trigger node) |
| Output | Output |
Credentials
This tool requires Affinity API credentials. See the Credentials Guide for setup instructions.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Events | multiOptions | Yes | [] | Which Affinity events to listen for. Select one or more event types that will trigger this workflow. |
Options: field_value.created, field_value.deleted, field_value.updated, field.created, field.deleted, field.updated, file.created, file.deleted, list_entry.created, list_entry.deleted, list.created, list.deleted, list.updated, note.created, note.deleted, note.updated, opportunity.created, opportunity.deleted, opportunity.updated, organization.created, organization.deleted, organization.updated, person.created, person.deleted, person.updated |
Output Data
Each delivered event produces one output item:
type— the Affinity event type, e.g.person.createdresource— the part of the event before the dot, e.g.personaction— the part after the dot, e.g.createdentityId— the ID of the entity the event is about, ornullwhen Affinity does not send onebody— the entity data Affinity sent for the event (forperson.created, fields such asid,first_name,last_name,emails,organization_ids)_rawPayload— the complete, unmodified webhook payload_trigger— alwaysaffinity_webhook_timestamp— ISO 8601 timestamp of when the request arrived_webhookEvent— the same value astype
Affinity’s sample.webhook test ping is acknowledged but does not start the workflow.
Reference the payload downstream by expression, e.g. {{ $json.body.first_name }} or {{ $json.entityId }}.
Usage Examples
- Trigger workflow when a new person is created in Affinity
- React to organization updates in Affinity CRM
- Start automation when an opportunity is created or updated
- Listen for new list entries added in Affinity
- Detect when notes are created or deleted in Affinity
Example Configuration
Watch for new and updated people:
{
"type": "affinity_trigger",
"parameters": {
"events": ["person.created", "person.updated"]
}
}
Track the full opportunity lifecycle:
{
"type": "affinity_trigger",
"parameters": {
"events": ["opportunity.created", "opportunity.updated", "opportunity.deleted"]
}
}
React to pipeline movement and notes:
{
"type": "affinity_trigger",
"parameters": {
"events": ["list_entry.created", "list_entry.deleted", "note.created"]
}
}
Trigger Behavior
- Activation: When the workflow is activated, a webhook endpoint is registered with the service.
- Deactivation: The webhook is automatically unregistered when the workflow is deactivated.
- Payload: The incoming webhook payload is parsed and output as workflow items.
- Verification: Supports signature verification where applicable.
Tips
Receives webhook events from Affinity CRM. Configure which events to listen for (e.g., person.created, organization.updated, opportunity.deleted). When the event fires, the trigger outputs the event type and associated entity data.
- One node can subscribe to several event types at once. Branch on
{{ $json.type }}(or onresource/action) with a Switch node when different events need different handling. - Affinity rejects webhook URLs that contain spaces, so keep the workflow’s webhook path free of them.
bodyholds what Affinity chose to send with the event. If you need the complete current record, follow the trigger with an HTTP Request node that fetches it by{{ $json.entityId }}.
Frequently asked questions
What credentials does this node require?
You need an Affinity API credential (credential type: affinityApi) configured in BusyBot. This is used to register the webhook URL with Affinity so it knows where to send event payloads. Without it, the trigger cannot subscribe to any events.
Can one node listen for multiple event types at the same time?
Yes. A single Affinity Trigger node can subscribe to several event types simultaneously — for example, person.created and person.updated together. If those events need to follow different logic downstream, add a Switch node and branch on {{ $json.type }} to route each event type to the appropriate path.
Does the event payload include the full current state of the record?
Not necessarily. The body field contains what Affinity chose to include with the event, which may be a partial payload. If you need the complete, up-to-date record, follow the trigger with an HTTP Request node that fetches it from the Affinity API using {{ $json.entityId }} from the trigger output.
Are there any restrictions on the webhook URL this node generates?
Yes — Affinity rejects webhook URLs that contain spaces. When naming or configuring the webhook path for this trigger in BusyBot, make sure there are no spaces in it or the registration will fail and no events will be delivered.
Which resource types and events does this node support?
The node covers 9 resource categories: persons, organizations, lists, list entries, notes, opportunities, fields, and files — with 25 distinct event types in total across those categories. This includes create, update, and delete events depending on the resource.
Build with the Affinity Trigger node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Affinity API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.