workflows

Embed
Preview of the card
<a href="https://hermeticor.com/docs/ref-workflows"><img src="https://hermeticor.com/docs/_api/public/orgs/5fcd8b3c-a27c-4688-972f-de710125592f/spaces/caf5dc05-15f7-4e0c-bdb8-ab29ede6211e/pages/27c987c7-83e1-4744-b0ce-54b59acc4526/social-card.svg?v=3e7ae33eec8b" alt="workflows" width="600" height="315"></a>
POSThttps://hermeticor.com/v1/workflows/{id}/preview

Walk one real person (and optionally one of their real events) through the journey without sending anything

Parameters

idstringpathrequired

Request body

application/json
profileIdstringrequired
eventIdstring
definitionobject
Show child parameters
graphobjectrequired
Show child parameters
startstring
= null
nodesNodesItem[]required
edgesEdgesItem[]required
triggersTriggersItem[]required
settingsobjectrequired
Show child parameters
purposestring
marketing | prospecting | transactional | operational = marketing
modestring
journey | sequence = journey
filterCheckstring
entry | every_step | before_send = before_send
filterFailActionstring
exit | skip = exit
profileFilterobject
goalobject
quietHoursstring | object
= inherit
quietHoursActionstring
wait | skip | exit
sendWindowobject
smartSendingobject
enrollmentCapobject
activeWindowobject
failureAlertobject
timezoneSourcestring
profile | workspace = profile
timezonestring
= UTC
exitOnobject
sequenceobject
waitOutcomesobject
{
  "profileId": "string",
  "eventId": "string",
  "definition": {
    "graph": {
      "start": null,
      "nodes": [
        {
          "id": "string",
          "type": "send_email",
          "config": {
            "templateId": "string",
            "versionId": "string",
            "route": {
              "connectionId": "string",
              "poolId": "string",
              "routePolicyId": "string"
            },
            "topicId": "string",
            "replyToStep": "string",
            "onBlocked": "continue",
            "skipOnFailure": true,
            "skipIfMessagedWithinHours": 0,
            "filter": {
              "type": "group",
              "op": "and",
              "negate": true,
              "children": [
                {}
              ]
            },
            "retries": 0,
            "senderIdentityId": "string",
            "replyTo": "string",
            "oneClickUnsubscribe": true
          },
          "position": {
            "x": 0,
            "y": 0
          },
          "name": "string"
        }
      ],
      "edges": [
        {
          "id": "string",
          "source": "string",
          "sourceHandle": "string",
          "target": "string"
        }
      ]
    },
    "triggers": [
      {
        "type": "profile_created",
        "reentry": {
          "mode": "after_completion"
        }
      }
    ],
    "settings": {
      "purpose": "marketing",
      "mode": "journey",
      "filterCheck": "before_send",
      "filterFailAction": "exit",
      "profileFilter": {
        "type": "group",
        "op": "and",
        "negate": true,
        "children": [
          {}
        ]
      },
      "goal": {
        "kind": "event",
        "eventName": "string",
        "filter": {},
        "definition": {
          "type": "group",
          "op": "and",
          "negate": true,
          "children": [
            {}
          ]
        },
        "windowDays": 30,
        "onReach": "exit"
      },
      "quietHours": "inherit",
      "quietHoursAction": "wait",
      "sendWindow": {
        "startMin": 0,
        "endMin": 0,
        "weekdays": [
          0
        ]
      },
      "smartSending": {
        "skipIfMessagedWithinHours": 0,
        "frequencyCap": {
          "maxSends": 0,
          "windowHours": 0
        }
      },
      "enrollmentCap": {
        "maxTotal": 0,
        "maxConcurrent": 0
      },
      "activeWindow": {
        "from": "2024-01-01T00:00:00Z",
        "until": "2024-01-01T00:00:00Z"
      },
      "failureAlert": {
        "userIds": [],
        "emails": []
      },
      "timezoneSource": "profile",
      "timezone": "UTC",
      "exitOn": {
        "type": "group",
        "op": "and",
        "negate": true,
        "children": [
          {}
        ]
      },
      "sequence": {
        "steps": [],
        "schedule": {
          "weekdays": [
            1,
            2,
            3,
            4,
            5
          ],
          "startMin": 540,
          "endMin": 1020,
          "timezoneSource": "prospect",
          "timezone": "UTC"
        },
        "mailbox": {
          "sticky": true,
          "onUnavailable": "pause"
        },
        "dailyNewLimit": 0,
        "followUpPercent": 0,
        "plainTextOnly": true,
        "trackOpens": true,
        "unsubscribeText": "string",
        "spintaxMode": "random",
        "variables": {},
        "blocklist": {
          "emails": [
            "string"
          ],
          "domains": []
        },
        "reviewBeforeSend": true,
        "reviewEachMessage": true,
        "stop": {
          "onReply": "human",
          "onAutoReply": "continue",
          "onOoo": "pause_until_return",
          "onCompanyReply": "none"
        },
        "onCategory": [
          {
            "category": "positive",
            "sequenceId": "string",
            "stopCurrent": true
          }
        ],
        "ownerUserId": "string",
        "scheduleId": "string",
        "dedupe": {
          "crossSequence": "skip",
          "contactedWithinDays": 0,
          "domain": false
        },
        "startAt": "2024-01-01T00:00:00Z",
        "minGapMinutes": 0,
        "senderOverrides": {},
        "abm": {
          "maxPerAccount": 5,
          "onAccountReply": "stop"
        }
      }
    }
  },
  "waitOutcomes": {}
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/workflows/{id}/preview" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profileId":"string","eventId":"string","definition":{"graph":{"start":null,"nodes":[{"id":"string","type":"send_email","config":{"templateId":"string","versionId":"string","route":{"connectionId":"string","poolId":"string","routePolicyId":"string"},"topicId":"string","replyToStep":"string","onBlocked":"continue","skipOnFailure":true,"skipIfMessagedWithinHours":0,"filter":{"type":"group","op":"and","negate":true,"children":[{}]},"retries":0,"senderIdentityId":"string","replyTo":"string","oneClickUnsubscribe":true},"position":{"x":0,"y":0},"name":"string"}],"edges":[{"id":"string","source":"string","sourceHandle":"string","target":"string"}]},"triggers":[{"type":"profile_created","reentry":{"mode":"after_completion"}}],"settings":{"purpose":"marketing","mode":"journey","filterCheck":"before_send","filterFailAction":"exit","profileFilter":{"type":"group","op":"and","negate":true,"children":[{}]},"goal":{"kind":"event","eventName":"string","filter":{},"definition":{"type":"group","op":"and","negate":true,"children":[{}]},"windowDays":30,"onReach":"exit"},"quietHours":"inherit","quietHoursAction":"wait","sendWindow":{"startMin":0,"endMin":0,"weekdays":[0]},"smartSending":{"skipIfMessagedWithinHours":0,"frequencyCap":{"maxSends":0,"windowHours":0}},"enrollmentCap":{"maxTotal":0,"maxConcurrent":0},"activeWindow":{"from":"2024-01-01T00:00:00Z","until":"2024-01-01T00:00:00Z"},"failureAlert":{"userIds":[],"emails":[]},"timezoneSource":"profile","timezone":"UTC","exitOn":{"type":"group","op":"and","negate":true,"children":[{}]},"sequence":{"steps":[],"schedule":{"weekdays":[1,2,3,4,5],"startMin":540,"endMin":1020,"timezoneSource":"prospect","timezone":"UTC"},"mailbox":{"sticky":true,"onUnavailable":"pause"},"dailyNewLimit":0,"followUpPercent":0,"plainTextOnly":true,"trackOpens":true,"unsubscribeText":"string","spintaxMode":"random","variables":{},"blocklist":{"emails":["string"],"domains":[]},"reviewBeforeSend":true,"reviewEachMessage":true,"stop":{"onReply":"human","onAutoReply":"continue","onOoo":"pause_until_return","onCompanyReply":"none"},"onCategory":[{"category":"positive","sequenceId":"string","stopCurrent":true}],"ownerUserId":"string","scheduleId":"string","dedupe":{"crossSequence":"skip","contactedWithinDays":0,"domain":false},"startAt":"2024-01-01T00:00:00Z","minGapMinutes":0,"senderOverrides":{},"abm":{"maxPerAccount":5,"onAccountReply":"stop"}}}},"waitOutcomes":{}}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "traces": {},
  "nodeCounts": {},
  "pathCounts": {},
  "warnings": [
    {
      "severity": "error",
      "code": "string",
      "message": "string",
      "nodeId": "string",
      "fix": "string"
    }
  ],
  "profile": {
    "id": "string",
    "fields": {},
    "tags": [],
    "listIds": [],
    "segmentIds": [],
    "timezone": "UTC",
    "consents": []
  },
  "triggerEvent": {}
}
Schema
tracesobjectrequired
nodeCountsobjectrequired
pathCountsobjectrequired
warningsErrorsItem[]required
Show child parameters
severitystringrequired
error | warning
codestringrequired
messagestringrequired
nodeIdstring
fixstring
profileobjectrequired
Show child parameters
idstringrequired
fieldsobjectrequired
= {}
tagsstring[]required
= []
listIdsstring[]required
= []
segmentIdsstring[]required
= []
timezonestringrequired
= UTC
consentsstring[]required
= []
triggerEventobjectrequired
4XX Default Response
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
detailsobject
5XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

GEThttps://hermeticor.com/v1/workflows/reviews

Messages waiting for a decision at Manual-review steps

Parameters

limitintegerquery
= 50
cursorstringquery
workflowIdstringquery
nodeIdstringquery
statusstringquery
pending | approved | skipped | done = pending

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/workflows/reviews" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "id": "string",
      "workflowId": "string",
      "workflowName": "string",
      "nodeId": "string",
      "templateId": "string",
      "enrollmentId": "string",
      "profileId": "string",
      "profileEmail": "string",
      "profileName": "string",
      "status": "pending",
      "subject": "string",
      "body": "string",
      "html": "string",
      "templateHtml": "string",
      "templateSubject": "string",
      "templateText": "string",
      "templateDoc": {
        "version": 1,
        "width": 600,
        "background": "string",
        "blocks": [
          {}
        ],
        "translations": {}
      },
      "doc": {
        "version": 1,
        "width": 600,
        "background": "string",
        "blocks": [
          {}
        ],
        "translations": {}
      },
      "createdAt": "2024-01-01T00:00:00Z",
      "decidedAt": "2024-01-01T00:00:00Z"
    }
  ],
  "nextCursor": "string"
}
Schema
itemsobject[]required
Show child parameters
idstringrequired
workflowIdstringrequired
workflowNamestringrequired
nodeIdstringrequired
templateIdstringrequired
enrollmentIdstringrequired
profileIdstringrequired
profileEmailstringrequired
profileNamestringrequired
statusstringrequired
pending | approved | skipped | done
subjectstringrequired
bodystringrequired
htmlstringrequired
templateHtmlstringrequired
templateSubjectstringrequired
templateTextstringrequired
templateDocobjectrequired
Show child parameters
versionnumberrequired
1 = 1
widthintegerrequired
= 600
backgroundstring
blocksschema0[]required
translationsobject
docobjectrequired
Show child parameters
versionnumberrequired
1 = 1
widthintegerrequired
= 600
backgroundstring
blocksschema0[]required
translationsobject
createdAtstringrequired
decidedAtstringrequired
nextCursorstringrequired
4XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

5XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

POSThttps://hermeticor.com/v1/workflows/reviews/decide-all

Approve or skip every waiting message of a journey (or one step)

Request body

application/json
workflowIdstringrequired
nodeIdstring
actionstringrequired
approve | skip
{
  "workflowId": "string",
  "nodeId": "string",
  "action": "approve"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/workflows/reviews/decide-all" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflowId":"string","nodeId":"string","action":"approve"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "decided": 0,
  "more": true
}
Schema
decidedintegerrequired
morebooleanrequired
4XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

5XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

POSThttps://hermeticor.com/v1/workflows/reviews/{reviewId}/decide

Approve (optionally edited) or skip one person’s message; consent is rechecked at send

Parameters

reviewIdstringpathrequired

Request body

application/json
actionstringrequired
approve | skip
subjectstring
bodystring
htmlstring
docobject
Show child parameters
versionnumber
1 = 1
widthinteger
= 600
backgroundstring
blocksschema0[]required
translationsobject
{
  "action": "approve",
  "subject": "string",
  "body": "string",
  "html": "string",
  "doc": {
    "version": 1,
    "width": 600,
    "background": "string",
    "blocks": [
      {}
    ],
    "translations": {}
  }
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/workflows/reviews/{reviewId}/decide" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"approve","subject":"string","body":"string","html":"string","doc":{"version":1,"width":600,"background":"string","blocks":[{}],"translations":{}}}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "ok": true
}
Schema
okbooleanrequired
true
4XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

5XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

GEThttps://hermeticor.com/p/w/{token}

Hosted "view in browser" copy of a journey email

Parameters

tokenstringpathrequired

Code samples

cURL
curl -X GET "https://hermeticor.com/p/w/{token}"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
"string"
4XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

5XX Default Response

Same as 4XX · POST /v1/workflows/{id}/preview

Updated