--- title: marketingEngagementsDelete - GraphQL Admin description: |- Marks channel-level engagement data such that it no longer appears in reports. Activity-level data cannot be deleted directly, instead the MarketingActivity itself should be deleted to hide it from reports. api_version: 2025-10 api_name: admin type: mutation api_type: graphql source_url: html: https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingEngagementsDelete md: https://shopify.dev/docs/api/admin-graphql/latest/mutations/marketingEngagementsDelete.md --- # marketing​Engagements​Delete mutation Requires `write_marketing_events` access scope. Marks channel-level engagement data such that it no longer appears in reports. Activity-level data cannot be deleted directly, instead the MarketingActivity itself should be deleted to hide it from reports. ## Arguments * channel​Handle [String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String) The handle of the channel for which engagement data should be deleted. * delete​Engagements​For​All​Channels [Boolean](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean) Default:false When true, engagements for all channels that belong to the api client will be deleted. *** ## Marketing​Engagements​Delete​Payload returns * result [String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String) Informational message about the engagement data that has been marked for deletion. * user​Errors [\[Marketing​Activity​User​Error!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketingActivityUserError) non-null The list of errors that occurred from executing the mutation. *** ## Examples * ### Mark all channel level engagement data associated to the api client for deletion #### Query ```graphql mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } } ``` #### cURL ```bash curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }" }' ``` #### React Router ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }`, ); const json = await response.json(); return json.data; } ``` #### Ruby ```ruby session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } } QUERY response = client.query(query: query) ``` #### Node.js ```javascript const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }`, }); ``` #### Response ```json { "marketingEngagementsDelete": { "result": "Engagement data marked for deletion for 5 channel(s)", "userErrors": [] } } ``` * ### Mark engagement data associated to a specific channel for deletion #### Query ```graphql mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } } ``` #### cURL ```bash curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }" }' ``` #### React Router ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }`, ); const json = await response.json(); return json.data; } ``` #### Ruby ```ruby session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } } QUERY response = client.query(query: query) ``` #### Node.js ```javascript const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }`, }); ``` #### Response ```json { "marketingEngagementsDelete": { "result": "Engagement data associated to channel handle 'my-channel-handle' marked for deletion", "userErrors": [] } } ``` * ### marketingEngagementsDelete reference [Open in GraphiQL](http://localhost:3457/graphiql?query=mutation%20M\(%24channelHandle%3A%20String%2C%20%24deleteEngagementsForAllChannels%3A%20Boolean\)%20%7B%0A%20%20marketingEngagementsDelete\(channelHandle%3A%20%24channelHandle%2C%20deleteEngagementsForAllChannels%3A%20%24deleteEngagementsForAllChannels\)%20%7B%0A%20%20%20%20result%0A%20%20%20%20userErrors%20%7B%0A%20%20%20%20%20%20field%0A%20%20%20%20%20%20message%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D) ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }`, ); const json = await response.json(); return json.data; } ``` ##### GQL ``` mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } } ``` ##### cURL ``` curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }" }' ``` ##### React Router ``` import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }`, ); const json = await response.json(); return json.data; } ``` ##### Node.js ``` const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } }`, }); ``` ##### Ruby ``` session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY mutation M($channelHandle: String, $deleteEngagementsForAllChannels: Boolean) { marketingEngagementsDelete(channelHandle: $channelHandle, deleteEngagementsForAllChannels: $deleteEngagementsForAllChannels) { result userErrors { field message } } } QUERY response = client.query(query: query) ``` ## Response JSON ```json { "marketingEngagementsDelete": { "result": "Engagement data marked for deletion for 5 channel(s)", "userErrors": [] } } ```