Shopify ACTION
Update Metafield
Updates the value of an existing metafield on a Shopify resource (product, customer, order, etc.) via the
metafieldsSet mutation. Use this to change custom data stored on a record you've already identified. Select the owner resource and record, then the specific metafield to update, and provide the new value. This action resolves the selected metafield and reuses its existing namespace, key, and type — only the value is changed, and the metafield must already exist. The value must be a string serialized to the metafield's type — for example 10 for number_integer, {"color":"red"} for json, or 2026-08-12 for date. To discover a resource's metafields first, use a list/get metafields action. See the documentation- Action
- Writes data
- Destructive
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Shopify account once, then configure and run Update Metafield from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "shopify-update-metafield",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
shopify: { authProvisionId: "apn_xxxxxxx" },
ownerResource: "Resource Type",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "shopify-update-metafield",
"configured_props": {
"shopify": { "authProvisionId": "apn_xxxxxxx" },
"ownerResource": "Resource Type"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "shopify",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "shopify-update-metafield",
arguments: {
ownerResource: "Resource Type",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
ownerResource Resource Type | string | Filter by the resource type on which the metafield is attached to Required |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- shopify-update-metafield
- Version
- 0.0.21
- App
- Shopify
- Authentication
- OAuth
- Read-only
- No
- Destructive
- Yes
- Open world
- Yes
- Source
- View on GitHub ↗