Outgoing Webhook Event Types

  • Updated

The following tables list generic outgoing webhook event types that accounts can subscribe to and connect to any third-party platform.

You can also find this information in Act-On. Go to Settings > Connectors > Custom Integrations > Outgoing Webhooks > Event Catalog.

automated-program.started

This webhook is triggered when an Automated Program is started.

Field Name Title Data Type Required OBJECT
description Automated Program description string Optional

{

"description": "Program Description Example",

"entryType": "Manual",

"link": "https://example.actonsoftware.com/app/automation/programs/##-####/program-performance",

"name": "Program Name Example",

"programSchedule": "Pending contacts added manually",

"startedTime": 1686597624671,

"waitingCount": 0

}

entrytype Automated Program entry type string Optional
link Automated Program program link string Optional
name Automated Program name string Required
programSchedule Automated Program program schedule string Optional
startedTime The time that the Automated Program started integer Optional
waitingCount Automated Program waiting count number Optional

automated-program.stopped

This webhook is triggered when an Automated Program is stopped.

Field Name Title Data Type Required OBJECT
description Automated Program description string Optional

{

"description": "Program Description Example",

"entryType": "Manual",

"link": "https://example.actonsoftware.com/app/automation/programs/##-####/program-performance",

"name": "Program Name Example",

"programSchedule": "Pending contacts added manually",

"stoppedTime": 1686597624671,

"waitingCount": 0

}

entrytype Automated Program entry type string Optional
link Automated Program program link string Optional
name Automated Program name string Required
programSchedule Automated Program program schedule string Optional
stoppedTime The time that the Automated Program stopped integer Optional
waitingCount Automated Program waiting count number Optional

contact-bounce.hard

When a contact is added to the hard bounce list, it triggers a webhook with this object as its payload.

Field Name Title Data Type Required OBJECT
Diagnostic The SMTP error code for this bounce string Optional

{

"bounceDiagnostic": "User upload",

"categoryReason": "User",

"email": "contact@test.com",

"isHardBounce": true

"msgId": "s-002e-2303",

"timestamp": 1689559644

}

categoryReason Why the message failed to send string Required
email The email from the contact who joined the hard bounce list string Required
isHardBounce A boolean value indicating if the contact joined the hard bounce list. Should always be true for this event. boolean Required
msgId The message ID string Required
timestamp A timestamp of the moment the contact hard bounced integer Required

contact-bounce.soft

When a contact is added to the soft bounce list, it triggers a webhook with this object as its payload.

Field Name Title Data Type Required OBJECT
email The email from the contact who joined the hard bounce list string Required

{

"email": "contact@test.com",

"isHardBounce": true

}

isHardBounce A boolean value indicating if the contact joined the hard bounce list. Should always be true for this event boolean Required

contact-email.marked-as-spam

This webhook is triggered every time a contact marks an email as spam.

Field Name Title Data Type Required OBJECT
email The email from the contact that marked an email as spam string Required

{

"email": "contact@test.com",

"msgId": "s-002e-2303",

"recId": "l-0001:14",

"srcId": "l-0001",

"timestamp": 1689343863

}

msgId

The message ID

string Required
recId The contact ID string Required
srcId The source ID string Required
timestamp

A timestamp of the moment the contact marked an email as spam

integer Required

contact-lead-score.upper-threshold-surpassed

Triggers a webhook the first time a contact lead score exceeds a certain value. That value can be configured on the score sheets page for each score sheet you want to trigger on.

Field Name Title Data Type Required OBJECT

contactReportLink

string 
A link for this contact in the CRM that it belongs to string Optional

{
"contactReportLink": "https://fordcid1.ez-touch.net/acton/ng-ui/contact?recid=l-unified-contacts:1b",
"crmLink": "https://example.actonsoftware.my.salesforce.com/ 003Dn000009Wa1xIAC",
"email": "johndoe@example.com",
"fields": {
"firstName": "John",
"lastName": "Doe"
},
"leadScore": 150,
"scoresheetId": "ss-default"
}

emailstring Contact email string Required
fieldsobject Additional contact fields string Optional
leadscoreinteger Lead score string Required
scoresheetIdstring Score Sheet ID integer Required

The webhook listens for score changes every 5 minutes. Score changes can occur if a new behavior is recorded, a profile field is changed, or score rules are updated. 

This webhook requires activation by technical support prior to use.

contact-opt.global-opt-in

When a contact opts in to all email communication, it triggers a webhook with this object as its payload.

Field Name Title Data Type Required OBJECT
email The email from the contact who opted in string Required

{

"email": "contact@test.com",

"hasOptedOut": false

"timestamp": 1689559644

}

hasOptedOut A boolean value indicating if the contact has opted out. Should always be false for this event boolean Required
timestamp A timestamp of the moment the contact opted in integer Required

contact-opt.global-opt-out

When a contact opts out from all email communication, it triggers a webhook with this object as its payload.

Field Name Title Data Type Required OBJECT
email The email from the contact who opted out string Required

{

"email": "contact@test.com",

"hasOptedOut": true

"timestamp": 1689559644

}

hasOptedOut A boolean value indicating if the contact has opted out. Should always be true for this event boolean Required
timestamp A timestamp of the moment the contact opted out integer Required

contact.added

This webhook is triggered when a contact is added to Act-On Contacts.

Field Name Title Data Type Required OBJECT

contact

An object that contains the standard and custom fields (name, e-mail, etc.) for this contact

object Required

{

"contact": {
"Business City": "Portland",
"Business Country": "USA",
"Company": "Act-On",
"Department": "Executive Team",
"E-mail Address": "johndoe@example.com",
"First Name": "John",
"Job Title": "CEO",
"Last Name": "Doe"
},
"contactReportLink": "https://fordcid1.ez-touch.net/acton/ng-ui/contact?email=johndoe@example.com",
"email": "johndoe@example.com",
"timestamp": 1689343863

}

contactReportLink

A link to the Contact Report which provides a complete view of an individual in Act-On

string Required
email

The email for the contact added to Act-On Contacts

string Required
timestamp

Timestamp with the date and time in UTC identifying when the contact was added

integer Required

contact.updated

This webhook is triggered when a contact is updated in Act-On Contacts.

Field Name Title Data Type Required OBJECT

contact

An object that contains the standard and custom fields (name, e-mail, etc.) for this contact

object Required

{

"contact": {
"Business City": "Portland",
"Business Country": "USA",
"Company": "Act-On",
"Department": "Executive Team",
"E-mail Address": "johndoe@example.com",
"First Name": "John",
"Job Title": "CEO",
"Last Name": "Doe"
},
"contactReportLink": "https://fordcid1.ez-touch.net/acton/ng-ui/contact?email=johndoe@example.com",
"email": "johndoe@example.com",
"timestamp": 1689343863

}

contactReportLink

A link to the Contact Report which provides a complete view of an individual in Act-On

string Required
email

The email for the updated Act-On Contact

string Required
timestamp

Timestamp with the date and time in UTC identifying when the contact was updated

integer Required

crm.connected

This webhook is triggered every time a user connects to a CRM.

Field Name Title Data Type Required OBJECT

crmDisplayName

The name of the CRM the user was connected to

string Required

{

"crmDisplayName": "Salesforce",

"detail": "Successful connection",

"timestamp": 1689343863

}

detail The details of the CRM connection string Required
timestamp

A timestamp of when the CRM connection occurred

integer Required

crm.disconnected

This webhook is triggered every time a user disconnects from a CRM.

Field Name Title Data Type Required OBJECT
crmDisplayName The name of the CRM the user was connected to string Required

{

"crmDisplayName": "Salesforce",

"detail": "Fail connection due to credential",

"timestamp": 1689343863

}

detail The details of the CRM connection string Required
timestamp A timestamp of when the CRM disconnection occurred integer Required

email-message.scheduled

This webhook is triggered every time a message is scheduled.

Field Name Title Data Type Required OBJECT

accountId

The message's Account ID

integer Required

{

"accountId": "4",

"accountName": "Name",

"creatorId": "5",

"creatorName": "Creator's Name",

"messageId": "s-002e-2303",

"numTargetedRecipients": "2",

"previewText": "preview text",

"scheduledTimeZone": "America/Sao_Paulo",

"scheduledTimestamp": "1694004008962",

"schedulingOfEmail": "1694003951450",

"selectedSender": "FirstName LastName|contact@test.com|user",

"subject": "subject",

"title": "Title"

}

accountName The message's Account Name string Required
creatorId The creator ID integer Required
creatorName The creator name string Required
messageId The message ID string Required
numTargetedRecipients The total number of recipients integer Required
previewText The message preview text string Required
scheduledTimeZone The timezone in which the message was scheduled string Required
scheduledTimestamp A timestamp of when the message was scheduled integer Required
schedulingOfEmail A timestamp of when the scheduled message was created string Required
selectedSender Sender's name and email string Required
subject The message subject string Required
title The message title string Required

form.submitted

When a Form is submitted, it triggers a webhook with this object as its payload.

This webhook requires an additional setup. You need to identify the forms that should trigger a webhook event on submission by configuring the Form. See here for details.
Field Name Title Data Type Required OBJECT

browser

The browser from the registration was submitted

string Optional

{

"browser": ,

"campaignSource": ,

"contact": {
"email": "johndoe@example.com",
"firstName": "John",
"lastName": "Doe"
},

"cookieId": "0076d7",

"formId": "e23a97da-3346-4c32-9bc9-15ab0dc9ca8a",

"formName": "Form name",

"referrer": "referrer example",

"submissionTime": 1234567890

}

campaignSource The campaign source of the Form where the registration was submitted string Optional
contact   object Required
cookieId The cookie ID of the form where the registration was submitted string Required
formId The ID of the form where the registration was submitted. string Required
formName The name of the Form where the registration was submitted string Required
referrer The referrer of the Form where the registration was submitted string Optional
submissionTime The submission time when the registration was submitted integer Optional

subscription-category.added

This webhook is triggered every time a contact adds a new subscription category.

Field Name Title Data Type Required OBJECT

checked

If the user added a category

boolean Required

{

"checked": true,

"description": "News about our best offers",

"id": "1",

"name": "Discounts",

"timestamp": 1689343863

}

description The description of the category string Required
id The ID of the category from Act-On string Required
name The name of the category string Required
timestamp A timestamp of when the category was added integer Required

subscription-category.deleted

This webhook is triggered every time a contact deletes a subscription category.

Field Name Title Data Type Required OBJECT

checked

If the user deleted a category

boolean Required

{

"checked": true,

"description": "News about our best offers",

"id": "1",

"name": "Discounts",

"timestamp": 1689343863

}

description The description of the category string Required
id The ID of the category from Act-On string Required
name The name of the category string Required
timestamp A timestamp of when the category was deleted integer Required

subscription-category.opt-in

This webhook is triggered whenever a contact opts in to a subscription category.

Field Name Title Data Type Required OBJECT
categoryChecked Indicates if the contact is opted into the category boolean Required

"categoryChecked": true, "categoryDescription": "News about our best offers", 

"categoryId": "1", "categoryName": "Discounts", 

"email": "contact@test.com", "timestamp": 1689343863

 }

categoryDescription Description of the category string Required
categoryId Unique ID of the category string Required
categoryName The name of the category string Required

email

The email from the contact that opted into the category string Required
timestamp A timestamp of the moment in which the opt-in happened. integer Required

subscription-category.opt-out

This webhook is triggered whenever a contact opts out from a subscription category.

Field Name Title Data Type Required OBJECT
categoryChecked Indicates if the contact is opted into the category boolean Required

"categoryChecked": false, "categoryDescription": "News about our best offers", 

"categoryId": "1", "categoryName": "Discounts", 

"email": "contact@test.com", "timestamp": 1689343863

 }

categoryDescription Description of the category string Required
categoryId Unique ID of the category string Required
categoryName The name of the category string Required

email

The email from the contact that opted out of the category string Required
timestamp A timestamp of the moment in which the opt-out happened. integer Required

subscription-category.updated

This webhook is triggered every time a contact updates a subscription category.

Field Name Title Data Type Required OBJECT
checked If the contact updated a category boolean Required

"checked": true, "description": "News about our best offers", 

"id": "1", "name": "Discounts", 

"timestamp": 1689343863

 }

description Description of the category string Required
id Unique ID of the category string Required
name The name of the category string Required
timestamp A timestamp of the moment in which the opt-out happened. integer Required

Preconfigured Event Types

Act-on provides platform-specific pre-configured events for certain use cases to facilitate the integration setup process with the webhook.

Platform Event Type Object
Slack automated-program.started.slack

{

"text": "The following Automated Program has started.\n\n*Program Name:* Program Name Example \n*Program Description:* Program Description Example \n*Started on:* mm-dd-yyyy \n*People Entering Program:* 0 \n*Program Entry Type:* Manual \n*Schedule:* Pending contacts added manually \n*Link to Program:* https://example.actonsoftware.com/app/automation/programs/##-####/program-performance"

}

Slack automated-program.stopped.slack

{

"text": "The following Automated Program has stopped.\n\n*Program Name:* Program Name Example \n*Program Description:* Program Description Example \n*Stopped on:* mm-dd-yyyy \n*People Entering Program:* 0 \n*Program Entry Type:* Manual \n*Schedule:* Pending contacts added manually \n*Link to Program:* https://example.actonsoftware.com/app/automation/programs/##-####/program-performance"

}

Teams automated-program.started.teams

{

"text": "**Program Name:** Program Name Example \n**Program Description:** Program Description Example \n**Started on:** mm-dd-yyyy \n**People Entering Program:** 0 \n**Program Entry Type:** Manual \n**Schedule:** Pending contacts added manually \n**Link to Program:** https://example.actonsoftware.com/app/automation/programs/##-####/program-performance",

"title": "The following Automated Program has started."

}

Teams automated-program.stopped.teams

{

"text": "**Program Name:** Program Name Example \n**Program Description:** Program Description Example \n**Started on:** mm-dd-yyyy \n**People Entering Program:** 0 \n**Program Entry Type:** Manual \n**Schedule:** Pending contacts added manually \n**Link to Program:** https://example.actonsoftware.com/app/automation/programs/##-####/program-performance",

"title": "The following Automated Program has started."

}

Authentication

Act-On will send a payload with a signature. Customers can validate the signature using the secret key provided for the endpoint and the payload received by generating an HMAC SHA-256 hash. In addition, custom headers can be added to authenticate the webhook based on the destination platform’s requirements. See here how to create and manage an outgoing webhook.

Was this article helpful?

Have more questions? Submit a request