workflows
POST
https://hermeticor.com /v1/workflows/{id}/simulate Parameters
idstringpathrequiredRequest body
application/json
profilesProfilesItem[]requiredShow child parameters
idstringrequiredfieldsobjecttagsstring[]listIdsstring[]segmentIdsstring[]timezonestringconsentsstring[]eventsEventsItem4[]Show child parameters
profileIdstringrequirednamestringrequiredatstringrequiredpropertiesobjectstartstringrequireduntilstringdefinitionobjectShow child parameters
graphobjectrequiredShow child parameters
startstringnodesNodesItem[]requirededgesEdgesItem[]requiredtriggersTriggersItem[]requiredsettingsobjectrequiredShow child parameters
purposestringmodestringfilterCheckstringfilterFailActionstringprofileFilterobjectgoalobjectquietHoursstring | objectquietHoursActionstringsendWindowobjectsmartSendingobjectenrollmentCapobjectactiveWindowobjectfailureAlertobjecttimezoneSourcestringtimezonestringexitOnobjectsequenceobjectmatchDefinitionsbooleantriggerEventobjectwaitOutcomesobject{
"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
tracesobjectrequirednodeCountsobjectrequiredpathCountsobjectrequiredwarningsErrorsItem[]requiredShow child parameters
severitystringrequiredcodestringrequiredmessagestringrequirednodeIdstringfixstring4XX Default Response
Example
{
"error": {
"code": "string",
"message": "string",
"details": {}
}
}Schema
errorobjectrequiredShow child parameters
codestringrequiredmessagestringrequireddetailsobjectGET
https://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
idstringpathrequiredCode 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[]requiredShow child parameters
keystringrequiredsourcestringrequiredtypestringrequiredGET
https://hermeticor.com /v1/workflows/{id}/report Parameters
fromstringquerytostringqueryidstringpathrequiredCode 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
workflowIdstringrequirednodesobject[]requiredShow child parameters
nodeIdstringrequiredenteredintegerrequiredcompletedintegerrequiredexitedintegerrequirederrorsintegerrequiredwaitingintegerrequiredconvertedintegerrequiredpathsobjectrequiredstatesobjectrequiredgoalobjectrequiredShow child parameters
conversionsintegerrequiredtimeToConvertP50SecnumberrequiredtimeToConvertP90SecnumberrequiredmessagesobjectrequiredGET
https://hermeticor.com /v1/workflows/{id}/enrollments Parameters
limitintegerquerycursorstringquerystatestringqueryprofileIdstringquerynodeIdstringqueryemailstringquerystuckstringqueryremovedstringqueryidstringpathrequiredCode 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[]requiredShow child parameters
idstringrequiredstuckReasonstringprofileEmailstringlastErrorstringnextCursorstringrequiredPOST
https://hermeticor.com /v1/workflows/{id}/enroll Parameters
idstringpathrequiredRequest body
application/json
profileIdsstring[]requiredtriggerTypestringdataobject{
"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
enrolledintegerrequiredskippedSkippedItem[]requiredShow child parameters
profileIdstringrequiredreasonstringrequiredqueuedbooleanUpdated