curl --request POST \
--url https://platform.trylath.com/email/automation/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"trigger": {
"event": "<string>",
"filter": {}
},
"steps": [
{
"type": "wait",
"seconds": 3888000
}
],
"reenter": true
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
trigger: {event: '<string>', filter: {}},
steps: [{type: 'wait', seconds: 3888000}],
reenter: true
})
};
fetch('https://platform.trylath.com/email/automation/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/email/automation/create"
payload = {
"name": "<string>",
"trigger": {
"event": "<string>",
"filter": {}
},
"steps": [
{
"type": "wait",
"seconds": 3888000
}
],
"reenter": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.trylath.com/email/automation/create"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"trigger\": {\n \"event\": \"<string>\",\n \"filter\": {}\n },\n \"steps\": [\n {\n \"type\": \"wait\",\n \"seconds\": 3888000\n }\n ],\n \"reenter\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"activityId": "<string>",
"result": {
"automation": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"triggerEvent": "<string>",
"triggerFilter": null,
"steps": [
"<unknown>"
],
"reenter": true,
"status": "draft",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"readiness": {
"ok": true,
"problems": [
{
"code": "<string>",
"message": "<string>",
"fix": "<string>"
}
]
}
}
}email.automation.create
Creates an automation as a draft: an event that enrols a contact, an optional payload filter, and a tree of steps (wait, send, branch on a contact property, consent or event field, property.set). Returns readiness problems (unverified sender, unknown topic, unpublished template, missing legal address) so they can be fixed before email.automation.activate. Nothing runs until activated.
curl --request POST \
--url https://platform.trylath.com/email/automation/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"trigger": {
"event": "<string>",
"filter": {}
},
"steps": [
{
"type": "wait",
"seconds": 3888000
}
],
"reenter": true
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
trigger: {event: '<string>', filter: {}},
steps: [{type: 'wait', seconds: 3888000}],
reenter: true
})
};
fetch('https://platform.trylath.com/email/automation/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/email/automation/create"
payload = {
"name": "<string>",
"trigger": {
"event": "<string>",
"filter": {}
},
"steps": [
{
"type": "wait",
"seconds": 3888000
}
],
"reenter": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.trylath.com/email/automation/create"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"trigger\": {\n \"event\": \"<string>\",\n \"filter\": {}\n },\n \"steps\": [\n {\n \"type\": \"wait\",\n \"seconds\": 3888000\n }\n ],\n \"reenter\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"activityId": "<string>",
"result": {
"automation": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"triggerEvent": "<string>",
"triggerFilter": null,
"steps": [
"<unknown>"
],
"reenter": true,
"status": "draft",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"readiness": {
"ok": true,
"problems": [
{
"code": "<string>",
"message": "<string>",
"fix": "<string>"
}
]
}
}
}Authorizations
A Lath API key: lath_live_sk… or lath_test_sk… on a server, lath_live_pk… or lath_test_pk… in a browser.
Headers
Replays the stored response for the same key and input; refuses different input.
Body
1 - 120Show child attributes
Show child attributes
A tree of steps: wait {seconds}, send {template, topic, from}, branch {if, then, else}, property.set {key, value}.
1 - 50 elements- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
May a contact be enrolled again after an earlier run? Default false.
Was this page helpful?

