Vai al contenuto
Docs

Crea flussi con trigger e passaggi, eseguili e analizza le loro esecuzioni.

URL di basehttps://api.emailit.com/v2AutenticazioneErroriLimiti di frequenza

Crea un’automazione

Crea un’automazione nello stato draft a partire da un grafo di passaggi e collegamenti. Richiede una chiave API con il permesso full. Le automazioni sono in beta.

L’automazione non fa nulla finché non la avvii. Ogni esecuzione costa 3 crediti all’avvio, e ogni email inviata da send_email o forward_email costa 1 credito in più. In un workspace non verificato, queste azioni possono inviare solo agli indirizzi email degli account dei membri del workspace.

POST/automations

Parametri del corpo

contextstringobbligatorio
Di cosa tratta ogni esecuzione: contact, email o event. Il contesto stabilisce quali trigger e azioni puoi usare e non si può cambiare in seguito. Vedi Contesti.
namestringobbligatorio
Il nome dell’automazione, fino a 191 caratteri.
descriptionstring | null
Descrizione facoltativa.
settingsobject
Le regole delle esecuzioni. Vedi Impostazioni.
stepsobject[]obbligatorio
I passaggi trigger e azione, con almeno un trigger. Vedi Passaggi.
connectionsobject[]obbligatorio
I collegamenti tra i passaggi. Passa [] per un grafo con un solo trigger. Vedi Collegamenti.

Impostazioni

on_step_failurestringpredefinito: stop
stop contrassegna l’esecuzione come failed quando un passaggio non riesce. skip registra il passaggio non riuscito e lascia terminare il resto dell’esecuzione.
allow_reentrybooleanpredefinito: true
false ignora un trigger quando lo stesso contatto (o la stessa email) ha già un’esecuzione in corso in questa automazione.
max_concurrent_runsintegerpredefinito: 0
Numero massimo di esecuzioni contemporanee nello stato running. 0 significa nessun limite.
cooldown_secondsintegerpredefinito: 0
Ignora un trigger quando lo stesso contatto (o la stessa email) ha avviato un’esecuzione in questa automazione entro questo numero di secondi.

Passaggi

keystringobbligatorio
Il tuo identificatore del passaggio, univoco all’interno dell’automazione, ad esempio welcome_email. I collegamenti, le statistiche dei passaggi e gli aggiornamenti fanno riferimento ai passaggi tramite la chiave.
typestringobbligatorio
trigger o action.
triggerstring
Il nome del trigger, obbligatorio quando type è trigger. Vedi Trigger.
actionstring
Il nome dell’azione, obbligatorio quando type è action. Vedi Azioni.
configobject
Le impostazioni del trigger o dell’azione.

Collegamenti

fromstringobbligatorio
La chiave del passaggio da cui parte il collegamento.
tostringobbligatorio
La chiave del passaggio successivo.
branchstringpredefinito: default
Quale esito del passaggio from segue questo collegamento. I passaggi condition usano yes e no; i passaggi experiment usano le chiavi delle varianti. Tutti gli altri passaggi usano default.

Contesti

Contesto Un’esecuzione riguarda Trigger Regole
contact Un contatto. send_email invia a quel contatto. contact.*, system.* Uno o più trigger. Devono essere tutti collegati alla stessa prima azione.
email Un’email (inviata o ricevuta). email.*, system.* Uno o più trigger. Devono essere tutti collegati alla stessa prima azione.
event Solo il payload del trigger. event.*, system.* Esattamente un trigger.

Ogni azione deve essere raggiungibile da un trigger. Un’esecuzione parte dall’azione collegata al trigger che è scattato e segue i collegamenti:

  • condition segue solo il collegamento il cui branch è yes o no, in base al risultato.
  • experiment segue i collegamenti della variante scelta. Quando quel percorso finisce, l’esecuzione prosegue sui collegamenti default del passaggio experiment.
  • wait ritarda il passaggio successivo.
  • Tutte le altre azioni seguono i propri collegamenti default. Un passaggio con più collegamenti in uscita li esegue tutti.

Un’esecuzione è completed quando non restano passaggi, failed quando un passaggio non riesce (con on_step_failure: "stop") e canceled quando interrompi l’automazione.

Trigger

Trigger Contesto Quando scatta
contact.added_to_audience contact Un contatto si iscrive a una lista, reiscrizioni comprese.
contact.removed_from_audience contact Un iscritto viene eliminato da una lista.
contact.updated contact Un contatto viene aggiornato.
contact.loaded_email contact Un destinatario che è un contatto del workspace apre un’email.
contact.clicked_in_email contact Un destinatario che è un contatto del workspace fa clic su un link tracciato.
contact.date_anniversary contact Ogni giorno alle 00:00 UTC, per i contatti il cui campo personalizzato di tipo data (YYYY-MM-DD) ha il mese e il giorno di oggi.
contact.on_date contact Ogni giorno alle 00:00 UTC, per i contatti il cui campo personalizzato di tipo data corrisponde alla data di oggi.
contact.visits_url, contact.on_purchase, contact.on_event contact Accettati, ma per ora Emailit non li fa scattare.
email.received email Arriva un’email in entrata.
email.delivered, email.bounced, email.complained, email.loaded, email.clicked, email.failed, email.suppressed, email.canceled email Si verifica l’evento email con lo stesso nome.
event.<name> event Qualsiasi nome che inizia con event.. Per ora Emailit non genera eventi event.*; avvia le automazioni con contesto event tramite system.manual.
system.manual tutti Chiami Avvia un’esecuzione.
system.schedule tutti Accettato, ma per ora Emailit non fa scattare i trigger programmati.

Campi config dei trigger:

audience_idstring
Per contact.added_to_audience e contact.removed_from_audience: scatta solo per questa lista (aud_…).
date_fieldstring
Per contact.date_anniversary e contact.on_date: la chiave del campo personalizzato che contiene la data, ad esempio birthday.
filterobject

Scatta solo quando l’evento corrisponde: { "match": "all", "rules": [{ "field": "subject", "operator": "contains", "value": "Invoice" }] }. match è all (predefinito) o any. field è un percorso con punti all’interno dell’object dell’evento, ad esempio to o email.subject; un prefisso payload. iniziale viene ignorato.

Operatori: equals, not_equals, contains, not_contains, starts_with, ends_with, greater_than, less_than, in, not_in, is_set, is_not_set. Tutti gli operatori tranne is_set e is_not_set richiedono un value; in e not_in accettano un array.

Azioni

Azione Contesto Configurazione
send_email tutti type (obbligatorio, template), template_id (obbligatorio: un ID tem_ o l’alias di un template pubblicato), from, subject, reply_to, to
forward_email email, event to (obbligatorio), from, subject, email_id
wait tutti seconds (obbligatorio, da 0 a 2.592.000, cioè 30 giorni)
condition tutti filter (obbligatorio, vedi sotto)
experiment tutti variants (obbligatorio), control
call_webhook tutti url (obbligatorio), method, headers, body
run_automation tutti automation_id (obbligatorio)
end tutti Nessuno
add_to_audience contact audience_id (obbligatorio)
remove_from_audience contact audience_id (obbligatorio)
edit_contact contact fields (obbligatorio)
add_to_suppressions email, event type, reason, email
remove_from_suppressions email, event email
create_contact email, event email, first_name, audience_id
  • send_email invia il template. Per impostazione predefinita from è il mittente del template, e deve appartenere a un dominio di invio verificato. subject sostituisce l’oggetto del template. reply_to è un indirizzo o un array di indirizzi. Nel contesto contact l’email va al contatto dell’esecuzione; nei contesti email ed event imposta to.
  • forward_email inoltra l’email dell’esecuzione (o l’email indicata in email_id) a to. Per impostazione predefinita from è il mittente originale e subject è Fwd: <original subject>.
  • condition accetta { "match": "all" | "any", "rules": [...] } con gli stessi operatori dei filtri dei trigger. I campi senza prefisso si riferiscono al contatto dell’esecuzione (first_name, custom_fields.plan) o all’email (rcpt_to, subject); per essere espliciti, aggiungi al campo il prefisso contact., email., payload. o meta.. Il passaggio prosegue su yes o no.
  • experiment sceglie a caso, in base al peso, una delle variants (compreso control), ciascuna nella forma { "key": "a", "weight": 50 }, e prosegue sulla diramazione che porta il nome della chiave scelta.
  • call_webhook invia una richiesta HTTP (metodo predefinito POST, Content-Type JSON) e registra la classe dello stato (2xx, 4xx, 5xx) oppure timeout o network_error. Una risposta diversa da 2xx non fa fallire il passaggio.
  • run_automation avvia un’esecuzione di un’altra automazione attiva con il payload di questa esecuzione. L’esecuzione corrente prosegue.
  • edit_contact accetta fields: [{ "key": "first_name", "value": "Ada" }]. Le chiavi email, first_name, last_name e unsubscribed aggiornano il contatto; qualsiasi altra chiave imposta un campo personalizzato.
  • add_to_suppressions sopprime l’indirizzo dell’esecuzione (type predefinito recipient, reason predefinito automation). remove_from_suppressions lo rimuove. Nel contesto event, passa email.
  • create_contact crea il contatto (o trova quello esistente) e facoltativamente lo iscrive a audience_id. Nel contesto email, per impostazione predefinita email è il destinatario dell’email.

I valori stringa nella configurazione di qualsiasi azione possono usare segnaposto che Emailit compila quando il passaggio viene eseguito: {{contact.email}}, {{email.mail_from}}, {{payload.object.subject}} o {{meta.source_event_id}}, ad esempio "to": "{{email.mail_from}}". I template inviati da send_email elaborano anche direttamente i campi del contatto, come {{ first_name }}.

Restituisce

Restituisce 201 Created con l’automazione in data, compresi l’ID di ogni passaggio (aus_…) e i collegamenti. status è draft.

La creazione controlla la struttura del grafo: nomi dei trigger e delle azioni validi per il contesto, chiavi univoche, collegamenti validi, raggiungibilità, e che ogni indirizzo from di send_email usi un dominio di invio verificato. Non controlla che la configurazione di ogni azione sia completa; questo controllo lo fa Aggiorna un’automazione. In caso di errore restituisce 400 con errors organizzato per percorso del campo.

POST/automations
Terminal
curl -X POST https://api.emailit.com/v2/automations \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome series",
    "context": "contact",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "settings": { "allow_reentry": false },
    "steps": [
      {
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "key": "welcome_email",
        "type": "action",
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "key": "wait_1_day",
        "type": "action",
        "action": "wait",
        "config": { "seconds": 86400 }
      },
      {
        "key": "is_free_user",
        "type": "action",
        "action": "condition",
        "config": {
          "filter": {
            "match": "all",
            "rules": [{ "field": "custom_fields.plan", "operator": "is_not_set" }]
          }
        }
      },
      {
        "key": "upgrade_tips",
        "type": "action",
        "action": "send_email",
        "config": { "type": "template", "template_id": "getting-started-tips" }
      },
      { "key": "done", "type": "action", "action": "end" }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email" },
      { "from": "welcome_email", "to": "wait_1_day" },
      { "from": "wait_1_day", "to": "is_free_user" },
      { "from": "is_free_user", "to": "upgrade_tips", "branch": "yes" },
      { "from": "is_free_user", "to": "done", "branch": "no" }
    ]
  }'
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "draft",
    "settings": { "allow_reentry": false },
    "last_triggered_at": null,
    "published_at": null,
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-01T09:41:05.318274+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "key": "wait_1_day",
        "type": "action",
        "trigger": null,
        "action": "wait",
        "config": { "seconds": 86400 }
      },
      {
        "id": "aus_3HOgOzxaXBgVRpLFtpvJNo4vd5c",
        "key": "is_free_user",
        "type": "action",
        "trigger": null,
        "action": "condition",
        "config": {
          "filter": {
            "match": "all",
            "rules": [{ "field": "custom_fields.plan", "operator": "is_not_set" }]
          }
        }
      },
      {
        "id": "aus_3gCI5SWMPFVhOSawR6nz8sF55wp",
        "key": "upgrade_tips",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "getting-started-tips" }
      },
      {
        "id": "aus_3Pq7Wd2LxN8cVt5RmK0sHy4BfJe",
        "key": "done",
        "type": "action",
        "trigger": null,
        "action": "end",
        "config": {}
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" },
      { "from": "welcome_email", "to": "wait_1_day", "branch": "default" },
      { "from": "wait_1_day", "to": "is_free_user", "branch": "default" },
      { "from": "is_free_user", "to": "upgrade_tips", "branch": "yes" },
      { "from": "is_free_user", "to": "done", "branch": "no" }
    ]
  },
  "message": "Automation was successfully created.",
  "notify": true
}

Recupera un’automazione

Recupera un’automazione con il suo grafo completo. Richiede una chiave API con il permesso full.

GET/automations/{id}

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Restituisce

Restituisce l’automazione in data.

idstring
L’ID dell’automazione, con prefisso aut_.
contextstring
contact, email o event.
namestring
Il nome dell’automazione.
descriptionstring | null
Descrizione facoltativa.
statusstring
draft, running, paused, stopped o archived.
settingsobject
Le regole delle esecuzioni: on_step_failure, allow_reentry, max_concurrent_runs, cooldown_seconds. Vuoto se non ne hai impostata nessuna.
last_triggered_atstring | null
Quando l’automazione ha avviato l’ultima esecuzione.
published_atstring | null
Quando l’automazione è stata avviata per la prima volta.
stepsobject[]
Per ogni passaggio, id (aus_…), key, type, trigger, action e config. I dettagli delle esecuzioni fanno riferimento ai passaggi tramite id; le statistiche tramite key.
connectionsobject[]
Per ogni collegamento, le chiavi dei passaggi from e to e il suo branch.

Per il significato di ogni trigger, azione e impostazione, vedi Crea un’automazione. Restituisce 404 se l’automazione non esiste o è stata eliminata.

GET/automations/{id}
Terminal
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "running",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-03T14:12:40.551870+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "key": "wait_1_day",
        "type": "action",
        "trigger": null,
        "action": "wait",
        "config": { "seconds": 86400 }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" },
      { "from": "welcome_email", "to": "wait_1_day", "branch": "default" }
    ]
  }
}

Aggiorna un’automazione

Aggiorna il nome, la descrizione, le impostazioni o il grafo di un’automazione. Richiede una chiave API con il permesso full. Il contesto non si può cambiare.

Per cambiare il grafo, invia insieme steps e connections: sostituiscono il grafo attuale. I passaggi la cui key esiste già mantengono l’ID e la cronologia delle esecuzioni, i passaggi che ometti vengono eliminati e le nuove chiavi vengono aggiunte. A differenza della creazione, l’aggiornamento convalida anche la configurazione di ogni azione (ad esempio, send_email richiede type e template_id, wait richiede seconds).

Metti in pausa l’automazione prima di cambiare il grafo di un’automazione attiva, poi avviala di nuovo perché i nuovi trigger abbiano effetto.

POST/automations/{id}

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Parametri del corpo

namestring
Il nome, fino a 191 caratteri.
descriptionstring
La descrizione.
settingsobject
Sostituisce tutte le impostazioni: on_step_failure, allow_reentry, max_concurrent_runs, cooldown_seconds. Vedi Impostazioni.
stepsobject[]
L’elenco completo dei passaggi. Obbligatorio quando invii connections. Vedi Passaggi.
connectionsobject[]
L’elenco completo dei collegamenti. Obbligatorio quando invii steps. Vedi Collegamenti.

Restituisce

Restituisce l’automazione aggiornata in data, con message e notify. Se la convalida non riesce restituisce 400 con errors organizzato per percorso del campo, e 404 se l’automazione non esiste.

POST/automations/{id}
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome series (v2)",
    "settings": { "allow_reentry": false, "on_step_failure": "skip" }
  }'
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series (v2)",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "paused",
    "settings": { "allow_reentry": false, "on_step_failure": "skip" },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-04T08:15:22.730115+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully updated.",
  "notify": true
}

Elenca le automazioni

Restituisce le automazioni del workspace, a partire dalla più recente, senza i loro passaggi e collegamenti. Richiede una chiave API con il permesso full. Le automazioni eliminate non vengono elencate.

GET/automations

Parametri di query

pageintegerpredefinito: 1
Numero di pagina, a partire da 1.
per_pageintegerpredefinito: 25
Automazioni per pagina, da 1 a 100.
filter[context]string
Solo le automazioni con questo contesto: contact, email o event.
filter[status]string
Solo le automazioni con questo stato: draft, running, paused, stopped o archived.
filter[name]string
Corrispondenza su una parte del nome, senza distinzione tra maiuscole e minuscole.
sortstringpredefinito: created_at
Campo di ordinamento: name, created_at, updated_at o last_triggered_at.
orderstringpredefinito: desc
Direzione dell’ordinamento: asc o desc.

Puoi usare anche i filtri generici key.condition=value su name, status, context e created_at, con match. Vedi Filtri e ordinamento.

Restituisce

dataobject[]
Le automazioni di questa pagina: id, context, name, description, status, settings, last_triggered_at, published_at, created_at, updated_at. In questo elenco settings è sempre un oggetto vuoto; per leggerlo, recupera l’automazione.
total_recordsinteger
Numero di automazioni corrispondenti.
per_pageinteger
Dimensione di pagina usata.
current_pageinteger
Il numero di questa pagina.
total_pagesinteger
Numero di pagine.
GET/automations
Terminal
curl -G https://api.emailit.com/v2/automations \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  --data-urlencode "filter[status]=running" \
  -d sort=last_triggered_at \
  -d per_page=50
JSON
{
  "data": [
    {
      "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
      "context": "contact",
      "name": "Welcome series",
      "description": "Welcome new subscribers, then nudge free users a day later.",
      "status": "running",
      "settings": {},
      "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
      "published_at": "2026-10-01T10:00:02.204118+00:00",
      "created_at": "2026-10-01T09:41:05.318274+00:00",
      "updated_at": "2026-10-03T14:12:40.551870+00:00"
    }
  ],
  "total_records": 1,
  "per_page": 50,
  "current_page": 1,
  "total_pages": 1
}

Elimina un’automazione

Elimina un’automazione. L’automazione scompare dagli elenchi e smette di reagire ai trigger. Richiede una chiave API con il permesso full.

Le esecuzioni già in corso non vengono annullate. Per annullarle, interrompi l’automazione prima di eliminarla.

DELETE/automations/{id}

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Restituisce

Restituisce un message che conferma l’eliminazione. Restituisce 404 se l’automazione non esiste o è già stata eliminata.

DELETE/automations/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "message": "Automation was deleted successfully.",
  "notify": true
}

Avvia un’automazione

Imposta lo stato dell’automazione su running. Da quel momento i trigger corrispondenti avviano esecuzioni; gli eventi avvenuti prima dell’avvio no. Richiede una chiave API con il permesso full.

Puoi avviare un’automazione draft, paused o stopped. Il primo avvio imposta published_at.

L’avvio non convalida di nuovo il grafo. Se hai creato l’automazione con Crea un’automazione, che controlla solo la struttura, assicurati che la configurazione di ogni azione sia completa, oppure invia una volta il grafo tramite Aggiorna un’automazione, che lo convalida per intero. Un passaggio con una configurazione incompleta non riesce quando un’esecuzione lo raggiunge.

POST/automations/{id}/start

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Restituisce

Restituisce l’automazione in data con status impostato su running. Restituisce 404 se l’automazione non esiste.

POST/automations/{id}/start
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/start \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "running",
    "settings": { "allow_reentry": false },
    "last_triggered_at": null,
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-01T10:00:02.204118+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully started.",
  "notify": true
}

Metti in pausa un’automazione

Imposta lo stato dell’automazione su paused. I suoi trigger smettono di avviare nuove esecuzioni, ma le esecuzioni già in corso proseguono, comprese quelle in attesa su un passaggio wait. Richiede una chiave API con il permesso full.

Per annullare anche le esecuzioni in corso, interrompi l’automazione invece di metterla in pausa. Per far scattare di nuovo i trigger, avviala un’altra volta.

POST/automations/{id}/pause

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Restituisce

Restituisce l’automazione in data con status impostato su paused. Restituisce 404 se l’automazione non esiste.

POST/automations/{id}/pause
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/pause \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "paused",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-04T08:10:51.004732+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully paused.",
  "notify": true
}

Interrompi un’automazione

Imposta lo stato dell’automazione su stopped e annulla ogni esecuzione ancora running; queste esecuzioni passano allo stato canceled e i passaggi rimanenti non vengono eseguiti. Richiede una chiave API con il permesso full.

L’interruzione è disponibile solo tramite l’API. Per lasciare proseguire le esecuzioni in corso, metti in pausa l’automazione invece di interromperla. Puoi avviare di nuovo un’automazione interrotta; le nuove esecuzioni ripartono da zero.

POST/automations/{id}/stop

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Restituisce

Restituisce l’automazione in data con status impostato su stopped. Restituisce 404 se l’automazione non esiste.

POST/automations/{id}/stop
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stop \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "stopped",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-05T16:45:09.882301+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully stopped.",
  "notify": true
}

Avvia un’esecuzione

Fa scattare il trigger system.manual con un payload a tua scelta. L’automazione deve essere running e avere un passaggio trigger system.manual; altrimenti non parte nessuna esecuzione. Richiede una chiave API con il permesso full. I trigger manuali sono disponibili solo tramite l’API.

L’esecuzione parte in modo asincrono e costa 3 crediti come qualsiasi altra esecuzione. La trovi con Elenca le esecuzioni.

POST/automations/{id}/trigger

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Parametri del corpo

payloadobject

I dati per l’esecuzione. Emailit aggiunge automation_id e salva il risultato come payload dell’esecuzione. I passaggi possono leggerlo con segnaposto come {{payload.order_id}} e con condizioni come payload.plan.

Di cosa tratta l’esecuzione dipende dal contesto dell’automazione:

  • contact: passa contact_id (con_…). Le azioni sui contatti e send_email usano quel contatto.
  • email: passa email_id (em_…). Le azioni sulle email usano quell’email.
  • event: dati qualsiasi. Imposta to o email nella configurazione delle azioni, ad esempio "to": "{{payload.customer_email}}".

Restituisce

Restituisce 200 con un message quando il trigger è stato messo in coda. Restituisce 422 se l’automazione non è running e 404 se non esiste.

POST/automations/{id}/trigger
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/trigger \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
      "plan": "pro",
      "order_id": "ord_1042"
    }
  }'
JSON
{
  "message": "Automation trigger dispatched."
}

Elenca le esecuzioni

Restituisce le esecuzioni di un’automazione, a partire dalla più recente. Ogni esecuzione è un percorso attraverso il grafo, avviato da un trigger. Richiede una chiave API con il permesso full.

GET/automations/{id}/runs

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Parametri di query

pageintegerpredefinito: 1
Numero di pagina, a partire da 1.
per_pageintegerpredefinito: 25
Esecuzioni per pagina, da 1 a 100.
filter[status]string
Solo le esecuzioni con questo stato: running, completed, failed o canceled.

Puoi anche filtrare con key.condition=value su status, event e created_at (ad esempio created_at.after=2026-10-01) e ordinare con order e direction sulle stesse chiavi. Vedi Filtri e ordinamento.

Restituisce

dataobject[]
Le esecuzioni di questa pagina. Vedi i campi qui sotto.
total_records, per_page, current_page, total_pagesinteger
I dettagli della paginazione.

Ogni esecuzione ha:

idstring
L’ID dell’esecuzione, con prefisso aur_.
automation_idstring
L’automazione (aut_…).
contact_idstring | null
Il contatto dell’esecuzione (con_…) nel contesto contact.
email_idstring | null
L’email dell’esecuzione (em_…) nel contesto email.
event_idstring | null
L’ID dell’evento di origine, quando il payload del trigger ne ha uno.
eventstring
Il trigger che ha avviato l’esecuzione, ad esempio contact.added_to_audience o system.manual.
payloadobject
In questo elenco è sempre un oggetto vuoto. Per leggere il payload del trigger, recupera l’esecuzione.
metaobject
In questo elenco è sempre un oggetto vuoto. Per leggere i metadati, come failure_reason, recupera l’esecuzione.
statusstring
running, completed, failed o canceled (l’automazione è stata interrotta).
started_at, completed_at, created_at, updated_atstring | null
Timestamp in UTC.
GET/automations/{id}/runs
Terminal
curl -G https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  --data-urlencode "filter[status]=failed"
JSON
{
  "data": [
    {
      "id": "aur_3q6GdFk2eRSG093grI0v9e6REu8",
      "automation_id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
      "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
      "email_id": null,
      "event_id": null,
      "event": "contact.added_to_audience",
      "payload": {},
      "meta": {},
      "status": "failed",
      "started_at": "2026-10-03T14:12:40.551870+00:00",
      "completed_at": "2026-10-03T14:12:41.093355+00:00",
      "created_at": "2026-10-03T14:12:40.551870+00:00",
      "updated_at": "2026-10-03T14:12:41.093355+00:00"
    }
  ],
  "total_records": 1,
  "per_page": 25,
  "current_page": 1,
  "total_pages": 1
}

Recupera un’esecuzione

Recupera un’esecuzione di un’automazione, compresi i passaggi che ha eseguito. Richiede una chiave API con il permesso full.

GET/automations/{id}/runs/{run_id}

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).
run_idstringobbligatorio
L’ID dell’esecuzione (aur_…).

Restituisce

Restituisce l’esecuzione in data con i campi descritti in Elenca le esecuzioni, più payload e meta completi e un array run_steps.

payloadobject | null
Il payload del trigger: i dati dell’evento ({ "object": { … } }) o il payload che hai passato ad Avvia un’esecuzione, con l’aggiunta di automation_id.
metaobject | null
source_event_id collega l’esecuzione all’evento che l’ha avviata. Le esecuzioni non riuscite possono avere failure_reason: insufficient_credits (non è stato possibile addebitare i 3 crediti dell’esecuzione) o run_timeout (l’esecuzione era ancora running dopo 72 ore senza alcun passaggio in attesa).
run_stepsobject[]

Una voce per ogni passaggio raggiunto dall’esecuzione:

  • step_id: l’ID del passaggio (aus_…). Confrontalo con steps[].id di Recupera un’automazione.
  • status: running, waiting (un passaggio wait non ancora trascorso), completed o failed.
  • data: il risultato del passaggio. Ad esempio send_email restituisce { "result": "email_queued", "email_oid": "em_…", "to": "…" }, condition restituisce { "result": true, "branch": "yes" } e i passaggi non riusciti restituiscono { "error": "…" }.
  • started_at, completed_at, created_at.

Restituisce 404 se l’automazione o l’esecuzione non esiste.

GET/automations/{id}/runs/{run_id}
Terminal
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs/aur_3q6GdFk2eRSG093grI0v9e6REu8 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aur_3q6GdFk2eRSG093grI0v9e6REu8",
    "automation_id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
    "email_id": null,
    "event_id": null,
    "event": "contact.added_to_audience",
    "payload": {
      "object": {
        "id": "sub_3Fh2pQx9LmZr4Wt7Nc0bVd8KsYe",
        "object": "subscriber",
        "subscribed": true,
        "audience": { "id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "name": "Newsletter" },
        "contact": { "id": "con_3munwNLaXKUARc6ff9wPtxKVq4A", "email": "ada@example.com" }
      }
    },
    "meta": { "source_event_id": "evt_3Kd8sWq1NzXc5Vb7Mt2LpRy0HgA" },
    "status": "running",
    "started_at": "2026-10-03T14:12:40.551870+00:00",
    "completed_at": null,
    "created_at": "2026-10-03T14:12:40.551870+00:00",
    "updated_at": "2026-10-03T14:12:40.551870+00:00",
    "run_steps": [
      {
        "step_id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "status": "completed",
        "data": {
          "result": "email_queued",
          "outcome": "accepted",
          "email_oid": "em_3Cp8cMgPskzB8tIlgUyNJkpDp9O",
          "to": "ada@example.com"
        },
        "started_at": "2026-10-03T14:12:40.702113+00:00",
        "completed_at": "2026-10-03T14:12:40.918540+00:00",
        "created_at": "2026-10-03T14:12:40.702113+00:00"
      },
      {
        "step_id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "status": "waiting",
        "data": { "status": "waiting", "delayMs": 86400000, "seconds": 86400 },
        "started_at": "2026-10-03T14:12:41.004221+00:00",
        "completed_at": null,
        "created_at": "2026-10-03T14:12:41.004221+00:00"
      }
    ]
  }
}

Recupera le statistiche

Restituisce i conteggi di ogni passaggio di un’automazione, indicizzati per chiave del passaggio. Richiede una chiave API con il permesso full.

GET/automations/{id}/stats

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).

Parametri di query

sincestring
Conta solo le esecuzioni dei passaggi create in questo momento o dopo. Data e ora RFC 3339, ad esempio 2026-10-01T00:00:00Z.
untilstring
Conta solo le esecuzioni dei passaggi create in questo momento o prima. Data e ora RFC 3339.
run_ids[]string
Conta solo queste esecuzioni (aur_…). Ripeti il parametro per indicare più esecuzioni.

Restituisce

Restituisce data, un oggetto con una voce per ogni chiave di passaggio. I passaggi che nessuna esecuzione ha raggiunto hanno total pari a 0.

totalinteger
Quante volte le esecuzioni hanno raggiunto il passaggio.
by_statusobject
Conteggi per stato del passaggio: running, waiting, completed, failed.
by_outcomeobject
Conteggi per esito. send_email e forward_email: accepted, poi lo stato più recente dell’email (delivered, loaded, clicked, bounced, failed, complained, unsubscribed, canceled). condition: matched, not_matched. experiment: la chiave della variante scelta. call_webhook: 2xx, 4xx, 5xx, timeout, network_error. Passaggi non riusciti: error.
funnelobject
Solo per i passaggi send_email. Conteggi cumulativi: accepted include ogni email che è andata oltre, delivered include le email caricate e cliccate, e loaded include quelle cliccate. bounced, failed, complained e unsubscribed sono conteggi semplici.
GET/automations/{id}/stats
Terminal
curl -G https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stats \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d since=2026-10-01T00:00:00Z
JSON
{
  "data": {
    "joined": { "total": 0, "by_status": {}, "by_outcome": {} },
    "welcome_email": {
      "total": 412,
      "by_status": { "completed": 409, "failed": 3 },
      "by_outcome": { "delivered": 251, "loaded": 98, "clicked": 41, "bounced": 19, "error": 3 },
      "funnel": {
        "accepted": 390,
        "delivered": 390,
        "loaded": 139,
        "clicked": 41,
        "bounced": 19,
        "failed": 0,
        "complained": 0,
        "unsubscribed": 0
      }
    },
    "wait_1_day": {
      "total": 409,
      "by_status": { "completed": 352, "waiting": 57 },
      "by_outcome": {}
    },
    "is_free_user": {
      "total": 352,
      "by_status": { "completed": 352 },
      "by_outcome": { "matched": 270, "not_matched": 82 }
    },
    "upgrade_tips": {
      "total": 270,
      "by_status": { "completed": 270 },
      "by_outcome": { "accepted": 12, "delivered": 180, "loaded": 61, "clicked": 17 },
      "funnel": {
        "accepted": 270,
        "delivered": 258,
        "loaded": 78,
        "clicked": 17,
        "bounced": 0,
        "failed": 0,
        "complained": 0,
        "unsubscribed": 0
      }
    },
    "done": {
      "total": 82,
      "by_status": { "completed": 82 },
      "by_outcome": {}
    }
  }
}

Recupera le statistiche dei passaggi

Restituisce i conteggi di un passaggio di un’automazione. Richiede una chiave API con il permesso full. I campi sono gli stessi di Recupera le statistiche.

GET/automations/{id}/steps/{step_key}/stats

Parametri di percorso

idstringobbligatorio
L’ID dell’automazione (aut_…).
step_keystringobbligatorio
La key del passaggio, ad esempio welcome_email.

Parametri di query

sincestring
Conta solo le esecuzioni dei passaggi create in questo momento o dopo. Data e ora RFC 3339.
untilstring
Conta solo le esecuzioni dei passaggi create in questo momento o prima. Data e ora RFC 3339.

Restituisce

Restituisce data con total, by_status, by_outcome e, per i passaggi send_email, funnel. Restituisce 404 se l’automazione o la chiave del passaggio non esiste.

GET/automations/{id}/steps/{step_key}/stats
Terminal
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/steps/welcome_email/stats \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "total": 412,
    "by_status": { "completed": 409, "failed": 3 },
    "by_outcome": { "delivered": 251, "loaded": 98, "clicked": 41, "bounced": 19, "error": 3 },
    "funnel": {
      "accepted": 390,
      "delivered": 390,
      "loaded": 139,
      "clicked": 41,
      "bounced": 19,
      "failed": 0,
      "complained": 0,
      "unsubscribed": 0
    }
  }
}

Questa pagina ti è stata utile?

Grazie del feedback.

Grazie, leggiamo ogni messaggio.