Communitygithub.com

Construtor de convites

Monta um e-mail de convite em HTML com imagem de cabeçalho, RSVP num toque, arquivo de calendário e um envio de teste ao anfitrião antes de qualquer convidado.

O que é Construtor de convites?

Transforma um evento num convite que pode mesmo ser enviado. Pede local, início e fim, cabeçalho, HTML que chega à caixa de entrada, botões de resposta, um .ics e uma folha de confirmações, e mostra primeiro um teste ao anfitrião.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flyncl/invite-builder-skill/tree/HEAD

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

A habilidade Invite-Builder

O que ela faz

Esta habilidade foi projetada para o Claude e funciona bem nesse ambiente. Cria um convite HTML por e-mail auto-projetado que chega na caixa de entrada do seu convidado (sem ser desviado para o spam), com botões de RSVP que os convidados tocam uma vez, um link para adicionar ao calendário e um visual de cabeçalho. Termina com um e-mail de teste para o usuário. Nunca envia e-mails para ninguém sem aprovação explícita. Rastreia RSVPs em uma planilha.

Passo 1 - Detalhes do evento (pergunte primeiro)

Faça estas perguntas uma de cada vez, nesta ordem: uma pergunta por mensagem (ou por chamada AskUserQuestion), e aguarde a resposta antes de fazer a próxima. Pule qualquer uma que o usuário já tenha respondido. Colete:

  • Nome do evento e a redação exata que eles desejam (se eles tiverem, use-a textualmente)
  • Data e fuso horário
  • Horário de início E horário de término. Sempre pergunte por ambos, como uma pergunta separada. Nunca presuma ou invente um horário de término: o link para adicionar ao calendário e o arquivo .ics precisam dele. Se o anfitrião não tiver um horário de término fixo ("até tarde"), pergunte qual horário de término colocar na entrada do calendário e se deve mostrar o horário de término no próprio convite ou deixá-lo apenas no calendário.
  • Endereço completo (rua, cidade, estado, CEP - o CEP é necessário para aplicativos de mapa)
  • Nomes dos anfitriões e encerramento (ex. "XOXO Clare e Conrad")
  • Qualquer recurso a destacar (banda, palestrante, código de vestimenta)
  • Data limite para RSVP e se eles desejam uma opção "Talvez - lembre-me"
  • Qual conta de e-mail será usada para o envio (uma caixa de entrada pessoal real é melhor para a capacidade de entrega)
  • Se eles também desejam uma versão para mensagem de texto, para convidados que só têm número de telefone ou que respondem a textos mais rápido do que a e-mail (consulte o Passo 3b)

Verifique se a data e o dia da semana coincidem (por exemplo, confirme que 19 de dezembro de 2026 é um sábado) e informe isso.

Passo 1b - Lista de convidados

Pergunte: "Você tem uma lista de convidados para enviar, ou gostaria que eu criasse uma planilha para você?"

A. Eles têm uma lista (link do Google Sheets, upload de CSV ou Excel, exportação do Paperless Post / Evite ou uma lista colada):

  • Leia-a e crie uma aba de rastreador limpa ao lado da original (nunca edite a aba original deles): ID (G001...), Nome do convidado, E-mail, Telefone, Convidados (número), Status, Comparecimento, Nota do convidado, Resposta anterior (se a origem tiver uma), Sinalizador, Convite enviado, Lembrete enviado, Última atualização.
  • Mescle duplicatas (mesma residência em dois endereços, um parceiro que respondeu separadamente, linhas de "Convidado adicional") e anote cada mescla no Sinalizador.
  • Defina o Status como "Não enviado" ou "Precisa de e-mail" para convidados apenas com telefone e endereços que já devolveram. Sinalize endereços de trabalho, que podem filtrar convites.
  • Adicione uma aba Resumo: número total de pessoas (SUMPRODUCT de Comparecimento onde Status = Sim), contagens de Sim / Talvez / Não / Convidados / Não enviado / Precisa de e-mail / Devolvido, total de residências, máximo de convidados possíveis. Adicione um menu suspenso de Status.
  • Relate de volta a contagem, as mesclas e a lista de convidados sem endereço de e-mail.

B. Eles querem uma nova:

  • Crie um arquivo xls chamado "[Nome do evento] [Ano] Lista de Convidados" com as mesmas abas de rastreador e Resumo, vazias, e compartilhe o link.
  • Diga a eles que podem colar nomes e e-mails ou fornecê-los a você no chat e você os adicionará.

C. Ainda não: Continue com o design e volte à lista antes do Passo 5. Nunca envie sem uma lista.

Passo 2 - Visual do cabeçalho

Pergunte: "Você tem uma imagem de cabeçalho que gostaria de usar?"

A. Eles enviam uma.

  • Olhe para ela. Escolha 2 a 3 cores extraídas dela (o acento dominante, um escuro para texto, um claro para fundo) e uma combinação de fontes que combine com seu clima (imagem divertida -> serifa arredondada; fotográfica ou elegante -> sem serifa limpa; vintage -> serifa gravada).
  • Se tiver fundo transparente, achate sobre a cor de fundo do convite (branco para layouts brancos). Um PNG transparente em uma página branca parece mais limpo do que uma imagem emoldurada.
  • Crie UM design em harmonia com ela e ofereça duas variações somente se eles pedirem.

B. Eles não têm uma.

  • Pergunte qual vibe eles desejam (por exemplo, aconchegante, glamorosa, retrô, minimalista, festiva, elegante, boba) e quaisquer cores para usar ou evitar.
  • Crie a imagem de cabeçalho você mesmo:
    • Prefira uma ferramenta de geração de imagem se uma estiver conectada (por exemplo, Canva generate-image). Peça um banner largo (2:1), o assunto em um fundo simples ou transparente, sem texto a menos que o usuário queira.
    • Caso contrário, desenhe uma ilustração original como SVG e renderize-a para PNG com Playwright.
    • Nunca reproduza um personagem, logotipo, obra de arte ou marca conhecidos.
  • Produza 3 opções distintas, cada uma com seu próprio cabeçalho, combinação de fontes e paleta (por exemplo, Divertido, Moderno, Clássico). Mostre todas as três lado a lado na largura de um telefone e deixe o usuário escolher ou misturar.

Passo 3 - Construa o e-mail (regras aprendidas da maneira mais difícil)

Os clientes de e-mail não são navegadores. Siga todas estas:

  • Layout: <table role="presentation"> aninhado, largura máxima de 520-560px, todos os estilos inline. Sem classes CSS, sem flexbox, sem imagens externas.
  • Fontes: apenas pilhas seguras para web: 'Helvetica Neue',Helvetica,Arial,sans-serif, Palatino,'Palatino Linotype','Book Antiqua',serif, 'Times New Roman',Times,serif, Georgia,serif. Obtenha personalidade com peso, espaçamento entre letras, maiúsculas e tamanho, não com fontes personalizadas.
  • Não coloque texto em um bloco de fundo colorido. Alguns clientes removem fundos de tabela, deixando texto branco sobre branco. Use texto COLORIDO no fundo da página. Para um botão sólido, defina a cor como bgcolor="#hex" em um <td> de encapsulamento e como background: no link.
  • Imagem de cabeçalho: anexe inline e referencie como src="cid:att0" (primeiro anexo). Redimensione para aproximadamente 400-520px de largura, qualidade JPEG ~45-60, alvo abaixo de 30KB para que o base64 caiba em uma chamada de ferramenta. Defina atributos explícitos de largura/altura.
  • Alinhe à esquerda ou centralize consistentemente - cada seção (detalhes, recurso, RSVP, encerramento) na mesma borda.
  • Sem travessões em nenhum texto. Use um hífen.
  • Use símbolos que renderizem em todos os lugares (por exemplo, ❄ floco de neve, ◆ diamante, 📅 calendário). Evite asteriscos literais como decoração.

Botões de RSVP (mailto, sem formulário ou login)

Três botões, cada um um mailto para o endereço do anfitrião com assunto e corpo preenchidos:

  • Sim: assunto RSVP SIM: <Evento>; corpo pergunta "Quantos de nós estão vindo (preencha, por favor):" com um espaço em branco - nunca presuma um número.
  • Talvez - lembre-me: assunto RSVP TALVEZ: <Evento>; corpo "Esperando comparecer - por favor, lembre-me mais perto da data."
  • Não: assunto RSVP NÃO: <Evento>. Codifique URL do assunto e corpo (urllib.parse.quote). Nota abaixo dos botões somente se o usuário quiser: os convidados também podem apenas responder.

Adicione ao seu calendário

Um link com um ícone de calendário para o URL de modelo do Google Agenda: https://calendar.google.com/calendar/render?action=TEMPLATE&text=<título>&dates=YYYYMMDDTHHMMSS/YYYYMMDDTHHMMSS&ctz=&location=<endereço completo>&details=

Anexe também um arquivo .ics (METHOD:PUBLISH, bloco VTIMEZONE, DTSTART/DTEND com TZID, LOCATION com vírgulas escapadas, quebras de linha CRLF) para usuários do Apple Calendar e Outlook.

Explique ao usuário que um link não pode enviar um convite de calendário; um convite de calendário real exporia a lista de convidados a todos.

Passo 3b - Versão para mensagem de texto (somente se o usuário disse sim no Passo 1)

Escreva uma versão curta em texto simples que o anfitrião possa enviar do próprio telefone:

  • Abaixo de cerca de 320 caracteres, se possível, para que não se divida em várias mensagens. Apenas texto simples: sem HTML, sem imagens, sem anexos.
  • Na voz do anfitrião, com a mesma redação do e-mail: nome do evento, dia da semana e data, horário de início, endereço completo, destaque (banda, código de vestimenta), encerramento.
  • Linha de RSVP: "Responda SIM (e quantos de vocês), TALVEZ ou NÃO". Não use links mailto: eles são complicados em telefones.
  • Linha opcional de adicionar ao calendário: o link do Google Agenda do Passo 3, somente se o usuário quiser (é longo e faz o texto parecer spam).
  • Sem travessões. Emoji somente se o usuário pedir. Mostre-o em um cartão de composição de mensagem para que o usuário possa copiá-lo ou abri-lo no Mensagens. Ofereça também um texto de lembrete de uma linha, para convidados Talvez e sem resposta.
  • Diga claramente ao usuário: Claude não pode enviar textos ou ler respostas de texto. Eles enviam o texto eles mesmos e ou atualizam o rastreador quando as respostas chegam ou dizem a Claude e Claude o atualiza. No rastreador, marque os convidados que receberam texto com "Convidado (texto)" no Status e a data em Convite enviado, para que o envio de e-mail nunca os envie um duplicado.

Passo 4 - Visualização, depois envio de teste

  • Renderize o HTML com o cabeçalho trocado para um arquivo local e tire um print com Playwright com 400px de largura (device_scale_factor 2) e 640px. Olhe você mesmo antes de mostrá-lo. Salve a visualização como [AA MM DD] [Evento] Visualização do Convite.png e entregue-a.
  • Itere sobre a redação, layout e cores com base no feedback do usuário; re-visualize cada vez.
  • Quando eles disserem para testar: envie o e-mail apenas para o usuário, assunto prefixado com [TESTE] (depois [TESTE 2], etc.), com a imagem inline e o .ics anexados, mais um corpo alternativo em texto simples. Peça-lhes para verificar: a imagem aparece inline, os botões abrem a resposta pré-preenchida, o botão sólido está visível, o link do calendário e o arquivo funcionam, parece correto em um telefone.
  • Salve o modelo final, o .ics e os fatos do evento no projeto Claude se um estiver anexado, para que uma sessão posterior possa enviá-lo.

Passo 5 - Envio para os convidados (somente quando o usuário disser que está pronto)

  • Use o rastreador do Passo 1b. Cada linha com um e-mail e Status "Não enviado" entra no envio; linhas marcadas como "Precisa de e-mail" são listadas para o usuário resolver.
  • Padrão: um RASCUNHO do Gmail endereçado ao usuário com todos os convidados em CCO (a imagem inline deve ser anexada por mensagem, portanto envios personalizados por convidado não são práticos). O usuário aprova ou envia ele mesmo.
  • Sinalize convidados apenas com números de telefone, endereços devolvidos, duplicatas e endereços de trabalho que podem filtrar convites.
  • Após o envio, marque essas linhas como "Convidado" com a data de envio.

Passo 6 - Acompanhamento contínuo (configurar como uma tarefa agendada)

Ofereça acompanhamento contínuo contra o mesmo rastreador: uma tarefa agendada que pode pegar novos convidados adicionados, ler respostas que correspondem ao assunto:assunto RSVP:, atualizar a planilha, criar rascunhos (nunca enviar) de lembretes para convidados Talvez e sem resposta na data do lembrete e enviar ao anfitrião uma atualização somente quando algo mudar.

Antes de criar a tarefa, faça estas perguntas uma de cada vez (uma pergunta por mensagem ou chamada AskUserQuestion, aguardando cada resposta):

  1. Você quer que eu monitore sua caixa de entrada para RSVPs? Sim: Claude lê as respostas de RSVP (respostas de botão e respostas de texto livre ao convite), registra cada resposta, número de convidados e nota no rastreador e envia a você uma atualização por e-mail quando algo mudar. Não: Claude não lê a caixa de entrada, e o anfitrião atualiza o rastreador ele mesmo (ou diz a Claude no chat).
  2. Se sim: com que frequência devo verificar sua caixa de entrada para RSVPs? Opções: a cada hora (melhor nas últimas duas semanas), a cada poucas horas, uma vez por dia (menos e-mails de atualização) ou Outro. Por hora é normalmente o intervalo mais curto que uma tarefa agendada permite. Se eles quiserem um ritmo diferente mais perto da data (por exemplo, diariamente agora, por hora na semana final), defina o primeiro cronograma e ofereça um lembrete único para alterá-lo.
  3. Novos convidados devem receber o convite automaticamente quando você os adicionar ao rastreador? Ou Claude encaminha o convite principal para cada nova linha (o anfitrião apenas digita um nome e e-mail), ou Claude cria um rascunho para o anfitrião enviar, ou nenhum. O envio automático precisa de uma ferramenta de envio/encaminhamento do Gmail na execução agendada. Se as configurações da organização a removerem, diga isso upfront e recue para rascunhos.
  4. Se sim para a pergunta 3: com que frequência devo verificar o rastreador em busca de novos convidados? Ofereça as mesmas opções da pergunta 2 e sugira o mesmo cronograma das verificações de RSVP para que uma tarefa faça ambas. Use cronogramas separados somente se o anfitrião pedir ritmos diferentes.
  5. Se eles não responderam à pergunta do texto no Passo 1, pergunte agora: Você também quer uma versão para mensagem de texto? Se sim, faça o Passo 3b.

Se a resposta para ambas as perguntas 1 e 3 for não, não crie uma tarefa agendada. Diga que o acompanhamento está desligado e eles podem pedir mais tarde.

Caso contrário, escreva as instruções permanentes para o projeto Claude (um .md por evento), cobrindo apenas o que o anfitrião ativou, e crie a tarefa agendada com o cronograma escolhido. Informe também ao anfitrião qual configuração de aprovação a tarefa recebeu.

Habilidades Relacionadas