Skip to content

Reanalisa a planilha e, com o mapeamento, devolve o resumo

POST/api/members/imports/{id}/preview

Auth
Requires a token
X-CommunityId
X-CommunityId Send the X-CommunityId of the community the operation happens in.
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.

Owner e admin; só enquanto a importação está `ANALYZED`. Com `sheet`, `headerRow` (1 a 30), `delimiter` (`,` `;` tab `|`) ou `encoding` (`utf-8`, `windows-1252`, `iso-8859-1`, `utf-16le`, `utf-16be`), devolve a análise de novo. Com `mapping` (e `options`), devolve também `summary`, o resumo do passo 4: linhas, pessoas novas, já membros (recebem grupos, tags e campos vazios), ignoradas por motivo (`NO_EMAIL`, `INVALID_EMAIL`, `DUPLICATE_IN_FILE`, `NO_CONSENT`), `declined` (pediram para não participar, fora de `skipped`), e-mails a enviar e os grupos, tags e campos que serão criados. Não grava nada. O mapeamento exige exatamente uma coluna `email`; `firstName`, `lastName`, `phone` e `consent` aceitam uma coluna cada (duas colunas para o mesmo destino são recusadas); `tags` e `groups` aceitam várias.

Parameters

NameInTypeDescription
idrequiredpathstring (uuid)

Headers

NameTypeDescription
X-CommunityIdoptionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Request body application/json

NameTypeDescription
sheetoptionalstring
headerRowoptionalinteger≥ 1, ≤ 30
delimiteroptional, | ; | | |
encodingoptionalstring
mappingoptionalobject[]
mapping[].columnrequiredintegerO `index` da coluna, como veio na análise.
mapping[].targetrequiredignore | email | firstName | lastName | phone | tags | groups | consent | field | newField
mapping[].fieldKeyoptionalstringCom `field`: a `key` de um campo customizado existente.
mapping[].newFieldoptionalobjectCom `newField`: o campo criado na hora, sempre opcional.
mapping[].newField.labeloptionalstringmax 120
mapping[].newField.typeoptionalTEXT | NUMBER | DATE | SELECT | BOOLEAN
optionsoptionalobject
options.roleoptionalmember | moderator
options.groupIdsoptionalstring (uuid)[]
options.tagsoptionalstring[]
options.originoptionalstringDe onde veio a lista. Obrigatória no start; texto simples, sem link; vai no e-mail. · max 150
options.consentValuesoptionalstring[]Com uma coluna `consent`: os valores que contam como sim.
options.consentDeclarationoptionalbooleanSem coluna `consent`: a declaração aceita (obrigatória no start).

Responses

StatusDescription
200A análise, com `summary` quando veio o mapeamento.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
409A importação já foi confirmada ou abandonada.
429Outra planilha está sendo lida nesta comunidade (uma por vez) ou no servidor. Tente de novo em instantes (`reason: busy`).

curl example

curl -X POST "https://api.memberfy.net/api/members/imports/<id>/preview" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'