Anchor to section titled 'undefined'

marketingActivityUpsertExternal
mutation

Requires write_marketing_events access scope.

Creates a new external marketing activity or updates an existing one. When optional fields are absent or null, associated information will be removed from an existing marketing activity.


The input field for creating or updating an external marketing activity.


Was this section helpful?

The external marketing activity that was created or updated.

The list of errors that occurred from executing the mutation.


Was this section helpful?

Examples

Hide code
Copy
mutation marketingActivityUpsertExternal($input: MarketingActivityUpsertExternalInput!) {
  marketingActivityUpsertExternal(input: $input) {
    marketingActivity {
      id
    }
  }
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "mutation marketingActivityUpsertExternal($input: MarketingActivityUpsertExternalInput!) { marketingActivityUpsertExternal(input: $input) { marketingActivity { id } } }",
 "variables": {
    "input": {
      "remoteId": "A unique identifier",
      "title": "New Title",
      "remoteUrl": "https://example.com",
      "status": "ACTIVE",
      "utm": {
        "source": "email",
        "medium": "newsletter",
        "campaign": "external-campaign"
      },
      "tactic": "NEWSLETTER",
      "marketingChannelType": "EMAIL"
    }
  }
}'
const { admin } = await authenticate.admin(request);

const response = await admin.graphql(
  `#graphql
  mutation marketingActivityUpsertExternal($input: MarketingActivityUpsertExternalInput!) {
    marketingActivityUpsertExternal(input: $input) {
      marketingActivity {
        id
      }
    }
  }`,
  {
    variables: {
      "input": {
        "remoteId": "A unique identifier",
        "title": "New Title",
        "remoteUrl": "https://example.com",
        "status": "ACTIVE",
        "utm": {
          "source": "email",
          "medium": "newsletter",
          "campaign": "external-campaign"
        },
        "tactic": "NEWSLETTER",
        "marketingChannelType": "EMAIL"
      }
    },
  },
);

const data = await response.json();
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 marketingActivityUpsertExternal($input: MarketingActivityUpsertExternalInput!) {
    marketingActivityUpsertExternal(input: $input) {
      marketingActivity {
        id
      }
    }
  }
QUERY

variables = {
  "input": {
    "remoteId": "A unique identifier",
    "title": "New Title",
    "remoteUrl": "https://example.com",
    "status": "ACTIVE",
    "utm": {
      "source": "email",
      "medium": "newsletter",
      "campaign": "external-campaign"
    },
    "tactic": "NEWSLETTER",
    "marketingChannelType": "EMAIL"
  }
}

response = client.query(query: query, variables: variables)
const client = new shopify.clients.Graphql({session});
const data = await client.query({
  data: {
    "query": `mutation marketingActivityUpsertExternal($input: MarketingActivityUpsertExternalInput!) {
      marketingActivityUpsertExternal(input: $input) {
        marketingActivity {
          id
        }
      }
    }`,
    "variables": {
      "input": {
        "remoteId": "A unique identifier",
        "title": "New Title",
        "remoteUrl": "https://example.com",
        "status": "ACTIVE",
        "utm": {
          "source": "email",
          "medium": "newsletter",
          "campaign": "external-campaign"
        },
        "tactic": "NEWSLETTER",
        "marketingChannelType": "EMAIL"
      }
    },
  },
});
use Shopify\Clients\Graphql;

$client = new Graphql("your-development-store.myshopify.com", $accessToken);
$query = <<<QUERY
  mutation marketingActivityUpsertExternal($input: MarketingActivityUpsertExternalInput!) {
    marketingActivityUpsertExternal(input: $input) {
      marketingActivity {
        id
      }
    }
  }
QUERY;

$variables = [
  "input" => [
    "remoteId" => "A unique identifier",
    "title" => "New Title",
    "remoteUrl" => "https://example.com",
    "status" => "ACTIVE",
    "utm" => [
      "source" => "email",
      "medium" => "newsletter",
      "campaign" => "external-campaign",
    ],
    "tactic" => "NEWSLETTER",
    "marketingChannelType" => "EMAIL",
  ],
];

$response = $client->query(["query" => $query, "variables" => $variables]);
Hide code
Input variables
Copy
{
  "input": {
    "remoteId": "A unique identifier",
    "title": "New Title",
    "remoteUrl": "https://example.com",
    "status": "ACTIVE",
    "utm": {
      "source": "email",
      "medium": "newsletter",
      "campaign": "external-campaign"
    },
    "tactic": "NEWSLETTER",
    "marketingChannelType": "EMAIL"
  }
}
Hide code
Response
JSON
{
  "marketingActivityUpsertExternal": {
    "marketingActivity": {
      "id": "gid://shopify/MarketingActivity/1063897336"
    }
  }
}