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}/simulate

Parameters

idstringpathrequired

Request body

application/json
profilesProfilesItem[]required
Show child parameters
idstringrequired
fieldsobject
= {}
tagsstring[]
= []
listIdsstring[]
= []
segmentIdsstring[]
= []
timezonestring
= UTC
consentsstring[]
= []
eventsEventsItem4[]
= []
Show child parameters
profileIdstringrequired
namestringrequired
atstringrequired
propertiesobject
= {}
startstringrequired
untilstring
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
matchDefinitionsboolean
= false
triggerEventobject
waitOutcomesobject
= {}
{
  "profiles": [
    {
      "id": "string",
      "fields": {},
      "tags": [],
      "listIds": [],
      "segmentIds": [],
      "timezone": "UTC",
      "consents": []
    }
  ],
  "events": [],
  "start": "2024-01-01T00:00:00Z",
  "until": "2024-01-01T00:00:00Z",
  "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"
        }
      }
    }
  },
  "matchDefinitions": false,
  "triggerEvent": {},
  "waitOutcomes": {}
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/workflows/{id}/simulate" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profiles":[{"id":"string","fields":{},"tags":[],"listIds":[],"segmentIds":[],"timezone":"UTC","consents":[]}],"events":[],"start":"2024-01-01T00:00:00Z","until":"2024-01-01T00:00:00Z","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"}}}},"matchDefinitions":false,"triggerEvent":{},"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"
    }
  ]
}
Schema
tracesobjectrequired
nodeCountsobjectrequired
pathCountsobjectrequired
warningsErrorsItem[]required
Show child parameters
severitystringrequired
error | warning
codestringrequired
messagestringrequired
nodeIdstring
fixstring
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}/simulate

GEThttps://hermeticor.com/v1/workflows/{id}/fields

Data keys a step of this journey can use in conditions and merge tags: profile fields, properties of the events that start it, and enrollment variables

Parameters

idstringpathrequired

Code samples

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

Responses

200 Default Response
Example
{
  "fields": [
    {
      "key": "string",
      "source": "profile",
      "type": "string"
    }
  ]
}
Schema
fieldsobject[]required
Show child parameters
keystringrequired
sourcestringrequired
profile | event | enrollment
typestringrequired
4XX Default Response

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

5XX Default Response

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

GEThttps://hermeticor.com/v1/workflows/{id}/report

Parameters

fromstringquery
tostringquery
idstringpathrequired

Code samples

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

Responses

200 Default Response
Example
{
  "workflowId": "string",
  "nodes": [
    {
      "nodeId": "string",
      "entered": 0,
      "completed": 0,
      "exited": 0,
      "errors": 0,
      "waiting": 0,
      "converted": 0
    }
  ],
  "paths": {},
  "states": {},
  "goal": {
    "conversions": 0,
    "timeToConvertP50Sec": 0,
    "timeToConvertP90Sec": 0
  },
  "messages": {}
}
Schema
workflowIdstringrequired
nodesobject[]required
Show child parameters
nodeIdstringrequired
enteredintegerrequired
completedintegerrequired
exitedintegerrequired
errorsintegerrequired
waitingintegerrequired
convertedintegerrequired
= 0
pathsobjectrequired
statesobjectrequired
goalobjectrequired
Show child parameters
conversionsintegerrequired
timeToConvertP50Secnumberrequired
timeToConvertP90Secnumberrequired
messagesobjectrequired
4XX Default Response

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

5XX Default Response

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

GEThttps://hermeticor.com/v1/workflows/{id}/enrollments

Parameters

limitintegerquery
= 50
cursorstringquery
statestringquery
active | waiting | completed | exited | failed | paused
profileIdstringquery
nodeIdstringquery
emailstringquery
stuckstringquery
true
removedstringquery
true
idstringpathrequired

Code samples

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

Responses

200 Default Response
Example
{
  "items": [
    {
      "id": "string",
      "stuckReason": "schedule_lost",
      "profileEmail": "string",
      "lastError": "string"
    }
  ],
  "nextCursor": "string"
}
Schema
itemsItemsItem63[]required
Show child parameters
idstringrequired
stuckReasonstring
schedule_lost | overdue | failed | paused | awaiting_signal
profileEmailstring
lastErrorstring
nextCursorstringrequired
4XX Default Response

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

5XX Default Response

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

POSThttps://hermeticor.com/v1/workflows/{id}/enroll

Parameters

idstringpathrequired

Request body

application/json
profileIdsstring[]required
triggerTypestring
= api
dataobject
{
  "profileIds": [
    "string"
  ],
  "triggerType": "api",
  "data": {}
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/workflows/{id}/enroll" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profileIds":["string"],"triggerType":"api","data":{}}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "enrolled": 0,
  "skipped": [
    {
      "profileId": "string",
      "reason": "string"
    }
  ],
  "queued": true
}
Schema
enrolledintegerrequired
skippedSkippedItem[]required
Show child parameters
profileIdstringrequired
reasonstringrequired
queuedboolean
4XX Default Response

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

5XX Default Response

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

Updated