Shopify product.variants.* trigger: one Sume image per variant
A product.variants.* Shopify events trigger can fire many times at once. Fan each event out to one Sume image job, and queue bursts on your side.

Shopify events subscriptions accept a parent trigger such as product.variants.*, which covers all supported fields below that path. To turn that into images, queue one Sume image job per variant event. When many arrive together, hold them in your own queue and submit them at a pace you choose; Sume bulk runs queue Format runs, not image jobs.
The trigger syntax is from Shopify's 2026-09-16 changelog, read 2026-10-01. Image behavior is from Image generation; the bulk-run note is from Bulk runs.
What does the wildcard trigger do?
The changelog describes the syntax as subscribing to all supported fields below a parent path with a terminal .*, for example triggers = ["product.variants.*"]. A wildcard means more events than a single field trigger, so your receiver should expect bursts and treat each one as a small unit of work.
How do I map a variant to a Sume image job?
Take the variant's product photo URL and send it as an edit or reference input. Sume image inputs must be public HTTPS URLs only; localhost, private-network and non-HTTPS URLs are rejected before submission. num_images is an integer from 1 to 4 if you want options per variant. See bulk image generation for the single-request shape.
| Field | Rule in the docs |
|---|---|
image_urls | 1-10 public HTTPS URLs |
num_images | Integer 1-4 |
metadata | Stored on the job, not sent to the provider |
Idempotency-Key | Sent on each submit so a retry returns the original job |
mode | async is the default; poll the job or use a webhook |
What if fifty variants change at once?
Buffer the events in your own queue and submit one image request per variant, so a burst does not become a burst of paid calls at once. Bulk runs are a different surface: the docs describe them as a server-side queue of ordinary Format runs (1-100 items, concurrency 1-16), so they fit only if your per-variant work is a Format, not a direct image request.
How do I tie a result back to the variant?
Put your variant id in metadata, which Sume stores on the job. When the job finishes, match on that value and on job_id before writing the image back to the store. Pair this with an Idempotency-Key per variant event so a repeated Shopify delivery cannot create a second paid job.
Sources
Related posts
More in Integrations
- Slack incoming webhook 1/sec: when 100 Sume jobs finish together
Slack incoming webhooks allow about 1 message per second. When 100 Sume jobs finish at once, store each webhook, then post to Slack from a paced queue.
- Snapchat Ads MCP and hosted Sume tools in one agent
Snap's Ads MCP server answers campaign questions and is read-only at launch. Add Sume's hosted MCP in the same agent to turn the findings into creative.
- Tavus PAL MCP connectors vs Sume hosted MCP tools and gates
Tavus MCP connectors let a PAL call third-party MCP servers. Here is what Sume's hosted MCP at mcp.sume.com exposes and the gates a paid call needs.
- Telegram Bot API 10.3 ephemeral sendVideo with a Sume clip
Bot API 10.3 adds ephemeral_message_parameters to sendVideo. Send a finished Sume artifact URL from your webhook handler; steps, retries and limits.
Written by Sume