Página de captura pela API da Systeme.io, sem editor
Resposta curta
Você cria e publica uma página de captura na Systeme.io sem abrir o editor: um POST cria a página, outro publica, e cada resposta traz um código para você conferir. No fim, o e-mail de quem se cadastra cai na sua lista e chega no seu webhook.
Assunto: Página de captura
Por Alan Victor · · 7 min de leitura
- 1Guardar a chave e provar que ela vale
- 2Criar a página com um POST
- 3Publicar e conferir no navegador
- 4Ligar o webhook para o lead chegar no seu código
- 5Repetir para a próxima página sem refazer nada
No fim deste guia você tem uma página de captura publicada na Systeme.io que não passou pelo editor: ela nasceu de um POST na API e foi publicada por uma segunda chamada. O campo de e-mail grava na sua lista de contatos, e o mesmo cadastro chega no seu webhook. Cada passo tem um código de status para você conferir sozinho, sem acreditar em mim.
A outra forma de fazer a mesma página é o editor, e ele é mais rápido quando é uma página só. A chamada ganha quando você repete o mesmo molde para vários produtos.
Sai um guia por dia, e o canal do Telegram avisa quando sai. A ferramenta que eu uso para a página, a captura e o e-mail automático no mesmo lugar é a Systeme.io, que tem plano gratuito.
O que você vai ter no fim
- Uma página de captura com endereço próprio, criada por uma chamada que devolve o id dela.
- O e-mail cadastrado entrando na lista de contatos da Systeme.io e chegando, no mesmo instante, no seu webhook.
- O comando salvo num arquivo, pronto para gerar a próxima página trocando duas linhas.
E se eu preferir o editor?
Ele faz a mesma página e é o caminho mais curto para uma só. O que ele não faz é repetir o molde sem clique: se você monta uma página por oferta, siga aqui.
Etapa 1: Guardar a chave e provar que ela vale
Resposta direta: você gera a chave de API na sua conta Systeme.io e roda uma chamada de leitura; se voltar 200, a chave está certa e o resto do guia funciona.
Abra a conta pelo botão desta página e procure a área de chaves de API nas configurações. Gere uma chave e copie o valor inteiro: um espaço colado no fim derruba a chamada. A base da API fica na primeira página da documentação oficial da API — copie de lá e guarde numa variável, sem digitar de novo.
BASE="cole-a-base-da-api"
CHAVE="cole-a-chave-aqui"
curl -s -o /dev/null -w "%{http_code}\n" \
-H "X-API-Key: $CHAVE" \
"$BASE/contacts?limit=1"
O trecho -w "%{http_code}" imprime só o número e joga o corpo fora. 200 é chave aceita. 401 é chave errada, vazia ou com espaço no fim: apague a variável, cole de novo e repita.
Se a tela de chaves estiver bloqueada na sua conta, é sinal de que a API fica no plano pago da Systeme.io. O plano grátis continua servindo para montar a página pelo editor, e a assinatura é o degrau natural de quem passou a precisar da chamada.
Etapa 2: Criar a página com um POST
Resposta direta: a página é um recurso com nome, endereço e a lista de campos do formulário; você manda isso num JSON e recebe o id de volta.
O endereço é o slug: letras minúsculas, números e hífen, sem espaço e sem acento. É ele que entra depois do domínio da sua conta, então escolha o definitivo agora, porque trocar depois quebra todo link já divulgado.
curl -s -X POST "$BASE/pages" \
-H "X-API-Key: $CHAVE" \
-H "Content-Type: application/json" \
-d '{
"name": "Captura - Guia do Funil",
"slug": "guia-do-funil",
"fields": ["email"],
"published": false
}'
Criação aceita devolve 201 com o objeto criado:
{
"id": 482193,
"name": "Captura - Guia do Funil",
"slug": "guia-do-funil",
"published": false
}
O número que importa é o id: no exemplo, 482193. É por ele que as chamadas seguintes acham a página; o nome pode repetir, o id não. Se um campo não existir no recurso, a resposta volta 422 apontando o campo recusado, e nada é criado. O 422 é o erro bom: ele falha inteiro, não deixa página pela metade.
Os nomes dos campos são os que a documentação oficial da API lista para o recurso de página. Se a sua conta recusar um deles, o certo é a resposta, não este exemplo.
Etapa 3: Publicar e conferir no navegador
Resposta direta: a publicação é outra chamada, no mesmo id, e a conferência é abrir o endereço e cadastrar um e-mail seu.
curl -s -X PUT "$BASE/pages/482193" \
-H "X-API-Key: $CHAVE" \
-H "Content-Type: application/json" \
-d '{"published": true}'
Troque 482193 pelo id que voltou para você. Resposta 200 com o campo de publicação verdadeiro quer dizer que a página está no ar. Abra o endereço que a sua conta usa para as páginas, seguido do slug, e confira duas coisas: o campo de e-mail aparece e o botão responde ao clique.
Cadastre um e-mail seu com um sufixo depois do sinal de mais, do tipo seunome+teste@seudominio.com.br. O sufixo serve para achar o teste na busca, e o contato tem que aparecer na lista. Se não aparecer, o problema é a publicação, não o formulário: repita a chamada e leia o retorno.
Para fazer isso sem montar servidor
O que este guia faz por API, a Systeme.io faz por formulário: página, lista, etiqueta e e-mail automático na mesma conta. É a conta em que eu testo o que aparece aqui, e o plano gratuito já dá para publicar e capturar.
Etapa 4: Ligar o webhook para o lead chegar no seu código
Resposta direta: o webhook é um endereço seu que a Systeme.io chama a cada contato novo; a captura já funciona sem ele, e com ele o mesmo cadastro chega também onde você trabalha.
Você precisa de um endereço que responda e devolva 200 assim que receber. Qualquer outro código conta como entregue errado do seu lado. Deixe a resposta em texto puro, sem redirecionamento.
URL_HOOK="o-endereco-que-voce-criou"
curl -s -X POST "$BASE/webhooks" \
-H "X-API-Key: $CHAVE" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"novo-contato\",
\"url\": \"$URL_HOOK\",
\"events\": [\"contact.created\"]
}"
Cadastro de webhook aceito também volta 201. Se voltar 422, o nome do evento não existe: confira a lista de eventos na documentação oficial da API antes de mandar de novo. O que chega no seu endereço, no cadastro de teste, tem esta forma:
{
"event": "contact.created",
"contact": {
"id": 90211,
"email": "seunome+teste@seudominio.com.br"
},
"page": { "id": 482193, "slug": "guia-do-funil" }
}
Responda 200 e guarde o corpo. Se o cadastro aparecer na lista e não chegar no seu endereço, o problema está no webhook, não na página: o caminho até a lista já foi provado na Etapa 3.
Etapa 5: Repetir para a próxima página sem refazer nada
Resposta direta: a segunda página é o mesmo comando com outro nome e outro slug, rodado na mesma ordem.
Salve tudo num arquivo e suba nome e slug para o topo. Cada página nova passa a ser duas linhas editadas e as chamadas rodadas em sequência — o id é capturado da primeira resposta e usado na segunda sozinho.
NOME="Captura - Ebook 2"
SLUG="ebook-2"
ID=$(curl -s -X POST "$BASE/pages" \
-H "X-API-Key: $CHAVE" \
-H "Content-Type: application/json" \
-d "{\"name\": \"$NOME\", \"slug\": \"$SLUG\", \"fields\": [\"email\"], \"published\": false}" \
| sed -n 's/.*"id": *\([0-9]*\).*/\1/p')
curl -s -X PUT "$BASE/pages/$ID" \
-H "X-API-Key: $CHAVE" \
-H "Content-Type: application/json" \
-d '{"published": true}'
| # | Chamada | O que faz | Código esperado |
|---|---|---|---|
| 1 | GET /contacts | prova a chave | 200 |
| 2 | POST /pages | cria a página e devolve o id | 201 |
| 3 | PUT /pages/{id} | publica a página | 200 |
| 4 | POST /webhooks | avisa o seu endereço a cada contato | 201 |
Fazer isso na Systeme.io é o que mantém o fluxo em uma ferramenta só: a página criada pela chamada já nasce ligada à mesma lista de contatos e à mesma automação de e-mail que você usa nas outras páginas. Não tem página num lugar, lista em outro e e-mail num terceiro. Por isso é, para mim, a melhor opção hoje para quem vende sozinho.
Cada dia sem página no ar é um dia de visita que vai embora. Crie a conta grátis pelo botão desta página e rode a Etapa 1 agora, com o guia aberto do lado: a chave que você gerar hoje serve para a página que você publica amanhã.
O que eu não vou afirmar
- Não afirmo que os nomes de campo deste guia valem para sempre: eles são os que a documentação oficial da API lista hoje, e quem confirma é a resposta 422.
- Não afirmo que a sua conta libera a chave de API no plano grátis. Se a tela bloquear, isso aparece antes de qualquer chamada.
- Não prometo prazo de entrega do webhook nem número de tentativas. O que está no seu controle é a resposta 200 do seu endereço.
- Não afirmo quantos cadastros a página vai gerar. Página no ar e e-mail caindo na lista são o que este guia entrega.
Travou em alguma etapa?
Abra uma discussão em github.com/alanvito1/funil-simples dizendo em que passo parou. Dúvida que aparece mais de uma vez tem boa chance de virar guia, e o código deste site está no mesmo lugar, aberto.
Se ainda não tem onde publicar o que montou, a conta gratuita da Systeme.io resolve a página e a lista.
Perguntas frequentes
Dá para criar a página de captura pela API sem abrir o editor?
Dá. Um POST no recurso de páginas cria a página com nome, slug e o campo de e-mail, e a resposta 201 traz o id que as chamadas seguintes usam. O editor continua existindo, mas deixa de ser obrigatório no caminho.
O que acontece quando a API responde 422?
Nada é criado: o 422 recusa a chamada inteira e aponta o campo que não existe, então você corrige o JSON e manda de novo. É o erro mais seguro de todos, porque não deixa página pela metade.
Preciso de webhook para a página capturar e-mail?
Não. O cadastro já grava o contato na sua lista da Systeme.io e a captura funciona sem webhook. O webhook é o aviso extra que leva o mesmo cadastro para o seu próprio código, em tempo real.
A página criada pela API aparece no painel?
Aparece, com o mesmo nome, o mesmo slug e o mesmo id, na área de páginas da conta. O que a chamada cria e o que o painel mostra são o mesmo objeto.
Preciso saber programar para seguir este guia?
Precisa saber colar comando num terminal e trocar dois valores: a chave e o slug. O resto é copiar, rodar e ler o código de status que volta em cada chamada.
Leve isto com você
Página de captura pronta
É um arquivo HTML completo, com a promessa, um campo, o aceite da LGPD e nada de terceiro — abre no navegador do jeito que está.
Abra no navegador para ver, troque o texto e o endereço do formulário, e suba para a sua hospedagem. Sem cadastro, sem e-mail: o arquivo baixa direto.
Receba o resto por e-mail
Eu testo ferramenta de funil e e-mail e mando o que descubro.