Tutto ciò che può fare nella dashboard di Zinn® Campaigns può essere eseguito anche tramite l'API, e la maggior parte delle operazioni anche da un assistente IA connesso al Suo account tramite MCP. Questa guida illustra l'accesso, i permessi, un esempio pratico in entrambe le modalità, i limiti, gli errori e ciascuna delle 89 operazioni di Campaigns. L'elenco delle operazioni riportato di seguito è generato dalla nostra specifica API, quindi corrisponde sempre a ciò che l'API esegue. Ogni campo di ciascuna operazione è disponibile nel riferimento API all'indirizzo zinndigital.com/developers/api/zinn-campaigns.
Accesso
- Chiavi API. Crei una chiave nella bacheca sotto Impostazioni → Chiavi API e la invii come
Authorization: Bearer zdk_live_… (una chiave zdk_test_… funziona in modalità sandbox). Assegni alla chiave solo le autorizzazioni di Campaigns necessarie e nient'altro.
- Assistenti IA (MCP). Connetta Claude, ChatGPT, Cursor o qualsiasi client MCP a
https://api.zinndigital.com/v1/mcp, effettuando l'accesso dall'app oppure tramite un token di connessione (zmcp_live_…). Consulti Connessione di Claude, Cursor o ChatGPT al Suo account. Nella schermata di consenso, spunti le autorizzazioni per Zinn® Campaigns.
- Autorizzazioni.
email_marketing.view consente di leggere campagne, elenchi, contatti, moduli, mittenti, impostazioni SMS e report; email_marketing.manage consente di crearli e modificarli. Le campagne inviate tramite il Suo servizio di posta elettronica utilizzano campaigns.view e campaigns.manage.
- Rivenditori. Inserisca
org_id per operare su una delle organizzazioni dei Suoi clienti. Lo ometta se la Sua chiave o la Sua connessione accede a una sola organizzazione.
Esempio: creare una bozza di campagna con l'API
curl -X POST https://api.zinndigital.com/v1/email-marketing/campaigns \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{
"name": "Spring sale",
"subject": "Our spring sale starts today",
"list_id": "<list id>",
"sender_id": "<sender id>",
"template": "basic"
}'
La risposta è 201 con la bozza. Esegua un test con POST /v1/email-marketing/campaigns/{campaign_id}/test, la verifichi con GET /v1/email-marketing/campaigns/{campaign_id}/lint e la invii con POST /v1/email-marketing/campaigns/{campaign_id}/send.
Esempio: la stessa bozza da un assistente IA
Chieda al Suo assistente con parole semplici, ad esempio "crea una bozza di email di Zinn® Campaigns chiamata Saldi primaverili con l'oggetto 'I nostri saldi primaverili iniziano oggi'". Dietro le quinte, troverà l'operazione con api_operations_search, ne leggerà i parametri con api_operation_get e la eseguirà con api_operation_call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "api_operation_call",
"arguments": {
"operation_id": "createEmailMarketingCampaign",
"confirm": true,
"body": {
"name": "Spring sale",
"subject": "Our spring sale starts today"
}
}
}
}
Cosa non farà un assistente. Tutto ciò che invia messaggi ai destinatari o comporta una spesa di denaro o crediti — inviare una campagna, inviare messaggi SMS o WhatsApp, scrivere utilizzando crediti IA, registrarsi per la messaggistica US — viene negato all'assistente, affinché un'istruzione fraintesa non possa mai raggiungere i clienti. L'assistente prepara la bozza; Lei preme Invia nella dashboard o effettua direttamente la chiamata API. Anche i dati riservati, come la password SMTP, non vengono mai trasmessi tramite un assistente: li inserisca direttamente nella dashboard.
Limiti
- 1.200 richieste al minuto per ciascuna persona o chiave API e 6.000 richieste al minuto per ciascuna organizzazione. Si applica il limite più restrittivo tra i due.
- 600 richieste al minuto per ciascuna connessione MCP.
- Oltre tale limite, la risposta restituita è
429 con un'intestazione Retry-After: attenda il numero di secondi indicato.
- L'aggiunta di membri a un elenco supporta un massimo di 1.000 indirizzi per richiesta; le quote previste dal Suo piano per contatti ed email si applicano a tutte le operazioni effettuate tramite API.
Errori
Ogni errore presenta la stessa struttura:
{"error": {"code": "UNPROCESSABLE_ENTITY", "message": "…", "details": [{"field": "subject", "code": "REQUIRED", "message": "…"}], "request_id": "…"}}
code non cambia mai per lo stesso problema, quindi verifichi questo anziché message. Indichi request_id quando contatta l'assistenza. Le risposte che incontrerà: 401 UNAUTHORIZED, 403 FORBIDDEN, 404 NOT_FOUND, 409 CONFLICT, 422 UNPROCESSABLE_ENTITY, 429 TOO_MANY_REQUESTS. Un codice 403 significa che la chiave o la connessione non dispone di un'autorizzazione indicata nell'elenco seguente; un 404 copre anche un elemento all'interno di un'organizzazione che Lei non può visualizzare; un 422 elenca ciascun campo errato in details; dopo un 429, attenda il numero di secondi specificato nell'intestazione Retry-After.
Webhook
I risultati di recapito arrivano in Zinn® Campaigns dal provider che invia le Sue e-mail:
- Con il Suo provider (ad esempio Resend), memorizzi il segreto di firma del webhook sulla connessione di invio nella dashboard (Campagne → Invio). Riceverà un
webhook_url; indirizzi verso di esso gli eventi di recapito, mancato recapito e reclamo del provider. Un rimbalzo o un reclamo per spam rimuove immediatamente l'indirizzo dai futuri invii.
- Con l'invio Zinn®, non c'è nulla da configurare.
Legga i risultati con le operazioni di reportistica (getEmailMarketingCampaignReport, getSmsMarketingCampaignReport).
Tutte le operazioni di Campaigns
Panoramica
GET /v1/email-marketing — Panoramica di Zinn® Campaigns per un'organizzazione. Operazione getEmailMarketingOverview. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
Campagne e-mail
GET /v1/email-marketing/campaigns — Campagne e-mail, dalla più recente, una pagina del keyset. Operazione listEmailMarketingCampaigns. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/campaigns — Crea una bozza di campagna e-mail. Operazione createEmailMarketingCampaign. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
GET /v1/email-marketing/campaigns/{campaign_id} — Una campagna e-mail. Operazione getEmailMarketingCampaign. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
PATCH /v1/email-marketing/campaigns/{campaign_id} — Modifica una bozza (o una campagna rifiutata, che torna a bozza). Operazione updateEmailMarketingCampaign. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
GET /v1/email-marketing/campaigns/{campaign_id}/lint — Controlla il testo di una campagna per rilevare problemi di recapitabilità prima dell'invio. Operazione lintEmailMarketingCampaign. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
GET /v1/email-marketing/campaigns/{campaign_id}/report — I numeri di una campagna. Operazione getEmailMarketingCampaignReport. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/campaigns/{campaign_id}/send — Avvia l'invio di una campagna alla sua lista. Operazione sendEmailMarketingCampaign. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: solo API e dashboard: comporta una spesa di denaro o di crediti, quindi deve essere premuto da una persona (invia a destinatari reali e consuma crediti).
POST /v1/email-marketing/campaigns/{campaign_id}/test — Invia subito una copia di prova a un membro dell'organizzazione. Operazione testEmailMarketingCampaign. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/campaigns/{campaign_id}/translate — Traduce una campagna in tutte le lingue dei contatti mancanti o non aggiornate. Operazione translateEmailMarketingCampaign. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
GET /v1/email-marketing/campaigns/{campaign_id}/translations — Ciascuna lingua dei contatti della lista di una campagna e indicazione se la relativa traduzione è aggiornata. Operazione listEmailMarketingCampaignTranslations. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
Scrittura con l'IA
POST /v1/email-marketing/ai/write — Scriva una bozza di email per la campagna a partire da un breve riepilogo con Zinn® AI. Operazione writeEmailMarketingCampaignWithAi. Permessi verificati: email_marketing.manage, email_marketing.view. Da un assistente IA: solo API e bacheca: comporta una spesa di denaro o di franchigia, quindi deve essere premuto da una persona (la scrittura con l'IA consuma crediti IA).
Kit del brand
GET /v1/email-marketing/brand-kit — Il kit del brand dell'organizzazione (nome, logo, colori, carattere tipografico, tono di voce). Operazione getEmailMarketingBrandKit. Permessi verificati: email_marketing.view. Da un assistente IA: sì, tramite MCP.
PUT /v1/email-marketing/brand-kit — Modifichi il kit del brand. Operazione updateEmailMarketingBrandKit. Permessi verificati: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/brand-kit/read — Legga il kit del brand dal sito web dell'organizzazione. Operazione readEmailMarketingBrandKit. Permessi verificati: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
Contatti e messaggi singoli
GET /v1/email-marketing/contacts — I contatti dell'organizzazione, una pagina keyset alla volta. Operazione listEmailMarketingContacts. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/contacts/{contact_id}/messages — Invia un SMS a un contatto, scalato dal saldo crediti Zinn®. Operazione sendEmailMarketingMessage. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: solo API e bacheca: comporta una spesa di denaro o di franchigia, quindi deve essere azionato da una persona (un singolo messaggio a un contatto consuma franchigia).
GET /v1/email-marketing/messages — Messaggi SMS e WhatsApp inviati dall'organizzazione, dal più recente, una pagina keyset. Operazione listEmailMarketingMessages. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
Elenchi
GET /v1/email-marketing/lists — Le mailing list dell'organizzazione con il conteggio degli iscritti / disiscritti. Operazione listEmailMarketingLists. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/lists — Crea una mailing list (o restituisce quella con quel nome). Operazione createEmailMarketingList. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/lists/{list_id}/members — Aggiunge contatti a un elenco tramite indirizzo e-mail (al massimo 1.000 per richiesta). Operazione addEmailMarketingListMembers. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
Importazioni
GET /v1/email-marketing/imports — Importazioni passate di contatti, le più recenti per prime, una pagina del keyset alla volta. Operazione listEmailMarketingImports. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/imports — Importa un blocco di contatti con la relativa attestazione del consenso. Operazione createEmailMarketingImport. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
Moduli di iscrizione
GET /v1/email-marketing/forms — Moduli di iscrizione (double opt-in), dai più recenti, una pagina basata su keyset. Operazione listEmailMarketingForms. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/forms — Crea un modulo di iscrizione che aggiunge le persone confermate a un elenco. Operazione createEmailMarketingForm. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
DELETE /v1/email-marketing/forms/{form_id} — Elimina un modulo di iscrizione (le persone già confermate rimangono nell'elenco). Operazione deleteEmailMarketingForm. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
PATCH /v1/email-marketing/forms/{form_id} — Modifica un modulo di iscrizione (testo, elenco, reindirizzamento, attivo o disattivo). Operazione updateEmailMarketingForm. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
Connessioni di invio
GET /v1/email-marketing/senders — Le connessioni di invio dell'organizzazione. Operazione listEmailMarketingSenders. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/senders — Connetti un mittente della campagna (invio Zinn® o server SMTP del cliente). Operazione createEmailMarketingSender. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: solo API e dashboard: contiene un segreto che non deve mai raggiungere un modello IA (il corpo è la password SMTP).
DELETE /v1/email-marketing/senders/{sender_id} — Rimuovi una connessione di invio e la relativa password memorizzata. Operazione deleteEmailMarketingSender. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/senders/{sender_id}/verify — Verifica che una connessione di invio funzioni, senza inviare nulla. Operazione verifyEmailMarketingSender. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
PUT /v1/email-marketing/senders/{sender_id}/webhook — Memorizza il segreto di firma del webhook del Suo provider di posta elettronica per questa connessione. Operazione setEmailMarketingSenderWebhook. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: chiamato da un altro sistema (un provider o un visitatore), non da Lei (memorizza il segreto webhook di un provider).
SMS e WhatsApp
GET /v1/email-marketing/sms — Ciò di cui ha bisogno la schermata SMS — aperto?, in pausa?, saldo crediti e prezzi. Operazione getEmailMarketingSms. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
GET /v1/email-marketing/sms/campaigns — Campagne SMS di massa, le più recenti per prime, una pagina basata su keyset. Operazione listSmsMarketingCampaigns. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/sms/campaigns — Crea una bozza di SMS per un elenco. Operazione createSmsMarketingCampaign. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
GET /v1/email-marketing/sms/campaigns/{campaign_id} — Una campagna SMS di massa. Operazione getSmsMarketingCampaign. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
PATCH /v1/email-marketing/sms/campaigns/{campaign_id} — Modifica una bozza (o una campagna rifiutata, che torna a bozza). Operazione updateSmsMarketingCampaign. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
GET /v1/email-marketing/sms/campaigns/{campaign_id}/report — I numeri di una campagna SMS di massa. Operazione getSmsMarketingCampaignReport. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/sms/campaigns/{campaign_id}/send — Avvia l'invio di un SMS a tutti i destinatari del relativo elenco che hanno acconsentito alla ricezione di SMS, oppure riprende una campagna sospesa per credito insufficiente. Operazione sendSmsMarketingCampaign. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: solo API e bacheca: comporta una spesa di denaro o l'utilizzo di una quota, quindi richiede l'azione di una persona (invia messaggi SMS/WhatsApp a pagamento).
GET /v1/email-marketing/sms/registrations/us — La registrazione US 10DLC di questa organizzazione e i relativi costi. Operazione getEmailMarketingUsRegistration. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/sms/registrations/us — Invia il brand e la campagna di questa organizzazione per la registrazione US 10DLC (addebito all'invio). Operazione submitEmailMarketingUsRegistration. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: solo API e bacheca: comporta una spesa di denaro o l'utilizzo di una quota, quindi richiede l'azione di una persona (la registrazione US 10DLC comporta tariffe dell'operatore).
Campagne tramite il proprio servizio email (modelli, segmenti, soppressioni)
GET /v1/campaigns — Le campagne dell'organizzazione. Operazione listCampaigns. Da un assistente IA: sì, tramite MCP.
POST /v1/campaigns — Crea una campagna a partire da un modello e da un pubblico. Operazione createCampaign. Da un assistente IA: sì, tramite MCP.
DELETE /v1/campaigns/esp — Disconnette l'account del provider e rimuove la relativa chiave memorizzata. Operazione disconnectEsp. Da un assistente IA: solo API e dashboard: trasporta un segreto che non deve mai raggiungere un modello di IA (distrugge la chiave ESP memorizzata).
GET /v1/campaigns/esp — L'account del provider di posta elettronica dell'organizzazione. Operazione getEspConnection. Da un assistente IA: sì, tramite MCP.
POST /v1/campaigns/esp — Connette un account di un provider di posta elettronica. Operazione connectEsp. Da un assistente IA: solo API e dashboard: trasporta un segreto che non deve mai raggiungere un modello di IA (il corpo è la chiave API dell'ESP).
POST /v1/campaigns/esp/verify — Verifica che l'account del provider funzioni e legge i suoi domini verificati. Operazione verifyEspConnection. Da un assistente IA: solo API e dashboard: trasporta un segreto che non deve mai raggiungere un modello di IA (ricontrolla una chiave ESP memorizzata).
POST /v1/campaigns/preview — Render un modello con valori di esempio. Operazione previewCampaignTemplate. Da un assistente IA: sì, tramite MCP.
GET /v1/campaigns/segments — I segmenti di pubblico salvati. Operazione listCampaignSegments. Autorizzazioni verificate: campaigns.view. Da un assistente IA: sì, tramite MCP.
POST /v1/campaigns/segments — Salva un nuovo segmento di pubblico. Operazione createCampaignSegment. Autorizzazioni verificate: campaigns.manage. Da un assistente IA: sì, tramite MCP.
GET /v1/campaigns/segments/fields — Il vocabolario dei filtri, i relativi elenchi di valori e i tag magici. Operazione getCampaignSegmentFields. Autorizzazioni verificate: campaigns.view. Da un assistente IA: sì, tramite MCP.
POST /v1/campaigns/segments/preview — Quante persone raggiunge, chi sono e chi esclude. Operazione previewCampaignSegment. Autorizzazioni verificate: campaigns.view. Da un assistente IA: sì, tramite MCP.
DELETE /v1/campaigns/segments/{segmentId} — Archivia un segmento. Operazione archiveCampaignSegment. Autorizzazioni verificate: campaigns.manage. Da un assistente IA: sì, tramite MCP.
GET /v1/campaigns/segments/{segmentId} — Un segmento salvato. Operazione getCampaignSegment. Autorizzazioni verificate: campaigns.view. Da un assistente IA: sì, tramite MCP.
PATCH /v1/campaigns/segments/{segmentId} — Rinomina un segmento o modificane i filtri. Operazione updateCampaignSegment. Autorizzazioni verificate: campaigns.manage. Da un assistente IA: sì, tramite MCP.
GET /v1/campaigns/suppressions — Indirizzi che non devono ricevere comunicazioni di marketing. Operazione listCampaignSuppressions. Autorizzazioni verificate: campaigns.view. Da un assistente IA: sì, tramite MCP.
POST /v1/campaigns/suppressions — Aggiunge un indirizzo all'elenco di soppressione. Operazione createCampaignSuppression. Autorizzazioni verificate: campaigns.manage. Da un assistente IA: sì, tramite MCP.
GET /v1/campaigns/tags — Il selettore di tag dinamici offerto dall'editor delle campagne. Operazione listCampaignTags. Da un assistente IA: sì, tramite MCP.
GET /v1/campaigns/templates — I modelli di campagna dell'organizzazione. Operazione listCampaignTemplates. Da un assistente IA: sì, tramite MCP.
POST /v1/campaigns/templates — Crea un modello di campagna. Operazione createCampaignTemplate. Da un assistente IA: sì, tramite MCP.
DELETE /v1/campaigns/templates/{templateId} — Archivia un modello e ritira le sue sorgenti di traduzione. Operazione archiveCampaignTemplate. Da un assistente IA: sì, tramite MCP.
GET /v1/campaigns/templates/{templateId} — Un singolo modello di campagna. Operazione getCampaignTemplate. Da un assistente IA: sì, tramite MCP.
PUT /v1/campaigns/templates/{templateId} — Modifica un modello di campagna. Operazione updateCampaignTemplate. Da un assistente IA: sì, tramite MCP.
POST /v1/campaigns/unsubscribe — Consente di abbandonare un elenco di marketing. Nessun account necessario. Operazione unsubscribeFromCampaigns. Da un assistente IA: solo API e dashboard: contiene un segreto che non deve mai raggiungere un modello IA (richiede il token di annullamento dell'iscrizione firmato del destinatario).
DELETE /v1/campaigns/{campaignId} — Elimina una campagna e ritira le relative righe di recapito. Operazione deleteCampaign. Da un assistente IA: solo API e dashboard: richiede un'autorizzazione non disponibile per le connessioni IA (l'eliminazione di una campagna ESP richiede campaigns.send).
GET /v1/campaigns/{campaignId} — Una campagna e il relativo rapporto di recapito. Operazione getCampaign. Da un assistente IA: sì, tramite MCP.
POST /v1/campaigns/{campaignId}/control — Mette in pausa, riprende o annulla un invio in corso. Operazione controlCampaign. Da un assistente IA: solo API e dashboard: comporta un consumo economico o di quota, quindi deve premerlo una persona (mette in pausa/riprende un invio effettivo).
POST /v1/campaigns/{campaignId}/send — Avvia l'invio durevole. Operazione sendCampaign. Da un assistente IA: solo API e dashboard: comporta un consumo economico o di quota, quindi deve premerlo una persona (invia una campagna ESP a destinatari reali).
POST /v1/campaigns/{campaignId}/test — Invia un messaggio effettivo sul canale che la campagna utilizzerà realmente. Operazione testSendCampaign. Da un assistente IA: solo API e dashboard: richiede un'autorizzazione che le connessioni IA non offrono (un invio di prova ESP richiede campaigns.send).
Pagine pubbliche e webhook in entrata
GET /v1/public/email-marketing/c/{token} — Il contatore di clic. Registra un clic per destinatario e reindirizza al link originale. Operazione emailMarketingClick. Da un assistente IA: una pagina aperta dai destinatari da un'email (il reindirizzamento per il monitoraggio dei clic).
GET /v1/public/email-marketing/f/{public_id} — Pagina ospitata di un modulo di iscrizione (senza accesso). Operazione emailMarketingFormPage. Da un assistente IA: una pagina aperta dai destinatari da un'email (la pagina pubblica del modulo di iscrizione).
POST /v1/public/email-marketing/f/{public_id} — Invia un modulo di registrazione (pagina ospitata, incorporata o JSON). Operazione emailMarketingFormSubmit. Da un assistente IA: chiamata da un altro sistema (un provider o un visitatore), non da Lei (un visitatore invia un modulo di registrazione).
GET /v1/public/email-marketing/fc — La pagina di conferma double opt-in (nessun accesso richiesto). Operazione emailMarketingFormConfirmPage. Da un assistente IA: una pagina che i Suoi destinatari aprono da un'e-mail (la pagina di conferma double opt-in).
POST /v1/public/email-marketing/fc — Conferma una registrazione (aggiunge la persona all'elenco con un record di consenso). Operazione emailMarketingFormConfirm. Da un assistente IA: chiamata da un altro sistema (un provider o un visitatore), non da Lei (un visitatore conferma un double opt-in).
GET /v1/public/email-marketing/o/{token} — L'immagine di tracciamento delle aperture (una GIF 1x1). Conta un'apertura per destinatario. Operazione emailMarketingOpenPixel. Da un assistente IA: una pagina che i Suoi destinatari aprono da un'e-mail (il pixel di tracciamento delle aperture).
GET /v1/public/email-marketing/u/{token} — Il link di annullamento dell'iscrizione a piè di pagina (nessun accesso richiesto). Operazione emailMarketingUnsubscribePage. Da un assistente IA: una pagina che i Suoi destinatari aprono da un'e-mail (la pagina di annullamento dell'iscrizione).
POST /v1/public/email-marketing/u/{token} — Disiscrizione con un clic RFC 8058 (e il pulsante "interrompi tutto" della pagina). Operazione emailMarketingUnsubscribeOneClick. Da un assistente IA: chiamata da un altro sistema (un provider o un visitatore), non da Lei (disiscrizione con un clic RFC 8058).
GET /v1/public/email-marketing/warmup-u/{token} — Il link di disiscrizione delle e-mail di riscaldamento del pool di marketing (nessun accesso). Operazione emailMarketingWarmupUnsubscribePage. Da un assistente IA: una pagina aperta dai Suoi destinatari da un'e-mail (la pagina di disiscrizione dal riscaldamento).
POST /v1/public/email-marketing/warmup-u/{token} — Disiscrizione con un clic RFC 8058 dalle e-mail di riscaldamento. Operazione emailMarketingWarmupUnsubscribeOneClick. Da un assistente IA: chiamata da un altro sistema (un provider o un visitatore), non da Lei (disiscrizione dal riscaldamento con un clic).
POST /v1/webhooks/campaign-events — Acquisisce un evento di consegna firmato dal provider di posta elettronica. Operazione receiveCampaignDeliveryWebhook. Da un assistente IA: chiamata da un altro sistema (un provider o un visitatore), non da Lei (webhook di consegna ESP firmato).
POST /v1/webhooks/campaigns/telnyx — Risposte SMS in entrata (STOP / START) dal nostro fornitore SMS. Operazione receiveCampaignsTelnyxInbound. Da un assistente IA: chiamata da un altro sistema (un provider o un visitatore), non da Lei (webhook Telnyx in entrata firmato).
POST /v1/webhooks/email-marketing/{connection_id} — Eventi di recapito del provider e-mail del cliente per una connessione di invio. Operazione receiveEmailMarketingProviderWebhook. Da un assistente IA: chiamata da un altro sistema (un provider o un visitatore), non da Lei (webhook del provider del mittente firmato).
Flussi
GET /v1/email-marketing/flows — Flussi e-mail (benvenuto, drip, una data annuale), una pagina keyset. Operazione listEmailMarketingFlows. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/flows — Crea un flusso (inizia come bozza). Operazione createEmailMarketingFlow. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
DELETE /v1/email-marketing/flows/{flow_id} — Elimina un flusso e le relative iscrizioni (le esecuzioni inviate rimangono come campagne). Operazione deleteEmailMarketingFlow. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
GET /v1/email-marketing/flows/{flow_id} — Un flusso con i relativi passaggi e il relativo report (iscritti, in corso, esecuzioni e destinatari per passaggio). Operazione getEmailMarketingFlow. Autorizzazioni verificate: email_marketing.view. Da un assistente IA: sì, tramite MCP.
PATCH /v1/email-marketing/flows/{flow_id} — Modifica un flusso; steps, se specificato, sostituisce l'intera sequenza. Operazione updateEmailMarketingFlow. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/flows/{flow_id}/activate — Attiva un flusso; vengono iscritte solo le persone che si uniscono all'elenco da questo momento in poi. Operazione activateEmailMarketingFlow. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.
POST /v1/email-marketing/flows/{flow_id}/pause — Mette in pausa un flusso; i passaggi previsti rimangono in attesa e nessun nuovo destinatario riceve e-mail fino alla riattivazione. Operazione pauseEmailMarketingFlow. Autorizzazioni verificate: email_marketing.manage, email_marketing.view. Da un assistente IA: sì, tramite MCP.