Webhook payloads
All webhooks share the following:
- All webhooks provide data in a JSON format
- All webhooks are sent using the HTTP
POSTmethod - All
hrefproperties link to resource details in GetResponse APIv3 - All IDs can be used with GetResponse APIv3
- Each payload contains the following fields:
type- event typeaccount- information about the accountevent- information about the event
Webhook headers
Each request will have the following headers:
http
Content-Type: application/json
X-Webhook-Type: contact_removed_link
X-Webhook-ID: 9b287712-80b9-4aba-ad5e-df31929dad75
X-Request-ID: cf3c768a-3465-4a6d-9ad9-ddae2705f526Content-Type- Information about content typeapplication/jsonX-Webhook-Type- Type of event. Same astypefield from the payloadX-Webhook-ID- UUID of webhook (unique per event, same for first request and retries)X-Request-ID- UUID of request (unique per request)
Webhook types
Message opened
Get notified every time a contact opens an email
Payload example
json
{
"type": "contact_opened_message",
"contact": {
"contactId": "abc123",
"email": "example@example.com",
"name": "Friend",
"campaign": {
"campaignId": "bcd234",
"name": "my_first_campaign",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
},
"href": "https://api.getresponse.com/v3/contacts/abc123"
},
"message": {
"resourceType": "autoresponders",
"resourceId": "cde345",
"name": "my_first_newsletter",
"subject": "My First Newsletter",
"href": "https://api.getresponse.com/v3/autoresponders/cde345"
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_opened_messagecontact- Contact who opened the messagecampaignId- Campaign (list) IDname- Campaign (list) namehref- Link to campaign (list) detailscontactId- Contact IDemail- Contact email addressname- Name of the contact nullablecampaign- Campaign (List) a contact is inhref- Link to contact details
message- Opened email Newsletter, Autoresponder, or RSS Newsletter)resourceType- Type of the opened message (autoresponders,newsletters,rssNewsletters)resourceId- ID of the opened messagename- Name of the opened messagesubject- Subject of the opened messagehref- Link to message details
account- Information about the accountaccountId- Account ID
event- Information about the eventoccurredAt- Date of opening message in ISO8601/RFC3339 format
Link clicked
Get notified every time a contact clicks a link in an email
Payload example
json
{
"type": "contact_clicked_message_link",
"contact": {
"contactId": "abc123",
"email": "example@example.com",
"name": "Friend",
"campaign": {
"campaignId": "bcd234",
"name": "my_first_campaign",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
},
"href": "https://api.getresponse.com/v3/contacts/abc123"
},
"message": {
"resourceType": "autoresponders",
"resourceId": "cde345",
"name": "my_first_newsletter",
"subject": "My First Newsletter",
"href": "https://api.getresponse.com/v3/autoresponders/cde345"
},
"clickTrack": {
"clickTrackId": "xyz789",
"name": "Some link",
"url": "http://example.com",
"href": "https://api.getresponse.com/v3/click-tracks/xyz789"
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_clicked_message_linkcontact- Contact who clicked on the message linkcontactId- Contact IDemail- Contact email addressname- Name of the contact nullablecampaign- Campaign (List) a contact is incampaignId- Campaign (list) IDname- Campaign (list) namehref- Link to campaign (list) details
href- Link to contact details
message- Message (Newsletter, Autoresponder, or RSS Newsletter) that contains the link clickedresourceType- Type of the message (autoresponders,newsletters,rssNewsletters)resourceId- ID of the messagename- Name of the messagesubject- Subject of the messagehref- Link to the message details
clickTrack- Clicked linkclickTrackId- ID of the linkname- Name of the linkurl- URL of the linkhref- Link to the details of the link clicked
account- Information about the accountaccountId- Account ID
eventoccurredAt- Date the link was clicked in ISO8601/RFC3339 format
SMS link clicked GetResponse MAX Add-on required
Get notified every time a contact clicks a link in a text message (SMS)
Payload example
json
{
"type": "contact_clicked_sms_link",
"contact": {
"contactId": "abc123",
"email": "example@example.com",
"name": "Friend",
"campaign": {
"campaignId": "bcd234",
"name": "my_first_campaign",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
},
"phoneNumber": {
"customFieldId": "exdqz",
"href": "https://api.getresponse.com/v3/custom-fields/exdqz"
},
"href": "https://api.getresponse.com/v3/contacts/abc123"
},
"sms": {
"smsId": "cde345",
"name": "my_first_sms",
"href": "https://api.getresponse.com/v3/sms/cde345"
},
"clickTrack": {
"clickTrackId": "xyz789",
"name": "Some link",
"url": "http://example.com",
"href": "https://api.getresponse.com/v3/click-tracks/xyz789"
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_clicked_sms_linkcontact- Contact who clicked a link in an SMScontactId- Contact IDemail- Contact email addressname- Name of the contact nullablecampaign- Campaign (List) a contact is incampaignId- Campaign (list) IDname- Campaign (list) namehref- Link to campaign (list) details
phoneNumber- Contact phone number custom fieldcustomFieldId- Phone custom field IDhref- Link to phone custom field
href- Link to contact details
sms- SMS (SMS) that contains the link clickedsmsId- ID of the SMSname- Name of the SMShref- Link to the SMS details
clickTrack- Clicked linkclickTrackId- ID of the linkname- Name of the linkurl- URL of the linkhref- Link to the details of the link clicked
account- Information about the accountaccountId- Account ID
eventoccurredAt- Date the link was clicked in ISO8601/RFC3339 format
Contact subscribed
Get notified when a contact is added. This event is NOT triggered by imports.
Payload example
json
{
"type": "contact_added",
"contact": {
"contactId": "abc123",
"email": "example@example.com",
"name": "Friend",
"campaign": {
"campaignId": "bcd234",
"name": "my_first_campaign",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
},
"ip": "1.2.3.4",
"origin": "api",
"href": "https://api.getresponse.com/v3/contacts/abc123"
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_addedcontact- Contact addedcontactId- ID of added contactemail- Email address of added contactname- Name of added contact nullablecampaign- Campaign (List) the contact is added tocampaignId- ID of campaign (list) the contact is added toname- Name of campaign (list) the contact is added tohref- Link to campaign (list) details
ip- Contact's IP, if provided nullableorigin- How contact was addedhref- Link to contact details
account- Information about the account the contact is added toaccountId- Account ID
eventoccurredAt- Date of adding a contact to contact list in ISO8601/RFC3339 format
Contact copied
Get notified when a contact is copied.
Payload example
json
{
"type": "contact_copied",
"contact": {
"contactId": "abc123",
"email": "example@example.com",
"name": null,
"campaign": {
"campaignId": "bcd234",
"campaignName": "my new campaign",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
},
"sourceCampaign": {
"campaignId": "mnb321",
"campaignName": "my source campaign",
"href": "https://api.getresponse.com/v3/campaigns/mnb321"
},
"href": "https://api.getresponse.com/v3/contacts/abc123"
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_copiedcontact- Contact copiedcontactId- New contact IDemail- New contact email addressname- Field deprecated. Presence only for backwards compatibility purpose.campaign- Campaign (List) the contact is copied tocampaignId- ID of the campaign (list) the contact is copied tocampaignName- Name of the campaign (list) the contact is copied tohref- Link to the campaign (list) details
sourceCampaign- Campaign (List) the contact is copied fromcampaignId- ID of the campaign (list) the contact is copied fromcampaignName- Name of the campaign (list) the contact is copied fromhref- Link to the campaign (list) details
href- Link to contact details
account- Information about the account the contact is added toaccountId- Account ID
eventoccurredAt- Date on which the contact was copied in ISO8601/RFC3339 format
Contact moved
Get notified when a contact is moved.
Payload example
json
{
"type": "contact_moved",
"contact": {
"contactId": "abc123",
"email": "example@example.com",
"name": null,
"campaign": {
"campaignId": "bcd234",
"campaignName": "my new campaign name",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
},
"sourceCampaign": {
"campaignId": "mnb321",
"campaignName": "my previous campaign name",
"href": "https://api.getresponse.com/v3/campaigns/mnb321"
},
"href": "https://api.getresponse.com/v3/contacts/abc123"
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_movedcontact- Contact movedcontactId- Contact IDemail- Contact email addressname- Field deprecated. Presence only for backwards compatibility purpose.campaign- Campaign (List) the contact is moved tocampaignId- ID of the campaign (list) the contact is moved tocampaignName- Name of the campaign (list) the contact is moved tohref- Link to the campaign (list) details
sourceCampaign- Campaign (List) the contact is moved fromcampaignId- ID of the campaign (list) the contact is moved fromcampaignName- Name of the campaign (list) the contact is moved fromhref- Link to the campaign (list) details
href- Link to contact details
account- Information about the account the contact is added toaccountId- Account ID
eventoccurredAt- Date on which the contact was moved in ISO8601/RFC3339 format
Contact unsubscribed
Get notified whenever a contact unsubscribes via unsubscribe link
Payload example
json
{
"type": "contact_removed_link",
"contact": {
"contactId": "abc123",
"email": "example@example.com",
"name": null,
"campaign": {
"campaignId": "bcd234",
"name": "my_first_campaign",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
}
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_removed_linkcontact- Unsubscribed contactcontactId- ID of the contactemail- Email address of the contactname- Field deprecated. Presence only for backwards compatibility purpose.campaign- Campaign (List) a contact unsubscribed fromcampaignId- ID of campaign (list) the contact unsubscribed fromname- Name of campaign (list) the contact unsubscribed fromhref- Link to campaign (list) details
account- Information about the accountaccountId- Account ID
eventoccurredAt- Date on which the contact unsubscribed in ISO8601/RFC3339 format
Bounced contact removed
Get notified when a bounced contact is removed from your list.
Payload example
json
{
"type": "contact_removed_bounce",
"contact": {
"contactId": "abc123",
"email": "example@example.com"
},
"campaign": {
"campaignId": "bcd234",
"name": "my_first_campaign",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_removed_bouncecontact- removed contactcontactId- ID of the contactemail- Contact's email address
campaign- Campaign (List) a contact unsubscribed fromcampaignId- ID of campaign (list) the contact unsubscribed fromname- Name of campaign (list) the contact unsubscribed fromhref- Link to campaign (list) details
account- Information about the accountaccountId- Account ID
eventoccurredAt- Date in ISO8601/RFC3339 format when the contact was removed in.
Custom field value changed
Get notified whenever an existing contact has a custom field assigned, unassigned, or updated.
Please remember that the webhook is not triggered by:
- Assigning a custom field when adding a new contact via any method.
- Updating custom fields values via contact imports.
- Updating custom field values via marketing automation.
Payload example
json
{
"type": "contact_custom_field_changed",
"contact": {
"contactId": "abc123",
"href": "https://api.getresponse.com/v3/contacts/abc123"
},
"customField": {
"customFieldId": "cfv123",
"href": "https://api.getresponse.com/v3/custom-fields/cfv123",
"action": "changed",
"addedValues": ["cat", "dog"],
"removedValues": ["rabbit"]
},
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2021-04-27T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_custom_field_changedcontact- contact detailscontactId- ID of the contacthref- Link to contact details
customField- Custom field detailscustomFieldId- Custom field IDhref- Link to custom field detailsaction- Change type. Possible changes are:added|changed|removedaddedValues- Array with new custom field valuesremovedValues- Array with removed custom field values
account- Information about the accountaccountId- Account ID
eventoccurredAt- Date on which the contact unsubscribed in ISO8601/RFC3339 format
Case study
- The multivalue custom field "pets" is assigned to a contact. The initial state of the custom field is: ["rabbit", "hamster"]
- A webhook with the following values will be triggered:
"action": "added", "addedValues": ["rabbit", "hamster"], "removedValues": [] - Your contact has changed the value for the custom field “pets”. The value "rabbit" is removed and two new values are provided: "cat" and "dog".
- A webhook with the following values will be triggered:
"action": "changed", "addedValues": ["cat", "dog"], "removedValues": ["rabbit"] - Your contact has removed the custom field "pets".
- A webhook is triggered without custom field values. It looks as follows:
"action": "removed", "addedValues": [], "removedValues": []
Contact's email changed
Get notified when a contact's email address has changed.
Payload example
json
{
"type": "contact_email_changed",
"contacts": [
{
"contactId": "abc123",
"email": "sample@email.com",
"href": "https://api.getresponse.com/v3/contacts/abc123",
"campaign": {
"campaignId": "bcd234",
"name": "my_first_campaign",
"href": "https://api.getresponse.com/v3/campaigns/bcd234"
}
},
{
"contactId": "def456",
"email": "sample@email.com",
"href": "https://api.getresponse.com/v3/contacts/def456",
"campaign": {
"campaignId": "efg345",
"name": "my_second_campaign",
"href": "https://api.getresponse.com/v3/campaigns/efg345"
}
}
],
"account": {
"accountId": "def456"
},
"event": {
"occurredAt": "2023-07-13T12:56:00+00:00"
}
}Description
type- Webhook event type -contact_email_changedcontacts- List of contacts whose emails were changedcontactId- Contact IDemail- New email addresshref- Go to Contact detailscampaign- Campaign (List)campaignId- Campaign (list) IDname- Campaign (list) namehref- Link to the campaign (list) details
account- Information about the account the contact is added toaccountId- Account ID
eventoccurredAt- Date on which the contact email address was changed in ISO8601/RFC3339 format
Contact import finished
Receive a notification when a contact import is complete, and receive information about the status (success/failure) of the import.
Payload example
json
{
"type": "contacts_import_finished",
"status": "OK",
"account": {
"accountId": "def456"
},
"import": {
"importId": "abc456",
"href": "https://api.getresponse.com/v3/imports/abc456"
}
}Contact rejected
Get notified when a contact is rejected. This event is NOT triggered by imports.
Payload example
json
{
"type": "contact_rejected",
"contact": {
"email": "example@gmail.com"
},
"account": {
"accountId": "def456"
},
"campaign": {
"campaignId": "efg345",
"campaignName": "my_second_campaign",
"href": "https://api.getresponse.com/v3/campaigns/efg345"
},
"event": {
"occurredAt": "2023-07-13T12:56:00+00:00"
},
"reason": "blocked_locally"
}Description
type- Webhook event type -contact_rejectedcontact- Information about the contactemail- Email of rejected contact
account- Information about the accountaccountId- Account ID
campaign- Campaign (List)campaignId- Campaign (list) IDcampaignName- Campaign (list) namehref- Link to the campaign (list) details
eventoccurredAt- Date on which the contact unsubscribed in ISO8601/RFC3339 format
reason- Reasons the contact was rejected
Note
Reasons are dynamic values. They can change at any time.
Reasons:
blocked- The address appears on one or more suppression lists (campaign-specific, global, known/suspected, or previously bounced).blocked_invalid_domain- The domain has been identified as unable to receive email messages.blocked_locally- The address is in on a blocklist created in the account.mismatched_criteria- This error occurs when contacts can’t be processed because they don’t match the selected insert option (“add new” or “update existing”). For example, it appears when you try to add contacts that already exist on the list, update contacts that don’t exist yet.policy_issues- The contact was removed automatically after 32 days if unconfirmed or redundant, or had already unsubscribed from your list.syntax_error- The email address is incomplete or incorrect (e.g., “jan@aol”, “johnaol.com”, or “@aol.com” instead of “jan@aol.com”). A syntax error will also occur if the field is empty, contains unsupported special characters (such as !#$%^&()|,), or exceeds 128 characters.other_reason- We couldn’t determine why the contact couldn’t be processed.
Custom report's file status changed
Get notified when a custom report file is ready for download or in case an error occurs during report generation.
Payload example
json
{
"type":"custom_reports_file_status_changed",
"account":{
"accountId":"9IJAD"
},
"customReport":{
"customReportId":"v",
"href":"https://api.getresponse.com/v3/custom-reports/v",
"file":{
"customReportFileId":"SE",
"status":"ready"
}
},
"event":{
"occurredAt":"2024-08-13T14:34:58+00:00"
}
}Description
type- Webhook event type -custom_reports_file_status_changedaccount- Information about the accountaccountId- Account ID
customReport- Custom reportscustomReportId- Custom report IDhref- Link to the custom report detailsfile- Custom report filecustomReportFileId- Custom report file IDstatus- status of custom report file -[ready, error]
eventoccurredAt- The date (in ISO8601/RFC3339 format) when the status of report file status changed
