Reference · Tools

Affinity Trigger

Starts workflow when Affinity CRM events occur (persons, organizations, lists, notes, opportunities, fields, files)

Webhook trigger Sales v1

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

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires Affinity API credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
EventsmultiOptionsYes[]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.created
  • resource — the part of the event before the dot, e.g. person
  • action — the part after the dot, e.g. created
  • entityId — the ID of the entity the event is about, or null when Affinity does not send one
  • body — the entity data Affinity sent for the event (for person.created, fields such as id, first_name, last_name, emails, organization_ids)
  • _rawPayload — the complete, unmodified webhook payload
  • _trigger — always affinity_webhook
  • _timestamp — ISO 8601 timestamp of when the request arrived
  • _webhookEvent — the same value as type

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 on resource / 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.
  • body holds 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 BusyBot

Last updated . Spotted something wrong? Tell us.