Contatti: Crea, Importa e Status
Gestisci contatti email con status, tag e campi personalizzati
I contatti sono i destinatari delle tue email. Creali individualmente, importali in massa da CSV, gestisci il loro status e traccia rimbalzi/reclami.
Crea un Contatto
Crea un singolo contatto.
cURL
curl -X POST https://api.tratto.email/v1/contacts \
-H "Authorization: Bearer tratto_live_..." \
-H "Content-Type: application/json" \
-d '{
"email":"[email protected]",
"firstName":"Alice",
"lastName":"Smith",
"status":"subscribed",
"tags":["vip","newsletter"],
"customFields":{"plan":"pro","signupDate":"2025-01-01"}
}'Risposta: la creazione restituisce solo l'id.
{
"data": {
"id": "cont_abc123"
}
}Il campo è customFields, non metadata. I campi sconosciuti vengono
scartati in silenzio: se mandi metadata ricevi un 201, nessun errore, e
nessuno dei tuoi dati salvato. Rileggi il contatto una volta per verificare
cosa è arrivato davvero.
Elenca i Contatti
Recupera tutti i contatti con filtraggio opzionale.
cURL
curl "https://api.tratto.email/v1/contacts?status=subscribed&limit=50" \
-H "Authorization: Bearer tratto_live_..."Parametri di Query:
q: Ricerca per prefisso dell'email, case-insensitive. Combinabile solo constatus: conaudienceIdotagrestituisce 422status: Filtra per status (subscribed,unsubscribed,bounced,complained)audienceId: Solo i contatti di quell'audiencetag: Solo i contatti con quel taglimit: Max risultati per pagina (default 50, max 100)after: Cursor per paginazione
Risposta:
{
"data": [
{
"id": "cont_abc123",
"email": "[email protected]",
"firstName": "Alice",
"lastName": "Smith",
"status": "subscribed",
"trackingOptOut": false,
"tags": ["vip"],
"customFields": { "plan": "pro" },
"createdAt": "2025-06-30T12:00:00Z"
}
],
"pagination": {
"hasMore": true,
"nextCursor": "Y3Vyc29yOnZhbHVl",
"total": 1284
}
}pagination.total è il numero di contatti che soddisfano i filtri, non solo
quelli della pagina. trackingOptOut indica se il destinatario ha chiesto di
non essere tracciato — vedi Privacy.
Aggiorna un Contatto
Aggiorna i dettagli di un contatto (status, tag, campi personalizzati).
cURL
curl -X PATCH https://api.tratto.email/v1/contacts/cont_abc123 \
-H "Authorization: Bearer tratto_live_..." \
-H "Content-Type: application/json" \
-d '{
"status":"unsubscribed",
"tags":["unsubscribed"],
"customFields":{"unsubscribedAt":"2025-06-30T12:00:00Z"}
}'customFields sostituisce l'intero oggetto: non viene fuso campo per campo.
Valori dello Status del Contatto
| Status | Significato |
|---|---|
subscribed | Contatto attivo, può ricevere email |
unsubscribed | Contatto ha rinunciato (manualmente o tramite link di annullamento iscrizione) |
bounced | Email ha rimbalzato (indirizzo non valido) |
complained | Contatto ha segnalato come spam |
Auto-aggiornamenti:
- Quando un'email rimbalza → status diventa
bounced - Quando un contatto clicca annulla iscrizione → status diventa
unsubscribed - Quando un'email è segnalata → status diventa
complained
bounced e complained sono a senso unico. Un contatto soppresso dal
sistema non può essere portato a nessun altro status tramite l'API, nemmeno
unsubscribed. La PATCH risponde 403 FORBIDDEN, con un messaggio che
spiega perché: reinviare a un indirizzo in hard bounce o che ha segnalato spam
danneggia la reputazione di consegna condivisa da ogni account del pool di
invio.
Reinviare lo status attuale del contatto è accettato come no-op, così un form che fa PATCH di tutti i campi al salvataggio continua a funzionare.
Tag
Usa i tag per organizzare i contatti in gruppi logici:
vip: Clienti di alto valorenewsletter: Iscritti newsletterbeta: Membri programma betachurned: Clienti a rischio
Casi d'uso dei tag:
- Segmenta campagne per tag
- Filtra contatti per flussi specifici
- Traccia coorti
Campi Personalizzati
customFields è un oggetto JSON a forma libera per le tue proprietà:
{
"customFields": {
"plan": "pro",
"signupDate": "2025-01-01",
"lastPurchase": "2025-06-15",
"accountValue": 599.99
}
}Usa i campi personalizzati per:
- Archiviare proprietà tue sul contatto
- Filtrare le audience per condizioni sui campi personalizzati
- Personalizzare il contenuto delle email con le variabili
Il campo metadata non esiste. Un oggetto metadata in una richiesta di
creazione o di aggiornamento viene scartato senza errore: la richiesta sembra
riuscita e il dato semplicemente non c'è. L'SDK Node lo chiama customFields,
quello Python custom_fields.
Disiscrivi un Contatto
Non esiste un endpoint di eliminazione. Un contatto si disattiva portandolo allo
status unsubscribed, che ne conserva il record mantenendolo soppresso: un
contatto eliminato potrebbe essere reimportato e ricevere email per errore.
cURL
curl -X PATCH https://api.tratto.email/v1/contacts/cont_abc123 \
-H "Authorization: Bearer tratto_live_..." \
-H "Content-Type: application/json" \
-d '{"status":"unsubscribed"}'Risposta:
{
"data": {
"id": "cont_abc123"
}
}Prossimi Passi
Modifica questa pagina su GitHub
Ultimo aggiornamento