Marketing activity status reference
Each marketing activity is marked with a status. Merchants can view the status of their marketing activities in the Marketing section of the Shopify admin.
PENDING status is set when the merchant 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 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 -
- 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](https://example.com) to set up your account
Read more about [account setup](https://example.com).
baseis a generic error that's not associated with any specific field.
base_error_severitycan be used to indicate the severity level of the base error to the merchant. The available levels are
info. The default severity level is
- Nested components (like the
budget_settingsexample) nest their inner fields so it's easier to read and locate the specific error for each field.
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.
INACTIVE status is set when the marketing activity has finished. These marketing activities are still shown to the merchant, but they are no longer editable.
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
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 merchant through a pause call), then when the app calls MarketingActivityUpdate it should provide an error message to state why it's paused the activity.
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:
- A merchant uninstalls the app that created a marketing activity
- A merchant's account on the marketing platform is no longer in sync with the app
A merchant uninstalls the app that created a marketing activity
If a merchant 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
DELETED_EXTERNALLY), labeled as Disconnected in the Shopify admin, and updated with an error message. When activities are labeled as Disconnected, the merchant can no longer make changes to them directly in their Shopify admin.
Action 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 merchant deletes the app in their Shopify admin.
If the merchant 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.
A merchant's account on the marketing platform is no longer in sync with the app
If the app detects that a merchant'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 merchant deactivates their account on the marketing platform after they create marketing activities, then that account becomes out of sync with the app in Shopify.
Action required by the app
In this case, the app needs to do the following:
When the app detects that it's no longer in sync with the merchant'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 merchant to reconnect the account that's associated with their marketing activities.
When the app detects that it's in sync with the merchant'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 merchant's request to delete the marketing activity is successful. The activity that was marked as deleted will no longer be visible to the merchant in the Marketing section of their Shopify admin. It's also expected that the app removes the activity from all of the associated platforms.
Action required by the app
Deleted externally status
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 merchant know that the activity was deleted from outside of Shopify. If the merchant deletes the activity from its details page in their Shopify admin, then it's removed from the Marketing page as well.
Required activity endpoints per status
This table identifies endpoints that must be implemented for each status.
Activity status and form
Activities can be edited when their status is