Inscrição em eventos8 min de leitura
Formulário de RSVP de casamento no seu próprio site de casamento
Um formulário de RSVP para um site de casamento feito por você: uma resposta por convite, uma refeição por convidado, um prazo e a lista de quem não respondeu.
Dê a cada convite o seu próprio link de RSVP com um código de convite e os nomes dos convidados, e deixe o formulário mostrar um nome e uma escolha de refeição por convidado. Cada resposta é enviada ao Ikiform, então você recebe um e-mail para cada uma e um CSV para entregar ao buffet. Cruze as respostas com sua lista de convidados numa planilha para ver quem não respondeu e pause o formulário depois do prazo.
O que muda num casamento
Um meetup conta desconhecidos. Um casamento conta uma lista de convidados que você já tem, convite por convite. Daí vêm quatro coisas:
- Uma resposta por convite, não por pessoa. Um casal ou uma família responde junto.
- Convidados com nome, não um número de convidados. Você convidou Ada e Sam, não
2. O acompanhante está no convite ou não está. - Uma refeição por pessoa. O buffet precisa dos totais de peixe, carne e vegetariano, mais os pratos infantis.
- Um prazo rígido e uma lista de cobrança. O local quer os números até uma data, e a lista útil é a de quem não respondeu.
Serviços de site de casamento como Zola, The Knot e Joy têm ferramentas de RSVP montadas em torno de uma lista de convidados, com busca por nome. Se você usa um deles para o seu site, use o RSVP dele. Esta página é para um site de casamento que você mesmo fez, no Squarespace, Carrd, Framer ou HTML puro, em que você quer o RSVP na sua própria página.
O Ikiform não tem busca em lista de convidados nem grupos repetidos, então o formulário não sabe sozinho quem está num convite. O truque é colocar essa informação no link.
- Sua planilha de convidados tem uma linha por convite: um código curto, o nome da família e os nomes dos convidados.
- Uma fórmula transforma cada linha num link de RSVP personalizado com o código e os nomes.
- Você imprime o link como QR code no convite ou o envia numa mensagem.
- A página de RSVP lê o link e mostra um nome e uma escolha de refeição por convidado, e depois envia ao Ikiform.
- Você exporta as respostas como CSV e as importa ao lado da lista de convidados.
- Cruzar os códigos mostra quais convites não responderam, então você sabe quem cobrar.
- Contar cada refeição nas respostas dá os totais do buffet.
Crie um link para cada convite
Na sua planilha de convidados, coloque um código curto na coluna A, como okafor ou nguyen-family, a família na B e os primeiros nomes dos convidados na C, separados por vírgulas. Esta fórmula na D monta o link:
="https://ada-and-sam.example/rsvp?party=" & A2 & "&names=" & ENCODEURL(C2)Imprima cada link como QR code no convite ou cole-o numa mensagem. Mantenha os códigos em minúsculas com hífens; o pattern do campo recusa qualquer outra coisa, o que pega cedo um código digitado errado.
O formulário
Cole isto na sua página de casamento, ou num bloco de embed de um criador de sites. Ele lê party e names do link, adiciona uma linha de nome e refeição por convidado, até quatro, e se esconde depois do prazo. Sem nomes no link, ele mostra uma única linha para preencher.
<form id="rsvp" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
<input type="hidden" name="party" id="party">
<div id="guests"></div>
<label>Email for updates <input name="email" type="email" autocomplete="email" required></label>
<label>A song that gets you dancing <input name="song" maxlength="120"></label>
<label>Anything we should know? <textarea name="note" rows="3" maxlength="1000"></textarea></label>
<input type="hidden" name="_redirect" value="https://ada-and-sam.example/thank-you">
<input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
<button type="submit">Send our RSVP</button>
</form>
<p id="closed" hidden>RSVPs closed on 1 May. Message us if your plans have changed.</p>
<template id="guest-row">
<fieldset>
<legend></legend>
<label>Name <input data-part="name" maxlength="80" autocomplete="off"></label>
<label>Meal
<select data-part="meal">
<option value="beef">Beef</option>
<option value="fish">Fish</option>
<option value="vegetarian">Vegetarian</option>
<option value="child">Child's menu</option>
<option value="not_coming">Can't come</option>
</select>
</label>
</fieldset>
</template>
<script>
const DEADLINE = new Date("2027-05-01T23:59:00+01:00");
const params = new URLSearchParams(location.search);
const party = (params.get("party") ?? "").toLowerCase();
const names = (params.get("names") ?? "").split(",").map((name) => name.trim()).filter(Boolean).slice(0, 4);
const rsvp = document.getElementById("rsvp");
if (Date.now() > DEADLINE.getTime()) {
rsvp.hidden = true;
document.getElementById("closed").hidden = false;
} else {
document.getElementById("party").value = party;
const rows = names.length ? names : [""];
rows.forEach((name, index) => {
const n = index + 1;
const row = document.getElementById("guest-row").content.cloneNode(true);
row.querySelector("legend").textContent = name || "Your name";
const input = row.querySelector('[data-part="name"]');
input.name = `guest_${n}_name`;
input.value = name;
input.required = n === 1;
row.querySelector('[data-part="meal"]').name = `guest_${n}_meal`;
document.getElementById("guests").append(row);
});
}
</script>- A refeição de cada convidado inclui
Can't come, então uma família em que uma pessoa não pode ir ainda envia uma única resposta. - Os campos de nome vêm preenchidos, mas são editáveis, então um convidado pode corrigir a grafia ou dar o nome de uma criança.
- O formulário envia do jeito tradicional e cai na sua página de agradecimento via
_redirect. Coloque lá a data, o local e um link de calendário; o Ikiform não envia e-mail aos seus convidados. - O prazo só esconde o formulário no navegador. No dia do prazo, escolha Pause form no Ikiform também, para que uma aba salva não consiga enviar. Formulários pausados respondem
403 form_paused.
Cole esta definição na aba Fields do formulário. Experimente: um código de convite com letra maiúscula ou espaço falha no pattern, com a mensagem que você definiu.
Prévia
Roda o validador do Ikiform no seu navegador. Nada é enviado.
Quem não respondeu e o que encomendar
- Exporte os RSVPs como CSV em Submissions e importe-os numa aba chamada
Repliesna planilha da lista de convidados. - Se um convite respondeu duas vezes, mantenha a linha mais nova: ordene por
created_at, do mais novo para o mais antigo, e remova os duplicados na colunaparty. - Liste os convites sem resposta, com os códigos na coluna A da lista de convidados e
partyna coluna E de Replies:
=FILTER(A2:C, A2:A <> "", ISNA(MATCH(A2:A, Replies!E2:E, 0)))Depois conte cada refeição para o buffet. Os nomes nunca são iguais a um valor de refeição, então um único intervalo cobrindo todas as colunas de convidados funciona:
=COUNTIF(Replies!G2:N, "fish")| Número | Como |
|---|---|
| Pessoas que vêm | Some as contagens de beef, fish, vegetarian e child |
| Não poderá ir | COUNTIF no mesmo intervalo para not_coming |
| Pratos infantis | COUNTIF para child, que a maioria dos bufês cobra à parte |
| Observações alimentares | Leia a coluna note. É ali que as alergias aparecem |
Antes de enviar os convites
- Defina Allowed domains com o domínio do seu site de casamento, e com o domínio de staging do criador de sites enquanto testa.
- O Ikiform não mescla nem rejeita envios repetidos pelo e-mail. Uma repetição idêntica em até 24 horas só aumenta a pontuação de spam. Remova os duplicados onde a lista fica, ou na hora de exportar. A resposta mais nova por código é a que vale.
- Qualquer pessoa com um link pode mudar o código ou os nomes dele. Para um casamento, tudo bem; sua planilha decide quem foi convidado, e a lista de quem não respondeu mostra qualquer coisa estranha.
- Parentes mais velhos talvez nem usem o formulário. Anote na planilha as respostas por telefone e em papel para as contagens continuarem completas.
Confira antes de enviar os convites
- Abra o seu próprio link de convite num celular. Os nomes aparecem, cada um com uma escolha de refeição.
- Escolha
Can't comepara um convidado, envie e confira se você cai na sua página de agradecimento. - Abra Submissions no painel. O novo envio está lá com todos os campos que você enviou.
- Confira a caixa de entrada de cada destinatário das notificações. Cada um recebe um e-mail com os campos, e Reply vai para quem enviou quando o formulário tem um campo
email. - Importe o CSV e confira se a lista de quem não respondeu não mostra mais o seu código.
- Numa cópia de teste, defina o prazo como ontem e confirme que o formulário some.
Pegadinhas
| Problema | O que fazer |
|---|---|
422 com party: Use the link from your invitation | O código tem maiúsculas, espaços ou outros caracteres. Corrija o código na planilha ou peça ao convidado para usar o link dele. |
| Um convidado vê uma linha vazia em vez dos nomes | O link perdeu a parte names, muitas vezes porque um app de mensagens o encurtou. Envie o link completo ou o QR code. |
422 validation_failed | O envio não corresponde à definição de campos do formulário. error.fields aponta cada campo e o motivo. Faça o name do input bater com o id do campo. |
403 origin_not_allowed, ou todo envio cai no spam | O domínio da página não está em Allowed domains do formulário. Adicione-o, mais localhost para testes locais. Subdomínios de um domínio listado são permitidos. |
| O navegador cai na página de agradecimento do Ikiform em vez da sua | O _redirect é ignorado, a menos que o domínio dele esteja em Allowed domains e ele seja uma URL https:. Adicione o domínio, ou defina Redirect after submit nas configurações do formulário. |
Perguntas
Não. Os RSVPs vão para o seu painel do Ikiform e para a sua caixa de entrada. Nada é publicado de volta no site.
Não pelo Ikiform, que só envia e-mail para você. Mostre os detalhes na página de agradecimento, ou envie cada resposta por webhook para uma ferramenta de e-mail e mande a confirmação de lá.
Esconda o formulário na página depois da data, como o exemplo faz, e escolha Pause form no Ikiform. Um formulário pausado recusa novos envios com 403 form_paused.
As duas respostas são armazenadas. Ao contar, mantenha a mais nova por código de convite, ordenando da mais nova para a mais antiga e removendo os duplicados pelo código.
Não, não há plano gratuito. Testar é grátis: você pode enviar 50 envios de teste por mês a partir de localhost antes de pagar. Para entrar no ar, o Pro começa em US$ 6/mês para 500 envios, ou você pode pagar uma vez 10.000 envios por US$ 49 ou 50.000 envios por US$ 149, com créditos que nunca expiram.
Travou em algum passo ou quer um guia para o seu caso? Envie um e-mail para hello@ikiform.com.