Available Loops triggers for automating workflows
Loops provides 8 triggers for automating workflows based on events.
Trigger workflow when a Loops campaign email is sent
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Required to verify the webhook signature from Loops. |
| Parameter | Type | Description |
|---|
eventName | string | Event type (e.g., campaign.email.sent, loop.email.sent, transactional.email.sent) |
eventTime | number | Unix timestamp (seconds) when the event occurred |
webhookSchemaVersion | string | Webhook schema version (e.g., "1.0.0") |
campaignId | string | Campaign ID, present on campaign.email.sent |
campaignName | string | Campaign name, present on campaign.email.sent |
loopId | string | Loop (workflow) ID, present on loop.email.sent |
loopName | string | Loop (workflow) name, present on loop.email.sent |
transactionalId | string | Transactional email ID, present on transactional.email.sent |
email | json | Email object from the payload (id, emailMessageId, subject) |
emailId | string | Unique email ID (payload email.id) |
emailMessageId | string | Sent email message ID (payload email.emailMessageId) |
subject | string | Email subject line (payload email.subject) |
contactIdentity | json | Contact identity object from the payload (id, email, userId) |
contactId | string | Contact ID (payload contactIdentity.id) |
contactEmail | string | Contact email address (payload contactIdentity.email) |
userId | string | Contact user ID, when set (payload contactIdentity.userId) |
mailingLists | json | Mailing lists the send targeted (id, name, description, isPublic); present on campaign and loop sends |
Trigger workflow when a link in a Loops email is clicked
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Required to verify the webhook signature from Loops. |
| Parameter | Type | Description |
|---|
eventName | string | Event type (e.g., email.delivered, email.opened, email.clicked) |
eventTime | number | Unix timestamp (seconds) when the event occurred |
webhookSchemaVersion | string | Webhook schema version (e.g., "1.0.0") |
sourceType | string | Source of the email: "campaign", "loop", or "transactional" |
campaignId | string | Campaign ID, present when sourceType is "campaign" |
loopId | string | Loop (workflow) ID, present when sourceType is "loop" |
transactionalId | string | Transactional email ID, present when sourceType is "transactional" |
email | json | Email object from the payload (id, emailMessageId, subject) |
emailId | string | Unique email ID (payload email.id) |
emailMessageId | string | Sent email message ID (payload email.emailMessageId) |
subject | string | Email subject line (payload email.subject) |
contactIdentity | json | Contact identity object from the payload (id, email, userId) |
contactId | string | Contact ID (payload contactIdentity.id) |
contactEmail | string | Contact email address (payload contactIdentity.email) |
userId | string | Contact user ID, when set (payload contactIdentity.userId) |
Trigger workflow when a Loops email is delivered
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Required to verify the webhook signature from Loops. |
| Parameter | Type | Description |
|---|
eventName | string | Event type (e.g., email.delivered, email.opened, email.clicked) |
eventTime | number | Unix timestamp (seconds) when the event occurred |
webhookSchemaVersion | string | Webhook schema version (e.g., "1.0.0") |
sourceType | string | Source of the email: "campaign", "loop", or "transactional" |
campaignId | string | Campaign ID, present when sourceType is "campaign" |
loopId | string | Loop (workflow) ID, present when sourceType is "loop" |
transactionalId | string | Transactional email ID, present when sourceType is "transactional" |
email | json | Email object from the payload (id, emailMessageId, subject) |
emailId | string | Unique email ID (payload email.id) |
emailMessageId | string | Sent email message ID (payload email.emailMessageId) |
subject | string | Email subject line (payload email.subject) |
contactIdentity | json | Contact identity object from the payload (id, email, userId) |
contactId | string | Contact ID (payload contactIdentity.id) |
contactEmail | string | Contact email address (payload contactIdentity.email) |
userId | string | Contact user ID, when set (payload contactIdentity.userId) |
Trigger workflow when a Loops email hard bounces
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Required to verify the webhook signature from Loops. |
| Parameter | Type | Description |
|---|
eventName | string | Event type (e.g., email.delivered, email.opened, email.clicked) |
eventTime | number | Unix timestamp (seconds) when the event occurred |
webhookSchemaVersion | string | Webhook schema version (e.g., "1.0.0") |
sourceType | string | Source of the email: "campaign", "loop", or "transactional" |
campaignId | string | Campaign ID, present when sourceType is "campaign" |
loopId | string | Loop (workflow) ID, present when sourceType is "loop" |
transactionalId | string | Transactional email ID, present when sourceType is "transactional" |
email | json | Email object from the payload (id, emailMessageId, subject) |
emailId | string | Unique email ID (payload email.id) |
emailMessageId | string | Sent email message ID (payload email.emailMessageId) |
subject | string | Email subject line (payload email.subject) |
contactIdentity | json | Contact identity object from the payload (id, email, userId) |
contactId | string | Contact ID (payload contactIdentity.id) |
contactEmail | string | Contact email address (payload contactIdentity.email) |
userId | string | Contact user ID, when set (payload contactIdentity.userId) |
Trigger workflow when a Loops email is opened
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Required to verify the webhook signature from Loops. |
| Parameter | Type | Description |
|---|
eventName | string | Event type (e.g., email.delivered, email.opened, email.clicked) |
eventTime | number | Unix timestamp (seconds) when the event occurred |
webhookSchemaVersion | string | Webhook schema version (e.g., "1.0.0") |
sourceType | string | Source of the email: "campaign", "loop", or "transactional" |
campaignId | string | Campaign ID, present when sourceType is "campaign" |
loopId | string | Loop (workflow) ID, present when sourceType is "loop" |
transactionalId | string | Transactional email ID, present when sourceType is "transactional" |
email | json | Email object from the payload (id, emailMessageId, subject) |
emailId | string | Unique email ID (payload email.id) |
emailMessageId | string | Sent email message ID (payload email.emailMessageId) |
subject | string | Email subject line (payload email.subject) |
contactIdentity | json | Contact identity object from the payload (id, email, userId) |
contactId | string | Contact ID (payload contactIdentity.id) |
contactEmail | string | Contact email address (payload contactIdentity.email) |
userId | string | Contact user ID, when set (payload contactIdentity.userId) |
Trigger workflow when a Loops email soft bounces
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Required to verify the webhook signature from Loops. |
| Parameter | Type | Description |
|---|
eventName | string | Event type (e.g., email.delivered, email.opened, email.clicked) |
eventTime | number | Unix timestamp (seconds) when the event occurred |
webhookSchemaVersion | string | Webhook schema version (e.g., "1.0.0") |
sourceType | string | Source of the email: "campaign", "loop", or "transactional" |
campaignId | string | Campaign ID, present when sourceType is "campaign" |
loopId | string | Loop (workflow) ID, present when sourceType is "loop" |
transactionalId | string | Transactional email ID, present when sourceType is "transactional" |
email | json | Email object from the payload (id, emailMessageId, subject) |
emailId | string | Unique email ID (payload email.id) |
emailMessageId | string | Sent email message ID (payload email.emailMessageId) |
subject | string | Email subject line (payload email.subject) |
contactIdentity | json | Contact identity object from the payload (id, email, userId) |
contactId | string | Contact ID (payload contactIdentity.id) |
contactEmail | string | Contact email address (payload contactIdentity.email) |
userId | string | Contact user ID, when set (payload contactIdentity.userId) |
Trigger workflow when a Loops loop email is sent
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Required to verify the webhook signature from Loops. |
| Parameter | Type | Description |
|---|
eventName | string | Event type (e.g., campaign.email.sent, loop.email.sent, transactional.email.sent) |
eventTime | number | Unix timestamp (seconds) when the event occurred |
webhookSchemaVersion | string | Webhook schema version (e.g., "1.0.0") |
campaignId | string | Campaign ID, present on campaign.email.sent |
campaignName | string | Campaign name, present on campaign.email.sent |
loopId | string | Loop (workflow) ID, present on loop.email.sent |
loopName | string | Loop (workflow) name, present on loop.email.sent |
transactionalId | string | Transactional email ID, present on transactional.email.sent |
email | json | Email object from the payload (id, emailMessageId, subject) |
emailId | string | Unique email ID (payload email.id) |
emailMessageId | string | Sent email message ID (payload email.emailMessageId) |
subject | string | Email subject line (payload email.subject) |
contactIdentity | json | Contact identity object from the payload (id, email, userId) |
contactId | string | Contact ID (payload contactIdentity.id) |
contactEmail | string | Contact email address (payload contactIdentity.email) |
userId | string | Contact user ID, when set (payload contactIdentity.userId) |
mailingLists | json | Mailing lists the send targeted (id, name, description, isPublic); present on campaign and loop sends |
Trigger workflow when a Loops transactional email is sent
| Parameter | Type | Required | Description |
|---|
signingSecret | string | Yes | Required to verify the webhook signature from Loops. |
| Parameter | Type | Description |
|---|
eventName | string | Event type (e.g., campaign.email.sent, loop.email.sent, transactional.email.sent) |
eventTime | number | Unix timestamp (seconds) when the event occurred |
webhookSchemaVersion | string | Webhook schema version (e.g., "1.0.0") |
campaignId | string | Campaign ID, present on campaign.email.sent |
campaignName | string | Campaign name, present on campaign.email.sent |
loopId | string | Loop (workflow) ID, present on loop.email.sent |
loopName | string | Loop (workflow) name, present on loop.email.sent |
transactionalId | string | Transactional email ID, present on transactional.email.sent |
email | json | Email object from the payload (id, emailMessageId, subject) |
emailId | string | Unique email ID (payload email.id) |
emailMessageId | string | Sent email message ID (payload email.emailMessageId) |
subject | string | Email subject line (payload email.subject) |
contactIdentity | json | Contact identity object from the payload (id, email, userId) |
contactId | string | Contact ID (payload contactIdentity.id) |
contactEmail | string | Contact email address (payload contactIdentity.email) |
userId | string | Contact user ID, when set (payload contactIdentity.userId) |
mailingLists | json | Mailing lists the send targeted (id, name, description, isPublic); present on campaign and loop sends |