Event

trigger.keap_event
TriggerCRM & salesconnection requiredruns in-engine

Registers one Keap REST Hook subscription per event key on publish and starts one run per changed object in each delivery.

Start a run when Keap (Infusionsoft) reports a change to a record.

Connection

Required
Yes — the node will not save without one
Auth type
OAuth 2.0
Providers
Keap
Secret shape
{"client_id", "client_secret", "refresh_token"}
Resolved by
config.connection_id, else node.connection_id
Note
Publishing needs MANTLE_APP_PUBLIC_BASE_URL set to a public https URL — Keap POSTs to it to confirm the subscription while the create call is in flight, and a subscription it cannot confirm is sent nothing. Keap rotates its refresh token on every mint; a connection whose stored token has already been spent must be re-authorised.

Configuration

1 field, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
event_keys
Keap event keys to subscribe to — one REST Hook subscription is created per key and deleted again when the workflow is unpublished or disabled. Keap publishes no fixed catalogue: the list your account accepts is GET /crm/rest/v1/hooks/event_keys, and Keap's own docs name contactGroup.applied and contactGroup.delete among them.
arrayYes—1–25 characters; array of string["contactGroup.applied"]

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "event_keys": [
    "contactGroup.applied"
  ]
}

Output

One shape.

keap event

One changed object out of a Keap delivery. Keap sends the id and not the record, so read it with a keap.* node when you need it.

Extra keys beyond the ones listed can appear.

FieldTypeExample
event_key
The Keap event key that fired, e.g. contactGroup.applied. Branch on it when the node subscribes to more than one.
stringcontactGroup.applied
object_type
The Keap resource the event is about, e.g. contact.
stringcontact
object_id
Id of the changed record, as a string. Keap's delivery carries only the id — read the record with a keap.* node when you need its fields.
string1284
api_url
The REST URL of the changed record, when Keap sent one. Keap documents this as 'may be present', so treat an empty value as normal.
string—
timestamp
When Keap recorded the change. Part of the idempotency key, so a redelivered event joins the run it already started.
string—
batch_size
How many changed objects the delivery this run came from carried. Keap batches up to 1000 of one event type into one POST, and Mantle starts one run per object.
number1
payload
Keap's own object_keys entry — {id, apiUrl, timestamp} — verbatim.
object—
{
  "api_url": "https://api.infusionsoft.com/crm/rest/v1/contacts/1284",
  "batch_size": 1,
  "event_key": "contactGroup.applied",
  "object_id": "1284",
  "object_type": "contact",
  "payload": {
    "apiUrl": "https://api.infusionsoft.com/crm/rest/v1/contacts/1284",
    "id": 1284,
    "timestamp": "2024-05-30T12:00:00.000Z"
  },
  "timestamp": "2024-05-30T12:00:00.000Z"
}

Notes

  • Publishing creates the subscriptions in Keap; unpublishing, disabling or archiving deletes them. A workflow that is off is off at Keap too.
  • Keap signs nothing. This trigger verifies no signature because there is none to verify — the callback URL's unguessable id is the only secret, so treat the workflow as world-writable by anyone who learns that URL.
  • One delivery can start many runs: Keap batches up to 1000 changed objects of one event type into a single POST and Mantle starts one run each.
  • A redelivery cannot start a second run — the key is Keap's own event_key + object id + timestamp, and Keap retries four times over about 36 minutes before retiring the subscription.
  • A delivery carries the changed record's id, not the record. Follow the trigger with a keap.* read when you need its fields.

See Event run in a workflow.

In a technical demo we add the Keap connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.