About Campaign API

With the Campaign API you can manage and publish email marketing campaigns that have already been created by a Wix user.

With the Campaign API you can:

  • Retrieve statistics and recipients of a campaign.
  • Retrieve information about the campaign.
  • Publish a campaign and send it out to predefined contacts.
  • Send a test email.
  • Reschedule a campaign to send it a different time.
  • Reuse an existing campaign so that a Wix user doesn't have to rebuild it from scratch.

Creating a campaign

To create a campaign, a Wix user must either design a template from scratch or use one of the pre-made templates available in the Wix dashboard. The API does not support campaign creation.

After the campaign is created, your app can send a test email to preview how it will appear in an inbox. We strongly recommend you calling the Send Test method only a few times in a row. There's a rate limit to prevent the abusing of the method.

Publishing a campaign

To publish a campaign, you need to set up sender details. You can publish the campaign from the default sender only. Therefore, whenever you want to publish a different campaign, the appropriate sender must be set as the default. To determine which email address will be used as the "From" address, call Identify Sender Address. Campaigns can only be sent to Wix site contacts.

It's possible to schedule a campaign when publishing it. You can schedule the campaign no less than 30 minutes until the sending time. A Wix user needs to upgrade the plan to schedule the campaign.

When a campaign is published, you'll also receive a URL for the campaign's landing page, which can be shared on social media.

A campaign can also be published without sending emails. In this case, only the campaign landing page URL will be provided.

A Wix user can be blocked from using Wix Email Marketing if they don't comply with the Wix Email Marketing Terms of Use.

Before you begin

Use cases

Terminology

  • Campaign: A marketing message designed to be distributed to an audience with email.
  • Template: A predefined structure for creating campaigns. Templates include placeholders that can be replaced with specific values to customize the content.
  • Audience: The group of recipients targeted by a campaign.
  • Campaign scheduling: The process of setting a specific date and time for when a campaign will be sent. Requires at least 30 minutes' notice before the scheduled send time.
  • Label: A tag that allows Wix users to organize and group contacts.
Did this help?

Sample Flows and Use Cases

This article shares possible use cases your app could support, as well as example flows. You're certainly not limited to these use cases, but it can be a helpful jumping off point as you plan your app's implementation.

A/B Testing for Subject Lines and Call-to-Action (CTA) Buttons

Your app can help a Wix User run an A/B test on the subject of their new email campaign. For example, a marketing company wants to test different subject lines and CTA buttons to determine which performs better in terms of open rates and conversions. They use a robust, multi-phase A/B testing approach to fine-tune the effectiveness of their campaigns.

Note: This flow assumes you have already created and published an email marketing campaign with a couple variations of the subject line and CTA buttons.

  1. Call List Campaigns to retrieve the campaign IDs for both campaigns. Save the values for later use.
  2. Call List Statistics and pass the campaign IDs for each campaign. Track the open rates and click-through rates for each campaign variation.
  3. Based on the results from the A/B tests, call List Recipients by the CLICKED activity.
  4. Call Label Contact to label the best-performing recipients. Save these contacts for later use.
  5. Adjust the campaign content based on the most successful subject lines and CTAs. If certain combinations perform better, prioritize those for the next phase of the campaign.
  6. Call Publish Campaign to send the refined campaign to the selected audience.
  7. After the campaign goes live, continuously monitor results by calling List Statistics to evaluate whether the refined versions outperform the initial variations.
Did this help?

Campaign Object


Properties
campaignIdstringformat GUID

Campaign ID.


titlestring

Marketing campaign title. If you don't provide the value, the title automatically gets the value of an email subject.


firstImageUrlstringformat WEB_URL

URL of the first image after the logo.


snapshotImageUrlstringdeprecated - use firstImageUrl insteadformat WEB_URL

Landing page snapshot URL.
This field is deprecated and snapshot images are no longer supported. Instead, use the firstImageUrl field. The value of this field will soon become the same as the value of the firstImageUrl field.


editorTypestring

Editor type.


statusstring

Campaign status.


visibilityStatusstring

Campaign visibility status.


distributionStatusstring

Campaign distribution status.


publishingDataPublishingData

Publishing data. The field is returned empty if the campaign isn't published.


dateCreatedstringformat date-time

Date and time when the campaign was created.


dateUpdatedstringformat date-time

Date and time when the campaign was updated.


emailSubjectstringdeprecatedmaxLength 1000

Email subject of the campaign (initially copied from the template). TODO: Deprecated (moved to "GetComposerResponse").

Campaign
JSON
{ "campaignId": "c9b491f8-bad0-4d0d-8a1c-c90055d31553", "title": "Email subject", "firstImageUrl": "//static.wixstatic.com/media/eceb8e_e1f32b0d497447a8898e7abcf01d7d87~mv2_d_5600_3733_s_4_2.jpg", "editorType": "WEB", "status": "ACTIVE", "visibilityStatus": "PUBLISHED", "distributionStatus": "DISTRIBUTED", "publishingData": { "landingPageUrl": "https://www.example.com/so/SHORTCODE", "statistics": { "landingPage": {}, "emailCampaign": { "delivered": 2, "opened": 2, "clicked": 2 }, "total": { "mailsSent": 2, "opened": 10, "clicked": 8 } }, "datePublished": "2020-02-14T14:28:54Z" }, "dateCreated": "2020-02-13T11:18:30Z", "dateUpdated": "2020-02-14T14:28:19.680596102Z" }
Did this help?



GET

List Statistics


Retrieves a list of statistics for up to 100 selected campaigns.

For each campaign, you receive the total activity count for the campaign's landing page and email. For example, the total amount of times the landing page was opened, or the total amount of email recipients that clicked a link in an email.

Call List Campaigns to retrieve additional information for your campaigns. Call List Recipients to retrieve a list of recipients and their activities related to a selected campaign.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/email-marketing/v1/campaigns/statistics

Query Params
campaignIdsArray <string>Required

IDs of the campaigns to retrieve (max 100 campaigns).

Response Object
statisticsArray <CampaignStatisticsContainer>

List of statistics.

List Statistics for more than 1 campaign
Request
cURL
curl -X GET 'https://www.wixapis.com/email-marketing/v1/campaigns/statistics?campaignIds=5274f9f6-7031-40d6-972a-b3212ed53f58&campaignIds=8a7f8211-99e4-4116-9d41-da2d11c1e161' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "statistics": [ { "campaignId": "5274f9f6-7031-40d6-972a-b3212ed53f58", "landingPage": { "opened": 0, "clicked": 0 }, "email": { "delivered": 6, "opened": 2, "clicked": 2, "bounced": 0, "complained": 0, "notSent": 0 } }, { "campaignId": "8a7f8211-99e4-4116-9d41-da2d11c1e161", "landingPage": { "opened": 1, "clicked": 0 }, "email": { "delivered": 6, "opened": 6, "clicked": 0, "bounced": 0, "complained": 0, "notSent": 0 } } ] }
Did this help?

GET

List Recipients


Retrieves a list of recipients for a selected campaign based on a specific recipient activity.

Pages are returned with a maximum of 1,000 recipients per page and defaults to 40 recipients per page.

Call List Statistics to retrieve a list of activity for selected campaigns. Call List Campaigns to retrieve additional information for your campaigns.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}/statistics/recipients

Path Params
campaignIdstringRequired

Campaign ID.

Query Params
activitystringRequired

Email activity to filter.


paging.limitintegerminimum 0maximum 1000format int32

Number of items to load.


paging.cursorstring

Pointer to the next or previous page in the list of results.

You can get the relevant cursor token from the pagingMetadata object in the previous call's response. Not relevant for the first request.

Response Object
recipientsArray <CampaignRecipientDetails>

List of recipients.


pagingMetadataPagingMetadata

Details on the paged set of returned results.

List Recipients
Request
cURL
curl -X GET 'https://www.wixapis.com/email-marketing/v1/campaigns/8a7f8211-99e4-4116-9d41-da2d11c1e261/statistics/recipients?activity=DELIVERED' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "recipients": [ { "contactId": "7af98416-1939-4239-91fa-8ce9f17cc3f7", "lastActivityDate": "2022-05-13T11:17:45Z" }, { "contactId": "8cef2efc-fe2f-4a30-8136-9d59b901d04c", "lastActivityDate": "2022-05-13T11:17:45Z" } ], "pagingMetadata": { "count": 2 } }
Did this help?

GET

Get Campaign


Retrieves information about an email campaign.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}

Path Params
campaignIdstringRequired

Campaign ID.

Query Params
optionIncludeStatisticsboolean

Whether a returned campaign object should include publishingData.statistics.

Default: false.

Response Object
campaignCampaign

Campaign information.

Get Campaign
Request
cURL
curl -X GET 'https://www.wixapis.com/email-marketing/v1/campaigns/98b5a0b3-549b-4e58-b933-a8bd40923a14' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "campaign": { "campaignId": "98b5a0b3-549b-4e58-b933-a8bd40923a14", "title": "Yoga with puppies", "firstImageUrl": "//static.wixstatic.com/media/eceb8e_f1f549829402430e8e6408182cb1453c~mv2_d_3681_1488_s_2.jpg", "editorType": "WEB", "status": "ACTIVE", "visibilityStatus": "PUBLISHED", "distributionStatus": "DISTRIBUTED", "publishingData": { "landingPageUrl": "https://shoutout.wix.com/so/d8NCkRGvE", "datePublished": "2020-07-08T12:37:17Z" }, "dateCreated": "2020-07-08T12:36:05Z", "dateUpdated": "2020-07-08T12:36:29.801250634Z" } }
Did this help?

DELETE

Delete Campaign


Permanently deletes a campaign.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
DELETE
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}

Path Params
campaignIdstringRequired

Campaign ID.

Response Object
Returns an empty object.
Delete Campaign
Request
cURL
curl -X DELETE 'https://www.wixapis.com/email-marketing/v1/campaigns/98b5a0b3-549b-4e58-b933-a8bd40923a14' \ -H 'Authorization: <AUTH>'
Response
JSON
{}
Event TriggersThis method triggers the following events:
Did this help?

GET

List Campaigns


Returns a list of email campaigns.

By default sorts by the dateUpdated field in the DESC order.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/email-marketing/v1/campaigns

Query Params
paging.limitintegerminimum 0format int32

Number of items to load.


paging.offsetintegerminimum 0format int32

Number of items to skip in the current sort order.


optionIncludeStatisticsboolean

Whether to include publishingData.statistics in the returned campaign object.

Default: false.


statusesArray <string>

Campaign status.


visibilityStatusesArray <string>

Visibility status.

Response Object
pagingPaging

Paging parameters.


campaignsArray <Campaign>

List of campaigns.

List Campaigns
Request
cURL
curl -X GET 'https://www.wixapis.com/email-marketing/v1/campaigns?option_include_statistics=true&visibility_statuses=DRAFT&statuses=ACTIVE' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "campaigns": [ { "campaignId": "688565b5-d890-4984-8167-1987c1999a1a", "title": "Yoga with puppies", "firstImageUrl": "https:////static.wixstatic.com/media/eceb8e_baccf99d697447468400ca1aba4c4a60~mv2.jpg", "editorType": "WEB", "status": "ACTIVE", "visibilityStatus": "DRAFT", "distributionStatus": "NOT_STARTED", "dateCreated": "2020-04-23T11:29:22Z", "dateUpdated": "2020-05-14T10:08:33.291462479Z" } ] }
Did this help?

POST

Publish Campaign


Publishes and sends a specified campaign.

If the email_distribution_options object isn't passed in the request, the campaign is only published as a landing page.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}/publish

Path Params
campaignIdstringRequired

Campaign ID

Body Params
emailDistributionOptionsEmailDistributionOptions

Email distribution options. Pass this object in the request if you need to distribute your marketing campaign with emails.

Response Object
publishingDataPublishingData

Publishing info.

Publish Campaign
Request
cURL
curl -X POST 'https://www.wixapis.com/email-marketing/v1/campaigns/98b5a0b3-549b-4e58-b933-a8bd40923a14/publish' \ -H 'Content-Type: application/json' \ -H 'Authorization: <AUTH>' -d '{ "emailDistributionOptions": { "emailSubject": "Yoga with puppies", "labelIds": ["contacts-all"] } }'
Response
JSON
{ "publishingData": { "landingPageUrl": "https://shoutout.wix.com/so/{code}", "datePublished": "2022-09-22T12:58:37.407664Z" } }
Errors
428Failed Precondition

There is 1 error with this status code:

See the entire list and learn more about Wix errors.

Did this help?

POST

Send Test


Sends a test email. Use this method to preview your email campaign.

We strongly recommend you calling this method only a few times in a row, as it has a rate limit.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}/test

Path Params
campaignIdstringRequired

Campaign ID.

Body Params
emailSubjectstringmaxLength 1000

Email subject.


toEmailAddressstringRequiredformat EMAIL

Recipient email address.

Response Object
Returns an empty object.
Send Test
Request
cURL
curl -X POST 'https://www.wixapis.com/email-marketing/v1/campaigns/98b5a0b3-549b-4e58-b933-a8bd40923a14/test' \ -H 'Authorization: <AUTH>' -H 'Content-Type: application/json' \ -d '{ "emailSubject": "Yoga with puppies", "toEmailAddress": "yoga@example.com" }' \
Response
JSON
{}
Did this help?

POST

Pause Scheduling


Pauses a scheduled campaign.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}/pause-scheduling

Path Params
campaignIdstringRequired

Campaign ID.

Response Object
Returns an empty object.
Pause Scheduling
Request
cURL
curl -X POST 'https://www.wixapis.com/email-marketing/v1/campaigns/926bfb51-33c8-47d5-9b38-546d0e7b46d7/pause-scheduling' \ -H 'Authorization: <AUTH>'
Response
JSON
{}
Event TriggersThis method triggers the following events:
Did this help?

POST

Reschedule


Changes the sending time for an already scheduled campaign.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}/reschedule

Path Params
campaignIdstringRequired

ID of the campaign to reschedule.

Body Params
sendAtstringRequiredformat date-time

New time for sending out the campaign.

Response Object
Returns an empty object.
Reschedule Campaign
Request
cURL
curl -X POST 'https://www.wixapis.com/email-marketing/v1/campaigns/d699798f-dc07-4668-89f9-6db2e8ab52a3/reschedule' \ -H 'Content-Type: application/json' \ -H 'Authorization: <AUTH>' -d '{ "sendAt": "2024-08-14T14:43:00Z" }'
Response
JSON
{}
Did this help?

POST

Reuse Campaign


Creates a copy of an existing campaign.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}/reuse

Path Params
campaignIdstringRequired

ID of the message to be duplicated.

Response Object
campaignCampaign

Campaign information.

Reuse Campaign
Request
cURL
curl -X POST 'https://www.wixapis.com/email-marketing/v1/campaigns/98b5a0b3-549b-4e58-b933-a8bd40923a14/reuse' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "campaign": { "campaignId": "98b5a0b3-549b-4e58-b933-a8bd40923a14", "title": "Yoga with puppies", "firstImageUrl": "//static.wixstatic.com/media/eceb8e_f1f549829402430e8e6408182cb1453c~mv2_d_3681_1488_s_2.jpg", "editorType": "WEB", "status": "ACTIVE", "visibilityStatus": "DRAFT", "distributionStatus": "NOT_STARTED", "dateCreated": "2020-07-09T10:07:51Z", "dateUpdated": "2020-07-09T10:07:51.781290641Z" } }
Event TriggersThis method triggers the following events:
Did this help?

POST

Get Audience


Retrieves the audience of a paused campaign. Use this method to retrieve all selected audience of the paused campaign at once, so they can be passed in bulk when the campaign is published again after being paused.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/email-marketing/v1/campaigns/{campaignId}/audience

Path Params
campaignIdstringRequired

Campaign ID.

Response Object
audienceAudience

Campaign audience.

Get Audience
Request
cURL
curl -X POST 'https://www.wixapis.com/email-marketing/v1/campaigns/11ab3908-c40e-4deb-8e42-ca743f73ac8b/audience' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "audience": { "contactIds": [ "6a5e3cd4-233e-4d84-9418-bdf3abe332da", "b641f20c-f033-489d-8f57-a2cfe2ae3845" ], "labelIds": ["13ac190d-8c00-47fd-8a33-69b5032a3ac7"], "segmentIds": [ "2d3e7da2-135e-4050-a122-fa6c186d8ced", "23b786de-02fa-47fb-b37b-456fb5f6fd0d", "c92f529f-d559-4cf9-84f0-5a576db99f64" ], "contactsFilter": { "id": { "$in": ["3e229a21-f113-41bf-9e51-af923294180a"] } }, "activeContactsOnly": true } }
Did this help?

POST

Identify Sender Address


Checks if the sender's email address will be used as the "from" address or will it be replaced and to what exactly.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Email Marketing
Learn more about app permissions.
Body Params
emailAddressstringRequiredformat EMAILminLength 6maxLength 254

Email address to verify.

Response Object
senderAddressstringformat EMAILminLength 6maxLength 254

Actual "from" address that will be used for sending emails.

Identify Sender Address
Request
cURL
curl -X POST 'https://www.wixapis.com/email-marketing/v1/identify-sender-address' \ -H 'Content-Type: application/json' \ -H 'Authorization: <AUTH>' -d '{ "emailAddress": "john.doe@gmail.com" }'
Response
JSON
{ "senderAddress": "john.doe@pb02.ascendbywix.com" }
Did this help?

Campaign Distributed Event


Triggered when a campaign is successfully distributed to all recipients.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected campaign_distributed_event.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_campaign_distributed_event", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

Distributed
JSON
{ "entityId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "actionEvent": { "body": { "campaignId": "c9b491f8-bad0-4d0d-8a1c-c90055d31553" } }, "slug": "campaign_distributed_event", "id": "aacdffe0-8e14-4d1b-8060-8d0bf8248d36", "entityFqdn": "wix.email_marketing.v1.campaign", "eventTime": "2022-09-22T12:58:37.407664Z", "triggeredByAnonymizeRequest": false }
Did this help?

Campaign Paused Event


Triggered when a scheduled campaign is paused.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected campaign_paused_event.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_campaign_paused_event", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

Paused
JSON
{ "entityId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "actionEvent": { "body": { "campaignId": "c9b491f8-bad0-4d0d-8a1c-c90055d31553" } }, "slug": "campaign_paused_event", "id": "aacdffe0-8e14-4d1b-8060-8d0bf8248d36", "entityFqdn": "wix.email_marketing.v1.campaign", "eventTime": "2022-09-22T12:58:37.407664Z", "triggeredByAnonymizeRequest": false }
Did this help?

Campaign Published Event


Triggered when a draft campaign is published.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected campaign_published_event.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_campaign_published_event", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

Published
JSON
{ "entityId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "actionEvent": { "body": { "campaignId": "c9b491f8-bad0-4d0d-8a1c-c90055d31553", "landingPageUrl": "https://www.pianosandguitars.com/so/SHORTCODE", "mailingListSizeEstimate": 0 } }, "slug": "campaign_published_event", "id": "aacdffe0-8e14-4d1b-8060-8d0bf8248d36", "entityFqdn": "wix.email_marketing.v1.campaign", "eventTime": "2022-09-22T12:58:37.407664Z", "triggeredByAnonymizeRequest": false }
Did this help?

Campaign Rejected Event


Triggered when a campaign is identified as abusive and rejected without sending emails to recipients.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected campaign_rejected_event.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_campaign_rejected_event", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

Rejected
JSON
{ "entityId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "actionEvent": { "body": { "campaignId": "c9b491f8-bad0-4d0d-8a1c-c90055d31553" } }, "slug": "campaign_rejected_event", "id": "aacdffe0-8e14-4d1b-8060-8d0bf8248d36", "entityFqdn": "wix.email_marketing.v1.campaign", "eventTime": "2022-09-22T12:58:37.407664Z", "triggeredByAnonymizeRequest": false }
Did this help?

Campaign Scheduled Event


Triggered when a campaign is scheduled to be sent out at the specific time.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected campaign_scheduled_event.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_campaign_scheduled_event", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

Scheduled
JSON
{ "entityId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "actionEvent": { "body": { "campaignId": "c9b491f8-bad0-4d0d-8a1c-c90055d31553", "sendAt": "2020-02-14T14:28:19.680596102Z", "rescheduled": true } }, "slug": "campaign_scheduled_event", "id": "aacdffe0-8e14-4d1b-8060-8d0bf8248d36", "entityFqdn": "wix.email_marketing.v1.campaign", "eventTime": "2022-09-22T12:58:37.407664Z", "triggeredByAnonymizeRequest": false }
Did this help?

Campaign Terminated Event


Triggered when the mailing list isn't clean and campaign was terminated.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected campaign_terminated_event.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_campaign_terminated_event", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

Terminated
JSON
{ "entityId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "actionEvent": { "body": { "campaignId": "c9b491f8-bad0-4d0d-8a1c-c90055d31553" } }, "slug": "campaign_terminated_event", "id": "aacdffe0-8e14-4d1b-8060-8d0bf8248d36", "entityFqdn": "wix.email_marketing.v1.campaign", "eventTime": "2022-09-22T12:58:37.407664Z", "triggeredByAnonymizeRequest": false }
Did this help?

Campaign Created


Triggered when a campaign is created.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected created.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


createdEventCreatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_created", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

CampaignCreated
JSON
{ "entityId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "actionEvent": { "body": { "campaignId": "c9b491f8-bad0-4d0d-8a1c-c90055d31553", "title": "Email subject", "firstImageUrl": "//static.wixstatic.com/media/eceb8e_e1f32b0d497447a8898e7abcf01d7d87~mv2_d_5600_3733_s_4_2.jpg", "editorType": "WEB", "status": "ACTIVE", "visibilityStatus": "PUBLISHED", "distributionStatus": "DISTRIBUTED", "publishingData": { "landingPageUrl": "https://www.example.com/so/SHORTCODE", "statistics": { "landingPage": {}, "emailCampaign": { "delivered": 2, "opened": 2, "clicked": 2 }, "total": { "mailsSent": 2, "opened": 10, "clicked": 8 } }, "datePublished": "2020-02-14T14:28:54Z" }, "dateCreated": "2020-02-13T11:18:30Z", "dateUpdated": "2020-02-14T14:28:19.680596102Z" } }, "slug": "created", "id": "aacdffe0-8e14-4d1b-8060-8d0bf8248d36", "entityFqdn": "wix.email_marketing.v1.campaign", "eventTime": "2022-09-22T12:58:37.407664Z", "triggeredByAnonymizeRequest": false }
Did this help?

Campaign Deleted


Triggered when a campaign is deleted.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected deleted.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


deletedEventstruct

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_deleted", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

CampaignDeleted
JSON
{ "id": "85deb868-5896-4a44-8f0a-3544eb432216", "entityFqdn": "wix.email_marketing.v1.campaign", "slug": "deleted", "entityId": "077766f0-ffa4-4fa1-bdf8-dbb0439c1892", "deletedEvent": {}, "eventTime": "2023-05-25T10:57:03.945444Z", "triggeredByAnonymizeRequest": false }
Did this help?

Email Activity Updated


Triggered when an email campaign has a new recipient activity.

Permissions
Manage Email Marketing
Read Email Marketing
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.email_marketing.v1.campaign.


slugstring

Event name. Expected email_activity_updated.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.email_marketing.v1.campaign_email_activity_updated", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

EmailActivityUpdated
JSON
{ "entityId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "actionEvent": { "body": { "timestamp": "2022-09-22T12:58:00Z", "recipientEmailAddress": "michaeltaylor@example.com", "open": { "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)" }, "activityType": "OPEN", "contactId": "f1654c62-53b4-43d5-b01b-acbf782dee6f", "campaignId": "38d837a5-8303-413c-8ac0-75d735a4bdb0", "metadata": { "metadataFieldOne": "6b8fe9d9-bf02-42ed-9b27-77be5f6bc133", "metadataFieldTwo": "80cad016-1f36-4238-9748-2545fd374480" } } }, "slug": "email_activity_updated", "id": "aacdffe0-8e14-4d1b-8060-8d0bf8248d36", "entityFqdn": "wix.email_marketing.v1.campaign", "eventTime": "2022-09-22T12:58:37.407664Z", "triggeredByAnonymizeRequest": false }
Did this help?