Event

trigger.helpscout_event
TriggerBusiness appsconnection requiredruns in-engine

Registers a Mailbox API webhook in the tenant's Help Scout account on publish and starts one run per delivery, verified against Help Scout's base64 HMAC-SHA1 signature.

Start a run when Help Scout raises an event (conversation created, reply added, customer updated…).

Connection

Required
Yes — the node will not save without one
Auth type
OAuth 2.0
Providers
Help Scout
Secret shape
{"client_id", "client_secret", "refresh_token"}
Resolved by
config.connection_id, else node.connection_id
Note
The app needs permission to manage webhooks; a credential that can read conversations can still fail to publish. Publishing also needs MANTLE_APP_PUBLIC_BASE_URL set to an https URL Help Scout can reach.

Configuration

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

FieldTypeRequiredDefaultConstraintsExample
events
Which Help Scout events to subscribe to. One webhook carries all of them, so adding an event does not create a second subscription — but every one of them starts a run, so branch on `event` downstream.
arrayNo["convo.created"]1–27 characters; array of string—
mailbox_ids
Restrict the webhook to these inboxes, by their numeric ids. Leave empty for every inbox. Note that customer.created is not filterable by inbox and fires for every customer however this is set.
arrayNo—array of string—
payload_version
Which payload shape Help Scout delivers. V3 is current and keeps the system_user type on conversations; V2 is the deprecated older shape.
stringNoV3one of "V2", "V3"—

Example configuration

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

{
  "events": [
    "convo.created"
  ],
  "payload_version": "V3"
}

Output

One shape.

helpscout event

The flattened event. `payload` is a Conversation, Customer, Rating, Tag or Organization depending on the event, so the shape is open below the declared fields.

Extra keys beyond the ones listed can appear.

FieldTypeExample
event
The Help Scout event name from X-HelpScout-Event, e.g. convo.created. Branch on this when the trigger subscribes to more than one.
stringconvo.created
id
Id of the resource the event is about — the conversation, customer, tag or organization. A string, so a large id survives a JSON round trip. It is the only field every Help Scout event carries: a *.deleted event sends this and nothing else.
string291938
number
The conversation number shown in the Help Scout UI, which with the id builds the link secure.helpscout.net/conversation/<id>/<number>/. Empty on every event that is not about a conversation.
string349
subject
The conversation's subject line. Empty on customer, tag, organization and rating events.
stringI need help!
status
The conversation's status: active, pending, closed or spam. Empty on events that are not about a conversation.
stringactive
mailbox_id
The inbox the conversation belongs to, lifted out of mailbox.id. Useful for branching when the webhook covers several inboxes.
string1234
created_at
When Help Scout created the resource, ISO-8601 UTC. This is the resource's own timestamp, not when the delivery arrived.
string2026-09-10T12:34:12Z
payload
Help Scout's own body, verbatim — a v2 Conversation for convo.* events, a v2 Customer for customer.*, a Rating, Tag or Organization for the rest, and just {id} for any *.deleted event.
object—
{
  "created_at": "2026-09-10T12:34:12Z",
  "event": "convo.created",
  "id": "291938",
  "mailbox_id": "1234",
  "number": "349",
  "payload": {
    "createdAt": "2026-09-10T12:34:12Z",
    "customer": {
      "email": "vbear@mywork.com",
      "id": 29418,
      "type": "customer"
    },
    "id": 291938,
    "mailbox": {
      "id": 1234,
      "name": "Support"
    },
    "number": 349,
    "preview": "Hello, I tried to download the file off your site...",
    "status": "active",
    "subject": "I need help!",
    "tags": [
      "billing"
    ],
    "type": "email"
  },
  "status": "active",
  "subject": "I need help!"
}

Notes

  • Publishing creates the webhook in Help Scout; unpublishing, disabling or archiving deletes it, so a workflow that is off is off at the vendor too.
  • Every delivery is verified against X-HelpScout-Signature — base64 HMAC-SHA1 of the raw body — before any run starts; an unsigned or mis-signed POST is refused with 401.
  • Help Scout retries a failed delivery up to 10 times and then discards it, and switches a webhook off once 10 events have been discarded. Publishing again re-registers it.
  • One run per delivery: a retry repeats the same body and cannot start a second run.
  • A *.deleted event (conversation, customer, tag, organization) carries only the id — there is no resource left to send.

See Event run in a workflow.

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