Skip to main content

Marketing activities statuses reference

Deprecated

The creation of new marketing activity app extensions is deprecated. Only existing extensions can still be managed. If you have an existing marketing activity app extension and would like to continue to manage it, please migrate it to CLI following the migration guide.

Each marketing activity is marked with a status. Users can view the status of their marketing activities in the Marketing section of the Shopify admin.

Note

For a complete list of possible statuses, refer to the MarketingActivityStatus enum.


The PENDING status is set when the user clicks the Publish activity button in Shopify. When the marketing activity is successfully created, the app needs to set the status as ACTIVE. If publishing fails, then the marketing activity should be set as FAILED.


The FAILED status is set when the marketing activity has failed to be published. If the marketing activity creation fails, then the app needs to set the marketing activity status as FAILED and provide the correct error messages when calling MarketingActivityUpdate. Example error message format -

{
"errors": {
"base_error_severity": "warning",
"base": [
"Your account does not have any payment method set."
],
"quantity": [
"is required"
],
"start_at": {
"start_time": [
"is required",
"must be after January 1st, 2019"
],
"end_time": [
"is required"
]
}
}
}
  • The keys represent the input name of the form field.
  • The array of strings contains the error messages associated with that field.
  • Error messages can contain Markdown links that use root-relative or HTTPS URLs. For example:
    Click here to set up your account
    or Read more about account setup.
  • base is a generic error that's not associated with any specific field.
  • base_error_severity can be used to indicate the severity level of the base error to the user. The available levels are critical, warning, and info. The default severity level is warning.
  • Nested components (like the budget_settings example) nest their inner fields so it's easier to read and locate the specific error for each field.
A marketing activity  with an error in the Shopify admin. The error reads `Your account does not have any payment method set.'

The ACTIVE status is set when the marketing activity has started and is currently actively running. It's expected that the app sets the status as INACTIVE when the activity has finished.

Note

For one-time marketing activities such as email and social media posts, it's recommended that you set the marketing activity as INACTIVE directly after the action has been completed to indicate that the activity is done (for example, after the email has been sent, or the social media post has been posted).


The INACTIVE status is set when the marketing activity has finished. These marketing activities are still displayed to the user, but they are no longer editable.


The SCHEDULED status is set when the app has successfully acknowledged the creation of a marketing activity sometime in the future. For example, if an email marketing activity is set to be sent in the future, then the app should set the status of that activity as SCHEDULED.


The PAUSED status means that the marketing activity is currently in a paused state and not running. If the marketing activity needs to be paused by the app (instead of being paused by the app user through a pause call), then when the app calls MarketingActivityUpdate it should provide an error message to state why it's paused the activity.


The DISCONNECTED status applies to a marketing activity when its state in Shopify no longer accurately reflects its state outside of Shopify. There are a few different reasons why an activity can have this status:

Anchor to A user uninstalls the app that created a marketing activityA user uninstalls the app that created a marketing activity

If a user uninstalls an app that they've used to create marketing activities, then Shopify revokes access to those marketing activities. Those activities are marked as DISCONNECTED (unless the app's already marked them as INACTIVE, DELETED, or DELETED_EXTERNALLY), labeled as Disconnected in the Shopify admin, and updated with an error message. When activities are labeled as Disconnected, the user can no longer make changes to them directly in their Shopify admin.

Screenshot of a disconnected marketing activity.

Anchor to Action required by the appAction required by the app

In this case, the app doesn't need to mark the activity as DISCONNECTED since that's done automatically when the user deletes the app in their Shopify admin.

If the user reinstalls the app, then the app needs to update the status of each marketing activity so that it matches its current status outside of Shopify, and then clear the related error messages. This can be done by subscribing to the app install webhook, and then calling MarketingActivityUpdate to set the status and mark the error message as empty.

Anchor to A user's account on the marketing platform is no longer in sync with the appA user's account on the marketing platform is no longer in sync with the app

If the app detects that a user's account on the marketing platform is no longer in sync with the app, then the status of their marketing activities in Shopify might not reflect their current status on that platform. For example, if a user deactivates their account on the marketing platform after they create marketing activities, then that account becomes out of sync with the app in Shopify.

Anchor to Action required by the appAction required by the app

In this case, the app needs to do the following:

  1. When the app detects that it's no longer in sync with the user's account on the marketing platform, it should call MarketingActivityUpdate to set the status of the marketing activities as DISCONNECTED, and then set the error message to instruct the user to reconnect the account that's associated with their marketing activities.

  2. When the app detects that it's in sync with the user's account again, it needs to update the status of the marketing activities to their current status on the marketing platform, and then clear the related error messages.


The DELETED status is set by the app to acknowledge that the user's request to delete the marketing activity is successful. The activity that was marked as deleted will no longer be visible to the user in the Marketing section of their Shopify admin. It's also expected that the app removes the activity from all of the associated platforms.

Anchor to Action required by the appAction required by the app

When the Delete call is received by the app, it needs to ensure that all activity has been paused or stopped before the MarketingActivityUpdate is called to mark the activity as DELETED.


Anchor to Deleted externally statusDeleted externally status

The DELETED_EXTERNALLY status applies to a marketing activity that was deleted from outside of Shopify.

After an activity is marked as DELETED_EXTERNALLY, it still appears on the Marketing page in the Shopify admin. This lets the user know that the activity was deleted from outside of Shopify. If the user deletes the activity from its details page in their Shopify admin, then it's removed from the Marketing page as well.


Anchor to Required activity endpoints per statusRequired activity endpoints per status

This table identifies endpoints that must be implemented for each status.

Note

An activity with DELETED, UNDEFINED, or DISCONNECTED status cannot call the following endpoints.

PENDINGFAILEDSCHEDULEDACTIVEPAUSEDINACTIVEDELETED_EXTERNALLY
Publish
Republishx
Pausexxx
Resumex
Updatexxx
Deletexxxxxx
Previewxxxxxx
Preloadxxxxxxx

Anchor to Activity status and formActivity status and form

Activities can be edited when their status is ACTIVE, FAILED, or SCHEDULED.


Was this page helpful?