Automations
Replace automation workflow blocks
Replace the full block tree for an automation workflow.
Blocks identified by id are updated in place. Blocks identified by temporaryID are created as new blocks. Existing blocks not included in this array are removed.
Enabled automations cannot be restructured. Disable the automation via POST /automations/{id}/disable, send the new block tree, then re-enable via POST /automations/{id}/enable when ready. When disabling, contactsInWorkflow controls whether contacts already in the workflow continue through the remaining blocks (keep) or exit immediately (exit).
Scopes: automations.write
put/automations/{id}/blocks
Path parameters
idstring required
Automation workflow ID (24 character hexadecimal)
Headers
Omnisend-Versionstring required
API version that specifies the response format and behaviour
Request body
Example request
{
"blocks": [
{
"abTesting": {
"aBlocksPercentage": 50
},
"action": {
"addTag": {
"value": "vip-customer"
},
"removeTag": {
"value": "vip-customer"
},
"sendEmail": {
"isSkipAllowed": true,
"language": "en_US",
"preheader": "Check out what we have for you",
"replyToEmail": "support@example.com",
"senderEmail": "hello@example.com",
"senderName": "My Store",
"subject": "Welcome to our store!",
"templateID": "000000000000000000000001"
},
"sendPush": {
"body": "Track your delivery now",
"clickUrl": "https://example.com/order/123",
"iconID": "000000000000000000000001",
"imageID": "000000000000000000000002",
"isSkipAllowed": true,
"title": "Your order has shipped"
},
"sendSms": {
"compliance": {
"isStopKeywordIncluded": true,
"isUnsubscribeLinkIncluded": true,
"stopKeywordText": "Reply STOP to opt out",
"unsubscribeLinkText": "Unsubscribe [[unsubscribe_link]]"
},
"imageID": "000000000000000000000001",
"isLinkShorteningEnabled": true,
"isSkipAllowed": true,
"message": "Hello [[contact.first_name]]!"
},
"sendWebhook": {
"body": "{\"contactEmail\": \"[[contact.email]]\"}",
"callbackUrl": "https://example.com/webhook",
"headers": [
{
"key": "X-Api-Key",
"value": "secret-token"
}
]
},
"type": "sendEmail"
},
"delay": {
"duration": {
"amount": 24,
"units": "h"
},
"mode": "duration",
"time": "09:30"
},
"id": "000000000000000000000001",
"split": {
"filterGroup": {
"filters": [
{
"field": "app_language_code",
"operator": "eq",
"type": "event",
"urlMatch": {
"operator": "contains",
"value": "https://example.com/promo"
}
}
],
"logicalOperator": "and"
}
},
"temporaryID": "welcome-email",
"type": "action"
}
]
}Response
Updated automation workflow
Example response
{
"blocks": [
{
"abTesting": {
"aBlocksPercentage": 50
},
"action": {
"addTag": {
"value": "vip-customer"
},
"removeTag": {
"value": "vip-customer"
},
"sendEmail": {
"contentID": "000000000000000000000001",
"isSkipAllowed": true,
"language": "en_US",
"preheader": "Check out what we have for you",
"replyToEmail": "support@example.com",
"senderEmail": "hello@example.com",
"senderName": "My Store",
"subject": "Welcome to our store!"
},
"sendPush": {
"body": "We have something special for you.",
"clickUrl": "https://example.com/promo",
"iconID": "000000000000000000000001",
"imageID": "000000000000000000000001",
"isSkipAllowed": true,
"title": "Check this out!"
},
"sendSms": {
"compliance": {
"isStopKeywordIncluded": true,
"isUnsubscribeLinkIncluded": true,
"stopKeywordText": "Reply STOP to opt out",
"unsubscribeLinkText": "Unsubscribe [[unsubscribe_link]]"
},
"discountSettings": {
"combinesWith": {
"isOrderCompatible": true,
"isProductCompatible": true
},
"expiry": {
"dateFormat": "MMM DD, YYYY",
"expirationText": "expires on",
"expiresInDays": 14
},
"scope": {
"collectionID": 123456,
"collectionType": "smart",
"conditions": "allOrders",
"minimumOrderAmount": "50.00"
},
"type": "percentage",
"value": "10"
},
"imageID": "000000000000000000000001",
"isLinkShorteningEnabled": true,
"isSkipAllowed": true,
"message": "Hello [[contact.first_name]]! Check out our deals"
},
"sendWebhook": {
"body": "{\"contactEmail\": \"[[contact.email]]\"}",
"callbackUrl": "https://example.com/webhook",
"headers": [
{
"key": "X-Api-Key",
"value": "secret-token"
}
]
},
"type": "sendEmail"
},
"delay": {
"duration": {
"amount": 24,
"units": "h"
},
"mode": "duration",
"time": "09:30"
},
"id": "000000000000000000000002",
"split": {
"filterGroup": {
"filters": [
{
"field": "app_language_code",
"operator": "eq",
"type": "event",
"urlMatch": {
"operator": "contains",
"value": "https://example.com"
}
}
],
"logicalOperator": "and"
}
},
"type": "action"
}
],
"brandID": "000000000000000000000001",
"createdAt": "2026-01-15T10:30:00Z",
"disabledAt": "2026-01-15T10:30:00Z",
"enabledAt": "2026-01-15T10:30:00Z",
"exitConditions": [
{
"event": "placed order",
"filterGroup": {
"filters": [
{
"field": "app_language_code",
"operator": "eq"
}
],
"logicalOperator": "and"
},
"origin": "omnisend"
}
],
"id": "000000000000000000000001",
"isEnabled": true,
"name": "Welcome Series",
"settings": {
"discount": {
"combinesWith": {
"isOrderCompatible": true,
"isProductCompatible": true
},
"expiry": {
"dateFormat": "MMM DD, YYYY",
"expirationText": "expires on",
"expiresInDays": 14
},
"scope": {
"collectionID": 123456,
"collectionType": "smart",
"conditions": "allOrders",
"minimumOrderAmount": "50.00"
},
"type": "percentage",
"value": "10"
},
"frequencyLimiter": {
"duration": {
"amount": 1,
"units": "w"
},
"mode": "interval"
},
"overlapLimiter": {
"automationIDs": [
"000000000000000000000001"
],
"mode": "currentlyIn",
"withinDays": 7
},
"sendingThresholds": {
"email": "subscribed",
"sms": "subscribed"
}
},
"trigger": {
"audienceFilterGroup": {
"filters": [
{
"field": "tag",
"operator": "eq"
}
],
"logicalOperator": "and"
},
"condition": {
"event": "placed order",
"filterGroups": [
{
"filters": [
{
"field": "app_language_code",
"operator": "eq"
}
],
"logicalOperator": "and"
}
],
"origin": "omnisend"
},
"inactivitySettings": {
"duration": {
"amount": 24,
"units": "h"
}
}
},
"updatedAt": "2026-01-15T10:30:00Z"
}