Cria um e-mail na biblioteca (sem disparar nada)
POST/api/emails
- Auth
- Token erforderlich
- Wer darf:
- owner
- admin
- moderator
- finance
- API-Schlüssel:
- reports:write
- X-CommunityId
X-CommunityIdSende die X-CommunityId der Community, in der die Operation stattfindet.
Die Beschreibungen der Endpoints stammen aus der API-Spezifikation und sind vorerst auf Portugiesisch. Die Oberfläche drumherum ist übersetzt.
Owner, admin, moderador e financeiro (o de e-mail padrão, `usage: DEFAULT_OVERRIDE`, só owner e admin). `versions` traz uma versão por idioma; sem ela, `subject`, `preheader`, `blocks` e `intro` são a versão do idioma principal (`mainLanguage`, padrão: o da comunidade). As regras dos blocos e das variáveis são as das campanhas (422, um erro por campo); num e-mail padrão, as do e-mail substituído (blocos travados, só variáveis baratas, sem blocos dinâmicos).
Header
| Name | Typ | Beschreibung |
|---|---|---|
X-CommunityIdoptional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Request-Body application/json
| Name | Typ | Beschreibung |
|---|---|---|
namePflicht | string | max 200 |
usageoptional | FREE | DEFAULT_OVERRIDE | |
emailKeyoptional | string | Só com DEFAULT_OVERRIDE (ver `GET /api/email-overrides`) |
mainLanguageoptional | string | |
subjectoptional | string | max 300 |
preheaderoptional | string | max 300 |
blocksoptional | object[] | |
blocks[].typePflicht | text | button | image | latestPosts | upcomingEvents | course | event | product | newCourses | newClassifieds | |
blocks[].htmloptional | string | Só em `text`. HTML rico, sanitizado como nos posts. `{{nome}}` vira o primeiro nome de cada pessoa. |
blocks[].textoptional | string | Só em `button`. · max 80 |
blocks[].urloptional | string | Em `button` (destino) e `image` (endereço; use o de `POST /api/upload/campaigns/image` ou outro https). Só http ou https. |
blocks[].altoptional | string | Só em `image`. · max 200 |
blocks[].countoptional | integer | Em `latestPosts`, `upcomingEvents`, `newCourses` e `newClassifieds`: quantos itens. · ≥ 1, ≤ 10 |
blocks[].spaceIdoptional | string (uuid) | Em `latestPosts`: o espaço de conteúdo (nulo = todos os abertos). |
blocks[].withinDaysoptional | integer | Em `upcomingEvents`: janela a partir do dia do envio. · ≥ 1, ≤ 90 |
blocks[].headingoptional | string | Em `latestPosts` e `upcomingEvents`: título da seção (padrão traduzido). · max 80 |
blocks[].courseIdsoptional | string (uuid)[] | Em `course`: de 1 a 6 cursos, na ordem em que aparecem. Ver `productIds`. |
blocks[].eventIdsoptional | string (uuid)[] | Em `event`: de 1 a 6 eventos, na ordem em que aparecem. Ver `productIds`. |
blocks[].productIdsoptional | string (uuid)[] | Em `product`: de 1 a 6 produtos, sem repetidos, na ordem em que aparecem. Um item mostra o cartão de largura inteira; dois ou mais viram uma grade de 2 por linha no computador e 1 por linha no celular. Ao salvar, todos precisam ser visíveis a todos (senão 422 em `blocks[i]`); no envio, o que deixou de ser visível some e o bloco sem nenhum item some inteiro. Lista inválida (vazia, mais de 6, repetida, id malformado) devolve 422 em `blocks[i].productIds`. Vale igual para `eventIds` e `courseIds`. |
blocks[].courseIdoptional | string (uuid) | Em `course`: forma antiga, de um curso só (equivale a `courseIds` com um item). Na resposta, espelha o primeiro de `courseIds`. |
blocks[].eventIdoptional | string (uuid) | Em `event`: forma antiga, de um evento só (equivale a `eventIds` com um item). Na resposta, espelha o primeiro de `eventIds`. |
blocks[].productIdoptional | string (uuid) | Em `product`: forma antiga, de um produto só (equivale a `productIds` com um item). Se `productIds` vier junto, vale a lista. Na resposta, espelha o primeiro de `productIds`. |
versionsoptional | object[] | |
versions[].languageoptional | string | |
versions[].subjectoptional | string | max 300 |
versions[].preheaderoptional | string | max 300 |
versions[].introoptional | string | |
versions[].blocksoptional | object[] | |
versions[].blocks[].typePflicht | text | button | image | latestPosts | upcomingEvents | course | event | product | newCourses | newClassifieds | |
versions[].blocks[].htmloptional | string | Só em `text`. HTML rico, sanitizado como nos posts. `{{nome}}` vira o primeiro nome de cada pessoa. |
versions[].blocks[].textoptional | string | Só em `button`. · max 80 |
versions[].blocks[].urloptional | string | Em `button` (destino) e `image` (endereço; use o de `POST /api/upload/campaigns/image` ou outro https). Só http ou https. |
versions[].blocks[].altoptional | string | Só em `image`. · max 200 |
versions[].blocks[].countoptional | integer | Em `latestPosts`, `upcomingEvents`, `newCourses` e `newClassifieds`: quantos itens. · ≥ 1, ≤ 10 |
versions[].blocks[].spaceIdoptional | string (uuid) | Em `latestPosts`: o espaço de conteúdo (nulo = todos os abertos). |
versions[].blocks[].withinDaysoptional | integer | Em `upcomingEvents`: janela a partir do dia do envio. · ≥ 1, ≤ 90 |
versions[].blocks[].headingoptional | string | Em `latestPosts` e `upcomingEvents`: título da seção (padrão traduzido). · max 80 |
versions[].blocks[].courseIdsoptional | string (uuid)[] | Em `course`: de 1 a 6 cursos, na ordem em que aparecem. Ver `productIds`. |
versions[].blocks[].eventIdsoptional | string (uuid)[] | Em `event`: de 1 a 6 eventos, na ordem em que aparecem. Ver `productIds`. |
versions[].blocks[].productIdsoptional | string (uuid)[] | Em `product`: de 1 a 6 produtos, sem repetidos, na ordem em que aparecem. Um item mostra o cartão de largura inteira; dois ou mais viram uma grade de 2 por linha no computador e 1 por linha no celular. Ao salvar, todos precisam ser visíveis a todos (senão 422 em `blocks[i]`); no envio, o que deixou de ser visível some e o bloco sem nenhum item some inteiro. Lista inválida (vazia, mais de 6, repetida, id malformado) devolve 422 em `blocks[i].productIds`. Vale igual para `eventIds` e `courseIds`. |
versions[].blocks[].courseIdoptional | string (uuid) | Em `course`: forma antiga, de um curso só (equivale a `courseIds` com um item). Na resposta, espelha o primeiro de `courseIds`. |
versions[].blocks[].eventIdoptional | string (uuid) | Em `event`: forma antiga, de um evento só (equivale a `eventIds` com um item). Na resposta, espelha o primeiro de `eventIds`. |
versions[].blocks[].productIdoptional | string (uuid) | Em `product`: forma antiga, de um produto só (equivale a `productIds` com um item). Se `productIds` vier junto, vale a lista. Na resposta, espelha o primeiro de `productIds`. |
versions[].updatedAtoptional | string (date-time) |
Antworten
| Status | Beschreibung |
|---|---|
201 | O e-mail criado. |
401 | Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`). |
403 | Autenticado, mas sem permissão para esta operação. |
422 | Campo inválido (um erro por campo). |
500 | Erro interno do servidor. |
curl-Beispiel
curl -X POST "https://api.memberfy.net/api/emails" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"name":"string"}'