E-maile do klientów
Endpointy „E-maile do klientów” Zanfia Workspace API — ze schematami i przykładami kodu.
Jednorazowe, osobiste e-maile od Ciebie do jednego klienta („Wyślij e-mail” na karcie klienta): napisz szkic, sprawdź go lub popraw, a potem wyślij osobnym endpointem. To korespondencja transakcyjna, a nie kampania, więc trafia na adres klienta niezależnie od jego zapisu na newsletter; adresy zablokowane po twardym odbiciu lub zgłoszeniu spamu są nadal pomijane przy wysyłce. Wysyłka jest prawdziwa i nie da się jej cofnąć. Tożsamość nadawcy (nazwa nadawcy, Reply-To, opcjonalny własny adres nadawcy na zweryfikowanej domenie) jest ustalana z ustawień workspace w chwili tworzenia szkicu i można ją nadpisać dla pojedynczego szkicu. contentMarkdown to Markdown (maks. 50 000 znaków), subject maks. 200 znaków; branded opakowuje e-mail w Twoją ramkę brandową (domyślnie: zwykła osobista wiadomość). Wysłany e-mail jest niezmienną historią; nieudane przekazanie do wysyłki (status: failed, powód w failureReason) można nadal edytować i wysłać ponownie. Odmowy zawierają maszynowy kod error (client-not-found, email-not-found, already-sent, invalid-field, no-recipient, send-failed), a szczegóły są w message. Wszystkie endpointy wymagają nagłówka Authorization: Bearer — zobacz Uwierzytelnianie.
Lista e-maili do klientów (cały workspace)
/client-emailsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Query Parameters
1 <= value <= 500200Response Body
application/json
application/json
curl -X GET "https://example.com/client-emails"{ "emails": [ { "id": "string", "clientId": "string", "recipientEmail": "string", "recipientName": "string", "subject": "string", "contentMarkdown": "string", "sender": { "fromName": "string", "replyTo": "string", "fromEmail": "string" }, "branded": true, "status": "draft", "createdBy": { "kind": "staff", "uid": "string" }, "createdAt": "string", "updatedAt": "string", "sentAt": "string", "failureReason": "string" } ]}{ "error": "string", "message": "string"}Lista e-maili do jednego klienta
/clients/{clientId}/emailsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Client id
Response Body
application/json
application/json
curl -X GET "https://example.com/clients/string/emails"{ "emails": [ { "id": "string", "clientId": "string", "recipientEmail": "string", "recipientName": "string", "subject": "string", "contentMarkdown": "string", "sender": { "fromName": "string", "replyTo": "string", "fromEmail": "string" }, "branded": true, "status": "draft", "createdBy": { "kind": "staff", "uid": "string" }, "createdAt": "string", "updatedAt": "string", "sentAt": "string", "failureReason": "string" } ]}{ "error": "string", "message": "string"}Utwórz szkic e-maila do klienta
/clients/{clientId}/emailsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Client id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Subject and body may be empty at draft time; omitted sender fields use the workspace defaults.
Response Body
application/json
application/json
curl -X POST "https://example.com/clients/string/emails" \ -H "Content-Type: application/json" \ -d '{ "subject": "string", "contentMarkdown": "string" }'{ "email": { "id": "string", "clientId": "string", "recipientEmail": "string", "recipientName": "string", "subject": "string", "contentMarkdown": "string", "sender": { "fromName": "string", "replyTo": "string", "fromEmail": "string" }, "branded": true, "status": "draft", "createdBy": { "kind": "staff", "uid": "string" }, "createdAt": "string", "updatedAt": "string", "sentAt": "string", "failureReason": "string" }}{ "error": "string", "message": "string"}Zaktualizuj szkic e-maila do klienta
/clients/{clientId}/emails/{emailId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Client id
Client e-mail id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Drafts and failed hand-offs only; an explicit null clears sender.replyTo / sender.fromEmail.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/clients/string/emails/string" \ -H "Content-Type: application/json" \ -d '{}'{ "email": { "id": "string", "clientId": "string", "recipientEmail": "string", "recipientName": "string", "subject": "string", "contentMarkdown": "string", "sender": { "fromName": "string", "replyTo": "string", "fromEmail": "string" }, "branded": true, "status": "draft", "createdBy": { "kind": "staff", "uid": "string" }, "createdAt": "string", "updatedAt": "string", "sentAt": "string", "failureReason": "string" }}{ "error": "string", "message": "string"}Usuń szkic e-maila do klienta
/clients/{clientId}/emails/{emailId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Client id
Client e-mail id
Response Body
application/json
application/json
curl -X DELETE "https://example.com/clients/string/emails/string"{ "deleted": true}{ "error": "string", "message": "string"}Wyślij e-mail do klienta
/clients/{clientId}/emails/{emailId}/sendAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Client id
Client e-mail id
Response Body
application/json
application/json
curl -X POST "https://example.com/clients/string/emails/string/send"{ "email": { "id": "string", "clientId": "string", "recipientEmail": "string", "recipientName": "string", "subject": "string", "contentMarkdown": "string", "sender": { "fromName": "string", "replyTo": "string", "fromEmail": "string" }, "branded": true, "status": "draft", "createdBy": { "kind": "staff", "uid": "string" }, "createdAt": "string", "updatedAt": "string", "sentAt": "string", "failureReason": "string" }}{ "error": "string", "message": "string"}Czy ten artykuł był pomocny?

