Vai al contenuto
Docs

Crea campagne, scegli le liste e i segmenti, e inviale o programmale.

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

Crea una campagna

Crea una campagna nello stato draft. Richiede una chiave API con il permesso full. Genera un evento campaign.created.

Una nuova campagna non ha destinatari. Scegli le sue liste e i suoi segmenti con Aggiorna una campagna, poi inviala o programmala. I crediti vengono addebitati quando la campagna viene inviata: 2 crediti per email.

POST/campaigns

Parametri del corpo

namestringobbligatorio
Nome interno della campagna. I destinatari non lo vedono. Gli altri endpoint delle campagne accettano il nome al posto dell’ID, quindi se li usi in questo modo mantieni i nomi univoci.
subjectstring
Riga dell’oggetto. Supporta tag di unione come {{first_name}}.
from_emailstring
Indirizzo del mittente. Deve appartenere a un dominio di invio verificato del workspace, ad esempio news@acme.com.
from_namestring
Nome visualizzato del mittente, ad esempio Acme. Il messaggio viene inviato da Acme <news@acme.com>.
reply_tostring
Indirizzo Reply-To. Quando la campagna viene inviata, il valore predefinito è from_email.
htmlstring
Corpo HTML che Emailit invia, elaborato con Temple per ogni destinatario. Supporta i tag di unione {{first_name}}, {{last_name}}, {{email}}, {{unsubscribe_url}} e {{cf.<key>}} per i campi personalizzati, con valori di riserva e blocchi {{#if}}. Imposta il corpo quando crei la campagna.
textstring
Corpo in testo semplice. Supporta gli stessi tag di unione di html.
preview_textstring
Testo di anteprima che le inbox mostrano dopo l’oggetto. Supporta i tag di unione. Quando la campagna viene inviata, Emailit lo aggiunge come testo nascosto all’inizio del corpo HTML, a meno che l’HTML non contenga già lo stesso testo in un elemento nascosto (ad esempio da un <mj-preview> MJML).
contentstring
Sorgente del corpo nell’editor (ad esempio MJML), salvato così com’è. Se non passi né html né text e content_type è html o text, Emailit invia content come corpo HTML o in testo semplice.
content_typestringpredefinito: html
Formato di content: html, text o mjml. Per il team di Emailit, Emailit compila il contenuto mjml in html (alpha). Per tutti gli altri mjml è un’etichetta: invia l’HTML compilato in html.
utm_trackingbooleanpredefinito: false
Imposta true per aggiungere i parametri UTM a ogni link http e https quando la campagna viene inviata, così le tue analisi web attribuiscono le visite alla campagna. I parametri che un link ha già vengono mantenuti, e i link di disiscrizione e della versione web non vengono modificati. Vedi Opzioni di invio.
utm_paramsobject | null

Valori UTM da usare quando utm_tracking è attivo. Ogni chiave imposta un parametro utm_:

  • source (predefinito emailit), medium (predefinito email) e campaign (predefinito {campaign_name}).
  • content, term e id, non aggiunti per impostazione predefinita.

I valori sono testo fino a 191 caratteri e possono contenere i token {campaign_name} (il nome della campagna in minuscolo, con trattini), {campaign_id}, {subject}, {variant} (il nome della versione del test A/B) e {send_date} (YYYY-MM-DD). Chiavi e token sconosciuti restituiscono 422. Le chiavi che non imposti mantengono i valori predefiniti; null o {} li ripristina tutti.

smart_sending_hoursinteger | null
Salta i contatti a cui un’altra campagna del workspace ha inviato un’email in questo numero di ore, da 1 a 168. null (predefinito) disattiva lo smart sending. Il controllo avviene quando la campagna inizia l’invio. Le email delle automazioni e dell’API email non contano.
exclude_unengagedbooleanpredefinito: false
Imposta true per saltare i contatti che hanno ricevuto 3 o più email di campagne negli ultimi 90 giorni e non ne hanno aperta né cliccata nessuna.
tagsstring[]
Etichette per organizzare le campagne. Fino a 20 tag di massimo 50 caratteri ciascuno. I tag vuoti vengono scartati e i duplicati rimossi, senza distinzione tra maiuscole e minuscole. Se invii tags, l’elenco viene sostituito.
send_strategystringpredefinito: immediate
Come viene distribuito l’invio nel tempo: immediate, throttled, local_time o smart_time. Salvata con la campagna e usata quando la invii senza una strategia.
send_optionsobject | null
Opzioni di send_strategy, salvate così come le passi e controllate per intero quando la campagna viene inviata. Vedi Invia o programma una campagna.
ab_testobject | null

Un test A/B con da 2 a 5 versioni. Una quota casuale dei destinatari viene divisa in parti uguali tra le versioni. Dopo duration_hours, il resto dei destinatari riceve la versione con il risultato migliore. Mentre il test è in corso, lo stato della campagna è testing. I test A/B vengono inviati con la strategia immediate, subito o a un orario programmato.

  • enabled (boolean, predefinito true): false disattiva il test.
  • winner_metric (string, predefinito opened): opened, clicked, orders (ordini attribuiti per email inviata) o revenue (ricavi attribuiti per email inviata). orders e revenue fanno parte dell’e-commerce, che è in alpha: le altre richieste restituiscono 403 con error: "commerce_alpha".
  • test_size_percent (integer, predefinito 20): quota dei destinatari inclusa nel test, da 10 a 100. Con 100 tutti sono nel test e non viene inviata nessuna versione vincente.
  • duration_hours (integer, predefinito 4): quanto dura il test prima dell’invio della versione vincente, da 1 a 168.
  • variants (object[], obbligatorio): da 2 a 5 versioni. Ognuna può impostare name (fino a 100 caratteri, predefiniti A, B, C e così via), subject, preview_text, from_name, from_email, reply_to, html e text. I campi che una versione omette vengono presi dalla campagna. Almeno una versione deve impostare un oggetto, un testo di anteprima, un nome o un indirizzo del mittente oppure un corpo.

Restituisce

Restituisce 201 Created con l’oggetto campagna. status è draft. La risposta non riporta html, text né content. Include le impostazioni qui sopra, send_completes_at e send_summary (entrambi null finché la campagna non viene inviata) e ab_test con le versioni e i loro ID (cvr_…). Vedi Recupera una campagna.

Restituisce 400 se manca name, 403 se la chiave API non ha il permesso full e 422 se un’impostazione o il test A/B non è valido.

POST/campaigns
Terminal
curl -X POST https://api.emailit.com/v2/campaigns \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "October newsletter",
    "subject": "October news for {{first_name}}",
    "from_email": "news@acme.com",
    "from_name": "Acme",
    "reply_to": "support@acme.com",
    "html": "<p>Hi {{first_name}},</p><p>Here is what changed this month.</p><p><a href=\"{{unsubscribe_url}}\">Unsubscribe</a></p>",
    "text": "Hi {{first_name}}, here is what changed this month. Unsubscribe: {{unsubscribe_url}}"
  }'
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "draft",
  "subject": "October news for {{first_name}}",
  "from_email": "news@acme.com",
  "from_name": "Acme",
  "reply_to": "support@acme.com",
  "preview_text": null,
  "content_type": "html",
  "created_at": "2026-10-01T09:30:12.482193Z",
  "updated_at": "2026-10-01T09:30:12.482193Z",
  "utm_tracking": false,
  "utm_params": null,
  "smart_sending_hours": null,
  "exclude_unengaged": false,
  "tags": [],
  "send_strategy": "immediate",
  "send_options": null,
  "send_completes_at": null,
  "send_summary": null,
  "ab_test": {
    "enabled": false,
    "variants": []
  }
}

Recupera una campagna

Recupera una campagna tramite il suo ID o nome. Richiede una chiave API con il permesso full.

GET/campaigns/{id}

Parametri di percorso

idstringobbligatorio
L’ID della campagna (cmp_…) o il nome della campagna. Codifica per l’URL i nomi che contengono spazi o caratteri speciali.

Restituisce

Restituisce l’oggetto campagna.

objectstring
Sempre campaign.
idstring
ID della campagna, con prefisso cmp_.
statusstring
draft, scheduled, queued, sending, testing, sent, canceled o archived. queued indica che una campagna programmata ha raggiunto l’orario di invio ed è in attesa di un worker. testing indica che è in corso un test A/B e la versione vincente non è ancora stata inviata. Un invio distribuito nel tempo resta sending finché non arriva l’orario del suo ultimo batch.
namestring
Nome interno della campagna.
subjectstring
Riga dell’oggetto, con i tag di unione non elaborati.
from_emailstring
Indirizzo del mittente. "" finché non viene impostato.
from_namestring
Nome visualizzato del mittente. "" finché non viene impostato.
reply_tostring
Indirizzo Reply-To. "" significa che le risposte vanno a from_email.
preview_textstring | null
Testo di anteprima che le inbox mostrano dopo l’oggetto.
content_typestring
Etichetta del formato della sorgente dell’editor: html, text o mjml per le campagne create tramite l’API. Le campagne di cui Emailit ha compilato l’MJML (alpha) restituiscono anche un oggetto mjml con le versioni del documento.
scheduled_atstring | null
Quando viene inviata una campagna programmata, in UTC.
sent_atstring | null
Quando è iniziato l’invio.
utm_trackingboolean
Indica se ai link della campagna vengono aggiunti i parametri UTM.
utm_paramsobject | null
Valori UTM che sostituiscono quelli predefiniti, oppure null. Vedi Crea una campagna.
smart_sending_hoursinteger | null
I contatti a cui un’altra campagna ha inviato un’email in questo numero di ore vengono saltati. null quando lo smart sending è disattivato.
exclude_unengagedboolean
Indica se vengono saltati i contatti che hanno ricevuto 3 o più email di campagne negli ultimi 90 giorni e non ne hanno aperta né cliccata nessuna.
tagsstring[]
I tag della campagna.
send_strategystring
immediate, throttled, local_time o smart_time.
send_optionsobject | null
Opzioni della strategia. Vedi Invia o programma una campagna.
send_completes_atstring | null
Per un invio distribuito su più di un minuto, quando è previsto il suo ultimo batch. Dopo quel momento la campagna passa a sent.
send_summaryobject | null

Cosa ha fatto l’ultimo invio, oppure null prima che la campagna venga inviata:

  • recipients: contatti nelle liste e nei segmenti, una volta per indirizzo.
  • suppressed: saltati perché l’indirizzo è soppresso.
  • smart_sending_skipped: saltati da smart_sending_hours.
  • unengaged_skipped: saltati da exclude_unengaged.
  • sent: contatti a cui è stata inviata la campagna. Per un test A/B, solo il gruppo di test.
  • batches: numero di batch di invio.
  • completes_at: uguale a send_completes_at.
ab_testobject

Il test A/B. Senza un test: { "enabled": false, "variants": [] }. Con un test: enabled, winner_metric, test_size_percent, duration_hours e variants. Ogni versione ha id (cvr_…), name, subject, preview_text, from_name, from_email, reply_to, html, text (null quando la versione usa il valore della campagna) e is_winner. Vedi Crea una campagna.

recipientsobject[]
Le liste e i segmenti a cui è destinata la campagna. Ogni elemento ha audience_id (aud_…) oppure segment_id (seg_…), ed exclude (true per un’esclusione).

Il corpo (html, text e content) non è incluso nella risposta. Per engagement e ricavi, usa Recupera le statistiche di una campagna o il report nel pannello in Email MarketingCampaigns.

Restituisce 404 se nessuna campagna del workspace corrisponde a id.

GET/campaigns/{id}
Terminal
curl https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "scheduled",
  "subject": "October news for {{first_name}}",
  "from_email": "news@acme.com",
  "from_name": "Acme",
  "reply_to": "support@acme.com",
  "preview_text": null,
  "content_type": "html",
  "sent_at": null,
  "scheduled_at": "2026-10-08 09:00:00+00",
  "created_at": "2026-10-01 09:30:12.482193+00",
  "updated_at": "2026-10-01 10:02:47.118204+00",
  "utm_tracking": true,
  "utm_params": {
    "campaign": "{campaign_name}-{send_date}"
  },
  "smart_sending_hours": 16,
  "exclude_unengaged": true,
  "tags": ["newsletter", "q4"],
  "send_strategy": "throttled",
  "send_options": {
    "per_hour": 5000
  },
  "send_completes_at": null,
  "send_summary": null,
  "ab_test": {
    "enabled": false,
    "variants": []
  },
  "recipients": [
    { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "exclude": false },
    { "segment_id": "seg_3Kq8VbN2xYt5Lm9Pw1Rc7Hd4Zf0", "exclude": true }
  ]
}

Aggiorna una campagna

Aggiorna i campi che passi e lascia invariati gli altri. Usalo per scegliere le liste e i segmenti della campagna prima di inviarla. Richiede una chiave API con il permesso full. Genera un evento campaign.updated.

Una campagna programmata invia ciò che è salvato al momento dell’invio, quindi puoi modificarla anche dopo averla programmata.

POST/campaigns/{id}

Parametri di percorso

idstringobbligatorio
L’ID della campagna (cmp_…) o il nome della campagna.

Parametri del corpo

namestring
Nome interno della campagna.
subjectstring
Riga dell’oggetto. Supporta i tag di unione.
from_emailstring
Indirizzo del mittente su un dominio di invio verificato.
from_namestring
Nome visualizzato del mittente.
reply_tostring
Indirizzo Reply-To. Una stringa vuota significa che le risposte vanno a from_email.
preview_textstring
Testo di anteprima che le inbox mostrano dopo l’oggetto. Emailit lo aggiunge come testo nascosto all’inizio del corpo HTML quando la campagna viene inviata. Vedi Crea una campagna.
contentstring
Sorgente del corpo nell’editor, salvato così com’è. Se modifichi content o content_type e il formato è html o text, Emailit invia content come nuovo corpo HTML o in testo semplice.
content_typestring
Formato di content: html, text o mjml. Per il team di Emailit, Emailit compila il contenuto mjml in html (alpha). Per tutti gli altri mjml è un’etichetta.
utm_trackingboolean
Aggiunge i parametri UTM ai link della campagna quando viene inviata. Vedi Crea una campagna.
utm_paramsobject | null
Valori UTM: source, medium, campaign, content, term e id. Sostituisce l’oggetto salvato; null ripristina i valori predefiniti. Vedi Crea una campagna.
smart_sending_hoursinteger | null
Salta i contatti a cui un’altra campagna ha inviato un’email in questo numero di ore, da 1 a 168. null lo disattiva.
exclude_unengagedboolean
Salta i contatti che hanno ricevuto 3 o più email di campagne negli ultimi 90 giorni e non ne hanno aperta né cliccata nessuna.
tagsstring[]
Fino a 20 tag di massimo 50 caratteri ciascuno. Sostituisce i tag attuali.
send_strategystring
immediate, throttled, local_time o smart_time. Usata quando invii la campagna senza una strategia.
send_optionsobject | null
Opzioni di send_strategy, controllate per intero quando la campagna viene inviata. Vedi Invia o programma una campagna.
ab_testobject | null

Il test A/B, con i campi descritti in Crea una campagna. Se invii ab_test, il test e le sue versioni vengono sostituiti. Per mantenere l’ID di una versione, e con esso i suoi risultati, includi il suo id (cvr_…) nella versione. null o "enabled": false disattiva il test ed elimina le versioni.

recipientsobject[]

Le liste e i segmenti a cui destinare la campagna, fino a 100 elementi. Sostituisce l’elenco attuale. Includi almeno un elemento con exclude impostato su false. Ogni elemento ha audience_id oppure segment_id, non entrambi:

  • audience_id (string): l’ID di una lista (aud_…) di questo workspace.
  • segment_id (string): l’ID di un segmento (seg_…) di questo workspace. I segmenti sono in alpha: solo il team di Emailit può aggiungerne uno, e le altre richieste restituiscono 403 con error: "segments_alpha". I segmenti che la campagna ha già si possono mantenere.
  • exclude (boolean, predefinito false): true esclude gli iscritti della lista o i contatti del segmento, anche se si trovano anche in un elemento incluso.

Gli elementi duplicati vengono ignorati. Al momento dell’invio, Emailit invia un’email una sola volta a ogni contatto che è iscritto a una lista inclusa o corrisponde a un segmento incluso, non si trova in un elemento escluso, non è disiscritto a livello globale, è iscritto ad almeno una lista e non è soppresso. I segmenti vengono valutati al momento dell’invio. Se a quel punto una lista o un segmento esclusi non esistono più, la campagna non viene inviata.

Il corpo HTML e di testo si imposta quando crei la campagna. I campi sconosciuti nel corpo della richiesta vengono ignorati.

Restituisce

Restituisce l’oggetto campagna aggiornato, compresi recipients e ab_test. Vedi Recupera una campagna.

Restituisce 422 se recipients non ha nessuna lista o segmento incluso, ha più di 100 elementi, ha un elemento con entrambi gli ID o fa riferimento a una lista o a un segmento esterni al workspace. Restituisce 422 anche quando un’impostazione o il test A/B non è valido, o quando invii ab_test per una campagna che non è né una bozza né programmata, e 404 se la campagna non esiste.

POST/campaigns/{id}
Terminal
curl -X POST https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Your October update, {{first_name}}",
    "recipients": [
      { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" },
      { "segment_id": "seg_3Kq8VbN2xYt5Lm9Pw1Rc7Hd4Zf0", "exclude": true }
    ]
  }'
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "draft",
  "subject": "Your October update, {{first_name}}",
  "from_email": "news@acme.com",
  "from_name": "Acme",
  "reply_to": "support@acme.com",
  "preview_text": null,
  "content_type": "html",
  "scheduled_at": null,
  "created_at": "2026-10-01 09:30:12.482193+00",
  "updated_at": "2026-10-01 10:02:47.118204+00",
  "utm_tracking": false,
  "utm_params": null,
  "smart_sending_hours": null,
  "exclude_unengaged": false,
  "tags": [],
  "send_strategy": "immediate",
  "send_options": null,
  "send_completes_at": null,
  "send_summary": null,
  "ab_test": {
    "enabled": false,
    "variants": []
  },
  "recipients": [
    { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "exclude": false },
    { "segment_id": "seg_3Kq8VbN2xYt5Lm9Pw1Rc7Hd4Zf0", "exclude": true }
  ]
}

Elenca le campagne

Restituisce le campagne del workspace, a partire dalla più recente. Richiede una chiave API con il permesso full.

GET/campaigns

Parametri di query

pageintegerpredefinito: 1
Numero di pagina, a partire da 1.
limitintegerpredefinito: 10
Campagne per pagina, da 1 a 100.
statusstring
Filtro rapido per stato: draft, scheduled, sending (corrisponde anche a queued), sent, canceled, archived o all.
matchstring

all (predefinito) richiede che corrispondano tutti i filtri. or richiede che ne corrisponda almeno uno. Vedi Filtri e ordinamento.

orderstring

Chiave di ordinamento di questo elenco. Vedi le chiavi di ordinamento qui sotto.

directionstring

asc o desc.

Chiavi di filtro

I filtri usano parametri di query nella forma key.condition=value, ad esempio status.exact=sent o created_at.after=2026-09-01. Per le condizioni disponibili per ogni tipo, vedi Filtri e ordinamento.

Chiave Tipo Note
name string
subject string
status enum draft, scheduled, queued, sending, sent, archived
created_at date
sent_at date

Chiavi di ordinamento per order: name, subject, status, created_at, sent_at.

Restituisce

Restituisce una pagina di oggetti campagna senza reply_to, preview_text, content_type e recipients, e solo con tags, send_strategy e send_completes_at tra le opzioni di invio. Usa Recupera una campagna per il resto.

dataobject[]
Le campagne di questa pagina.
total_recordsinteger
Numero di campagne che corrispondono alla query.
next_page_urlstring | null
Percorso della pagina successiva, oppure null sull’ultima pagina. Contiene solo page e limit, quindi quando lo segui aggiungi di nuovo la ricerca e i filtri.
previous_page_urlstring | null
Percorso della pagina precedente, oppure null sulla prima pagina.
GET/campaigns
Terminal
curl -G https://api.emailit.com/v2/campaigns \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d limit=20 \
  -d status=sent \
  -d order=sent_at \
  -d direction=desc
JSON
{
  "data": [
    {
      "object": "campaign",
      "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
      "name": "October newsletter",
      "status": "sent",
      "subject": "Your October update, {{first_name}}",
      "from_email": "news@acme.com",
      "from_name": "Acme",
      "sent_at": "2026-10-08 09:00:04+00",
      "scheduled_at": "2026-10-08 09:00:00+00",
      "created_at": "2026-10-01 09:30:12.482193+00",
      "updated_at": "2026-10-08 09:00:31+00",
      "tags": ["newsletter"],
      "send_strategy": "immediate",
      "send_completes_at": null
    }
  ],
  "total_records": 34,
  "next_page_url": "/v2/campaigns?page=2&limit=20",
  "previous_page_url": null
}

Invia o programma una campagna

Invia subito la campagna, oppure la programma quando passi un scheduled_at futuro. Richiede una chiave API con il permesso full e un workspace verificato: i workspace non verificati non possono inviare campagne e ricevono 403. Si possono inviare solo le bozze e le campagne programmate: una campagna in invio o già inviata restituisce 422, così una richiesta ripetuta non invia di nuovo l’email a tutti.

Prima di inviare, assicurati che la campagna abbia un from_email su un dominio verificato, un oggetto, un corpo html o text e almeno una lista o un segmento inclusi (impostati con Aggiorna una campagna). Ogni email costa 2 crediti.

POST/campaigns/{id}/send

Parametri di percorso

idstringobbligatorio
L’ID della campagna (cmp_…) o il nome della campagna.

Parametri del corpo

scheduled_atstring

Quando inviare. Accetta ISO 8601 (2026-10-08T09:00:00Z), un timestamp Unix in secondi o un’espressione in linguaggio naturale come tomorrow at 9am (interpretata in UTC). L’orario deve essere nel futuro e la campagna deve essere draft.

Omettilo per inviare subito. Per inviare in anticipo una campagna programmata, chiama questo endpoint senza scheduled_at.

send_strategystring

Come distribuire l’invio nel tempo. Il valore predefinito è la strategia salvata nella campagna, altrimenti immediate. La strategia e le sue opzioni vengono salvate nella campagna. Vedi Opzioni di invio.

  • immediate: tutti insieme, subito o a scheduled_at.
  • throttled: un ritmo costante di per_hour email, a partire da subito o da scheduled_at.
  • local_time: un orario fisso nel fuso orario di ogni contatto. scheduled_at viene ignorato.
  • smart_time: ogni contatto nell’ora in cui di solito apre o clicca, entro una finestra dall’inizio.

Le campagne con un test A/B vengono inviate solo con immediate.

send_optionsobject

Opzioni della strategia. Il valore predefinito sono le opzioni salvate nella campagna.

  • throttled: per_hour (integer, obbligatorio), da 100 a 1.000.000 email all’ora.
  • local_time: local_time (string, obbligatorio), l’orario nel formato YYYY-MM-DDTHH:mm, ad esempio 2026-10-08T09:00, e timezone (string, predefinito UTC), il fuso orario IANA per i contatti di cui non si conosce il fuso orario. I fusi orari dei contatti provengono dallo script di tracciamento. L’invio inizia quando l’orario arriva nel primo fuso orario (UTC+14); i contatti nei fusi in cui l’orario è già passato ricevono l’email subito. Fino ad allora la campagna è scheduled, quindi deve essere una bozza. Restituisce 422 quando l’orario è già passato in tutti i fusi orari.
  • smart_time: window_hours (integer, predefinito 24), da 1 a 48. Ogni contatto riceve l’email nell’ora del giorno (UTC) in cui ha aperto o cliccato di più negli ultimi 90 giorni, con un clic che vale tre volte un’apertura, se quell’ora cade nella finestra. I contatti senza questo storico ricevono l’ora più frequente tra gli altri destinatari. I contatti senza nessuno dei due, o la cui ora cade fuori dalla finestra, la ricevono all’inizio.

timezone è accettato con ogni strategia e deve essere un fuso orario IANA valido, ma lo usa solo local_time.

Restituisce

Invio immediato: lo stato passa a sending ed Emailit genera campaign.sending. Emailit determina poi i destinatari: ogni contatto iscritto alle liste incluse e ogni contatto che corrisponde ai segmenti inclusi, una volta per indirizzo, esclusi i contatti presenti in liste o segmenti esclusi, i contatti disiscritti a livello globale o non iscritti a nessuna lista e gli indirizzi soppressi. I segmenti vengono valutati in questo momento. Salta anche i contatti esclusi da smart_sending_hours ed exclude_unengaged. Le email vengono create negli orari stabiliti dalla strategia di invio. Quando tutti i destinatari sono stati passati alla pipeline di invio, lo stato diventa sent ed Emailit genera campaign.sent. Un invio distribuito nel tempo resta sending finché non arriva l’orario del suo ultimo batch (send_completes_at). Il send_summary della campagna mostra a quanti contatti è stata inviata la campagna e quanti sono stati saltati. Segui la consegna nel pannello, con Recupera le statistiche di una campagna o con gli eventi delle email.

Test A/B: il gruppo di test riceve le versioni e lo stato passa a testing. Dopo duration_hours, il resto dei destinatari riceve la versione vincente e lo stato passa a sent.

Programmazione: lo stato passa a scheduled ed Emailit genera campaign.scheduled. All’orario programmato la campagna diventa queued (campaign.queued) e poi viene inviata come descritto sopra. Se nel frattempo una lista o un segmento esclusi sono stati eliminati, la campagna torna a draft invece di essere inviata.

La risposta contiene object, id, name e il nuovo status, più scheduled_at quando programmi.

Stato Quando
403 Il workspace non è verificato, oppure la chiave API non ha il permesso full.
404 Nessuna campagna corrisponde a id.
422 La campagna non è né una bozza né programmata (ad esempio, è in invio o è già stata inviata), scheduled_at non può essere interpretato o non è nel futuro, hai cercato di programmare una campagna che non è una bozza, la campagna non ha un corpo html o text, non ha destinatari (impostali con Aggiorna una campagna), esclude una lista o un segmento che non esiste più, oppure send_strategy e send_options non sono validi. L’errore sulla strategia indica il campo in message.
POST/campaigns/{id}/send
Terminal
curl -X POST https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN/send \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "scheduled_at": "2026-10-08T09:00:00Z" }'
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "scheduled",
  "scheduled_at": "2026-10-08T09:00:00.000000Z"
}

Annulla una campagna

Imposta lo stato della campagna su canceled e genera un evento campaign.canceled. Richiede una chiave API con il permesso full.

Puoi annullare solo le campagne con stato draft o sending; qualsiasi altro stato restituisce 422. Annullare una campagna in fase di invio non richiama le email già in coda per la consegna.

POST/campaigns/{id}/cancel

Parametri di percorso

idstringobbligatorio
L’ID della campagna (cmp_…) o il nome della campagna.

Restituisce

Restituisce object, id, name e status (canceled).

Restituisce 422 se lo stato della campagna non è draft o sending, e 404 se la campagna non esiste.

POST/campaigns/{id}/cancel
Terminal
curl -X POST https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN/cancel \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "canceled"
}

Recupera le statistiche di una campagna

Recupera il report di una campagna: quante email sono state inviate, consegnate, aperte e cliccate, i risultati per provider di posta, i ricavi degli ordini attribuiti alla campagna (e-commerce, alpha) e, per i test A/B, i risultati per versione. Il report nel pannello in Email MarketingCampaigns mostra gli stessi numeri. Richiede una chiave API con il permesso full.

Ogni conteggio è un numero di email: un’email aperta tre volte conta una sola volta in opened. Le percentuali sono relative a sent salvo diversa indicazione, con due cifre decimali.

GET/campaigns/{id}/stats

Parametri di percorso

idstringObbligatorio

L’ID della campagna (cmp_...) o il nome della campagna. Codifica nell’URL i nomi che contengono spazi o caratteri speciali.

Parametri di query

fromstring

Conta solo le email create a partire da questo momento, una data o una data e ora ISO 8601.

tostring

Conta solo le email create fino a questo momento compreso.

statusstring

Conta solo le email il cui stato attuale è questo: accepted, scheduled, delivered, loaded, clicked, attempted, bounced, failed, rejected, suppressed o complained. Gli altri valori vengono ignorati.

I filtri si applicano ai conteggi delle email, ai provider e ai conteggi del test A/B, e from e to si applicano anche a unsubscribed. Ricavi, ordini e acquirenti coprono sempre tutti gli ordini attribuiti alla campagna, e i loro tassi usano tutte le email consegnate della campagna.

Restituisce

objectstring

Sempre campaign_stats.

campaign_idstring

L’ID della campagna (cmp_...).

sentinteger

Email create per la campagna. sent_percent è 100, oppure 0 prima che venga inviato qualcosa.

delivered, delivered_percentinteger, number

Email con stato delivered, loaded o clicked.

opened, opened_percentinteger, number

Email aperte almeno una volta.

clicked, clicked_percentinteger, number

Email con almeno un clic tracciato.

click_through_percentnumber

clicked come percentuale di opened.

bounced, suppressed, complained, attemptedinteger

Email con stato bounced, suppressed, complained o attempted (in attesa di un nuovo tentativo). Ognuno ha anche un campo _percent.

not_processed, not_processed_percentinteger, number

Email ancora accepted o scheduled.

unsubscribed, unsubscribed_percentinteger, number

Disiscrizioni dalle email della campagna.

providersobject[]

Risultati per provider di posta dei destinatari, per i provider con almeno un’email. key è gmail, outlook.com, live.com, hotmail.com, yahoo, icloud o other, e label è il suo nome visualizzato. Ognuno ha sent, delivered, opened, clicked e bounced con i rispettivi campi _percent. sent_percent è la quota del provider su tutte le email; le altre percentuali sono relative al sent del provider.

commerceobject

Solo per il team di Emailit finché l’e-commerce è in alpha: le altre richieste non ricevono questo campo, e le loro variants A/B omettono orders, revenue e revenue_per_recipient. Ordini attribuiti alla campagna. I ricavi sono il totale dell’ordine meno i rimborsi, e gli ordini annullati non contano. Gli importi in valute diverse non vengono sommati: la valuta principale è quella con più ricavi.

  • currency (string o null): la valuta principale.

  • revenue (number): i ricavi nella valuta principale.

  • orders (integer): gli ordini attribuiti in tutte le valute.

  • buyers (integer): gli acquirenti distinti in tutte le valute. Un acquirente che ha pagato in due valute conta una sola volta.

  • average_order_value (number): nella valuta principale.

  • conversion_percent (number): buyers come percentuale delle email consegnate della campagna.

  • revenue_per_recipient (number): revenue diviso per le email consegnate della campagna.

  • by_currency (object[]): currency, orders, revenue, buyers e average_order_value per ogni valuta, a partire dai ricavi più alti.

ab_testobject

Solo per le campagne con un test A/B.

  • winner_metric (string): opened, clicked, orders o revenue.

  • leader_variant_id (string o null): la versione con il tasso migliore finora: aperture, clic od ordini per email inviata, oppure ricavi per email inviata.

  • win_probability (number o null): la probabilità, in percentuale, che la versione in testa batta davvero la seconda.

  • significance (string): significant (90% o più, con almeno 50 email per versione), promising (75% o più, con lo stesso minimo), not_significant (meno del 75% con almeno 1800 email per versione) o inconclusive. Per revenue, la probabilità si basa sugli ordini.

  • variants (object[]): per ogni versione variant_id, name, subject, is_winner, sent, delivered, opened, opened_percent, clicked, clicked_percent, orders, revenue e revenue_per_recipient. Quando la versione vincente viene inviata al resto della lista, i conteggi della versione vincente includono quelle email.

Restituisce 404 se nessuna campagna corrisponde a id, e 503 quando l’archivio delle analisi non è disponibile.

GET/campaigns/{id}/stats
Terminal
curl https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN/stats \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "object": "campaign_stats",
  "campaign_id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "sent": 12480,
  "sent_percent": 100,
  "delivered": 12302,
  "delivered_percent": 98.57,
  "opened": 5021,
  "opened_percent": 40.23,
  "clicked": 1187,
  "clicked_percent": 9.51,
  "click_through_percent": 23.64,
  "bounced": 98,
  "bounced_percent": 0.79,
  "suppressed": 42,
  "suppressed_percent": 0.34,
  "complained": 3,
  "complained_percent": 0.02,
  "attempted": 0,
  "attempted_percent": 0,
  "not_processed": 38,
  "not_processed_percent": 0.3,
  "unsubscribed": 27,
  "unsubscribed_percent": 0.22,
  "providers": [
    {
      "key": "gmail",
      "label": "Gmail",
      "sent": 7310,
      "sent_percent": 58.57,
      "delivered": 7236,
      "delivered_percent": 98.99,
      "opened": 3102,
      "opened_percent": 42.44,
      "clicked": 741,
      "clicked_percent": 10.14,
      "bounced": 41,
      "bounced_percent": 0.56
    },
    {
      "key": "other",
      "label": "Other",
      "sent": 5170,
      "sent_percent": 41.43,
      "delivered": 5066,
      "delivered_percent": 97.99,
      "opened": 1919,
      "opened_percent": 37.12,
      "clicked": 446,
      "clicked_percent": 8.63,
      "bounced": 57,
      "bounced_percent": 1.1
    }
  ],
  "commerce": {
    "currency": "USD",
    "revenue": 17311.9,
    "orders": 214,
    "buyers": 198,
    "average_order_value": 86.13,
    "conversion_percent": 1.61,
    "revenue_per_recipient": 1.41,
    "by_currency": [
      {
        "currency": "USD",
        "orders": 201,
        "revenue": 17311.9,
        "buyers": 186,
        "average_order_value": 86.13
      },
      {
        "currency": "EUR",
        "orders": 13,
        "revenue": 1052.4,
        "buyers": 12,
        "average_order_value": 80.95
      }
    ]
  }
}

Elimina una campagna

Elimina definitivamente una campagna. Richiede una chiave API con il permesso full. Genera un evento campaign.deleted.

L’eliminazione di una campagna non influisce sulle email già inviate o in coda. Per fermare una campagna in fase di invio, prima annullala.

DELETE/campaigns/{id}

Parametri di percorso

idstringobbligatorio
L’ID della campagna (cmp_…) o il nome della campagna.

Restituisce

Restituisce object, id, name e deleted: true. Restituisce 404 se la campagna non esiste.

DELETE/campaigns/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "deleted": true
}

Questa pagina ti è stata utile?

Grazie del feedback.

Grazie, leggiamo ogni messaggio.