Communitygithub.com

Constructor de invitaciones

Diseña un correo de invitación en HTML con imagen de cabecera, confirmación en un toque, archivo de calendario y un envío de prueba al anfitrión antes que a nadie.

¿Qué es Constructor de invitaciones?

Convierte un evento en una invitación que sí se puede mandar. Pide lugar, hora y hora de cierre, arma la cabecera, un HTML que llega a la bandeja, botones de respuesta, un .ics y una hoja de confirmaciones, y primero muestra una prueba al anfitrión.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

La habilidad de Invite-Builder

¿Qué hace?

Esta habilidad fue diseñada para Claude y funciona bien en ese entorno. Crea una invitación por correo electrónico HTML autodiseñada que llega a la bandeja de entrada de tu invitado (sin desviarse al spam), con botones RSVP que los invitados tocan una vez, un enlace para añadir al calendario y un encabezado visual. Termina con un correo de prueba para el usuario. Nunca envía correos electrónicos a nadie sin aprobación explícita. Realiza un seguimiento de las confirmaciones de asistencia (RSVP) en una hoja de cálculo.

Paso 1 - Detalles del evento (preguntar primero)

Pregúntalos uno a la vez, en este orden: una pregunta por mensaje (o por llamada AskUserQuestion), y espera la respuesta antes de hacer la siguiente. Omite cualquier cosa que el usuario ya haya respondido. Recopila:

  • Nombre del evento y la redacción exacta que quieren (si la tienen, úsala textualmente)
  • Fecha y zona horaria
  • Hora de inicio Y hora de finalización. Pregunta siempre por ambas, como pregunta separada. Nunca asumas o inventes una hora de finalización: el enlace para añadir al calendario y el archivo .ics la necesitan. Si el anfitrión no tiene una hora fija de finalización ("hasta tarde"), pregunta qué hora de finalización poner en la entrada del calendario, y si mostrar la hora de finalización en la propia invitación o dejarla solo en el calendario.
  • Dirección completa (calle, ciudad, estado, código postal - el código postal es necesario para las aplicaciones de mapas)
  • Nombres de los anfitriones y despedida (ej. "XOXO Clare y Conrad")
  • Cualquier característica a destacar (banda, orador, código de vestimenta)
  • Fecha límite de RSVP, y si quieren una opción "Tal vez - recuérdamelo"
  • Desde qué cuenta de correo electrónico se envía (una bandeja de entrada personal real es mejor para la entregabilidad)
  • Si también quieren una versión de mensaje de texto, para invitados que solo tienen un número de teléfono o que responden más rápido a los textos que al correo electrónico (ver Paso 3b)

Verifica que la fecha y el día de la semana coincidan (ej. confirma que el 19 de diciembre de 2026 es sábado) y dilo.

Paso 1b - Lista de invitados

Pregunta: "¿Tienes una lista de invitados para subir, o te gustaría que cree una hoja de cálculo para ti?"

A. La tienen (enlace de Google Sheet, subida CSV o Excel, exportación de Paperless Post / Evite pasada, o una lista pegada):

  • Léela y construye una pestaña de seguimiento limpia junto a la original (nunca edites su pestaña original): ID (G001...), Nombre del invitado, Correo electrónico, Teléfono, Invitado (número), Estado, Asistencia, Nota del invitado, Respuesta anterior (si la fuente tiene una), Indicador, Invitación enviada, Recordatorio enviado, Última actualización.
  • Fusiona duplicados (misma familia bajo dos direcciones, un acompañante que respondió por separado, filas de "Invitado adicional") y anota cada fusión en Indicador.
  • Establece el Estado como "No enviado", o "Necesita correo electrónico" para invitados solo con teléfono y direcciones que rebotaron anteriormente. Marca las direcciones del trabajo, que pueden filtrar las invitaciones.
  • Añade una pestaña Resumen: recuento (SUMPRODUCT de Asistencia donde Estado = Sí), conteos de Sí / Tal vez / No / Invitado / No enviado / Necesita correo electrónico / Rebotado, total de hogares, máximo de invitados posibles. Añade un desplegable de Estado.
  • Informa del recuento, las fusiones y la lista de invitados a los que les falta una dirección de correo electrónico.

B. Quieren una nueva:

  • Crea un archivo xls llamado "[Nombre del evento] [Año] Lista de invitados" con las mismas pestañas de seguimiento y Resumen, vacías, y comparte el enlace.
  • Diles que pueden pegar nombres y correos electrónicos, o dártelos en el chat y tú los añadirás.

C. Todavía no: continúa con el diseño y vuelve a la lista antes del Paso 5. Nunca envíes sin una lista.

Paso 2 - Imagen de encabezado

Pregunta: "¿Tienes una imagen de encabezado que te gustaría usar?"

A. Suben una.

  • Mírala. Elige 2-3 colores muestreados de ella (el acento dominante, un oscuro para texto, un claro para fondo) y una combinación de fuentes que coincida con su estado de ánimo (imagen divertida -> serifa redondeada; fotográfica o elegante -> sans-serif limpia; vintage -> serifa grabada).
  • Si tiene un fondo transparente, aplánalo sobre el color de fondo de la invitación (blanco para diseños blancos). Un PNG transparente sobre una página blanca se ve más limpio que una imagen encuadrada.
  • Construye UN diseño acorde con ella, luego ofrece dos variaciones solo si lo piden.

B. No tienen una.

  • Pregunta qué ambiente quieren (ej. acogedor, glamuroso, retro, minimalista, festivo, elegante, tonto) y qué colores usar o evitar.
  • Crea la imagen de encabezado tú mismo:
    • Prefiere una herramienta de generación de imágenes si hay una conectada (ej. Canva generate-image). Pide un banner ancho (2:1), el sujeto sobre un fondo liso o transparente, sin texto a menos que el usuario lo quiera.
    • De lo contrario, dibuja una ilustración original como SVG y renderízala a PNG con Playwright.
    • Nunca reproduzcas un personaje, logotipo, obra de arte o marca conocidos.
  • Produce 3 opciones distintas, cada una con su propio encabezado, combinación de fuentes y paleta (ej. Divertido, Moderno, Clásico). Muestra las tres una al lado de la otra a tamaño de teléfono y deja que el usuario elija o mezcle.

Paso 3 - Construir el correo electrónico (reglas aprendidas a la fuerza)

Los clientes de correo electrónico no son navegadores. Sigue todo esto:

  • Diseño: tabla anidada <table role="presentation">, ancho máximo 520-560px, todos los estilos en línea. Sin clases CSS, sin flexbox, sin imágenes externas.
  • Fuentes: solo pilas seguras para la web: 'Helvetica Neue',Helvetica,Arial,sans-serif, Palatino,'Palatino Linotype','Book Antiqua',serif, 'Times New Roman',Times,serif, Georgia,serif. Obtén personalidad del peso, el interletraje, las mayúsculas y el tamaño, no de fuentes personalizadas.
  • No coloques texto sobre un bloque de fondo de color. Algunos clientes eliminan los fondos de las tablas, dejando texto blanco sobre blanco. Usa texto COLOREADO sobre el fondo de la página en su lugar. Para un botón sólido, establece el color tanto como bgcolor="#hex" en un <td> envolvente como como background: en el enlace.
  • Imagen de encabezado: adjunta en línea y referencia como src="cid:att0" (primer adjunto). Redimensiona a ~400-520px de ancho, calidad JPEG ~45-60, apunta a menos de 30KB para que el base64 quepa en una llamada de herramienta. Establece atributos explícitos de ancho/alto.
  • Alinea a la izquierda o al centro de manera consistente: cada sección (detalles, característica, RSVP, despedida) en el mismo borde.
  • Sin guiones largos en ningún texto. Usa un guion.
  • Usa símbolos que se rendericen en todas partes (ej. ❄ copo de nieve, ◆ diamante, 📅 calendario). Evita los asteriscos literales como decoración.

Botones RSVP (mailto, sin formulario ni inicio de sesión)

Tres botones, cada uno un mailto a la dirección del anfitrión con un asunto y cuerpo predefinidos:

  • Sí: asunto RSVP SÍ: <Evento>; cuerpo "¿Cuántos de nosotros venimos (por favor, completa):" con un espacio en blanco - nunca asumas un número de asistentes.
  • Tal vez - recuérdamelo: asunto RSVP TAL VEZ: <Evento>; cuerpo "Espero poder asistir, por favor recuérdame más cerca de la fecha."
  • No: asunto RSVP NO: <Evento>. Codifica la URL del asunto y el cuerpo (urllib.parse.quote). Nota debajo de los botones solo si el usuario lo quiere: los invitados también pueden simplemente responder.

Añadir a tu calendario

Un enlace con un icono de calendario a la URL de plantilla de Google Calendar: https://calendar.google.com/calendar/render?action=TEMPLATE&text=<título>&dates=YYYYMMDDTHHMMSS/YYYYMMDDTHHMMSS&ctz=&location=<dirección completa>&details=<una línea>

También adjunta un archivo .ics (METHOD:PUBLISH, bloque VTIMEZONE, DTSTART/DTEND con TZID, LOCATION con comas escapadas, saltos de línea CRLF) para usuarios de Apple Calendar y Outlook.

Explica al usuario que un enlace no puede enviar una invitación de calendario; una invitación de calendario real expondría la lista de invitados a todos.

Paso 3b - Versión de mensaje de texto (solo si el usuario dijo que sí en el Paso 1)

Escribe una versión de texto plano corta que el anfitrión pueda enviar desde su propio teléfono:

  • De unos 320 caracteres si es posible, para que no se divida en varios mensajes. Solo texto plano: sin HTML, sin imágenes, sin archivos adjuntos.
  • En la voz del anfitrión, con la misma redacción que el correo electrónico: nombre del evento, día de la semana y fecha, hora de inicio, dirección completa, el aspecto destacado (banda, código de vestimenta), la despedida.
  • Línea de RSVP: "Responde SÍ (y cuántos sois), TAL VEZ o NO". No uses enlaces mailto: son torpes en los teléfonos.
  • Línea opcional para añadir al calendario: el enlace de Google Calendar del Paso 3, solo si el usuario lo quiere (es largo y hace que el texto parezca spam).
  • Sin guiones largos. Emoji solo si el usuario lo pide. Muéstralo en una tarjeta de redacción de mensaje para que el usuario pueda copiarlo o abrirlo en Mensajes. Ofrece también un texto de recordatorio de una línea, para los invitados que respondieron Tal vez y los que no respondieron.
  • Dile claramente al usuario: Claude no puede enviar textos ni leer respuestas de texto. Ellos mismos envían el texto, y actualizan el seguimiento cuando llegan las respuestas o le dicen a Claude y Claude lo actualiza. En el seguimiento, marca a los invitados por texto con "Invitado (texto)" en Estado y la fecha en Invitación enviada, para que el envío de correo electrónico nunca les envíe un duplicado.

Paso 4 - Vista previa, luego envío de prueba

  • Renderiza el HTML con el encabezado cambiado a un archivo local y captura la pantalla con Playwright a 400px de ancho (device_scale_factor 2) y 640px. Míralo tú mismo antes de mostrarlo. Guarda la vista previa como [AA MM DD] [Evento] Vista previa de invitación.png y entrégala.
  • Iterar sobre la redacción, el diseño y los colores a partir de los comentarios del usuario; vuelve a previsualizar cada vez.
  • Cuando digan que lo pruebes: envía el correo electrónico solo al usuario, con el asunto prefijado [PRUEBA] (luego [PRUEBA 2], etc.), con la imagen en línea y el archivo .ics adjuntos, más un cuerpo alternativo de texto plano. Pídeles que verifiquen: la imagen se muestra en línea, los botones abren la respuesta predefinida, el botón sólido es visible, el enlace del calendario y el archivo funcionan, se ve bien en un teléfono.
  • Guarda la plantilla final, el .ics y los datos del evento en el proyecto de Claude si hay uno adjunto, para que una sesión posterior pueda enviarlo.

Paso 5 - Envío a los invitados (solo cuando el usuario dice que está listo)

  • Usa el seguimiento del Paso 1b. Cada fila con un correo electrónico y Estado "No enviado" va en el envío; las filas marcadas "Necesita correo electrónico" se enumeran para que el usuario las resuelva.
  • Por defecto: un BORRADOR de Gmail dirigido al usuario con todos los invitados en CCO (la imagen en línea debe adjuntarse por mensaje, por lo que los envíos personalizados por invitado no son prácticos). El usuario lo aprueba o lo envía él mismo.
  • Marca a los invitados solo con número de teléfono, direcciones que rebotaron, duplicados y direcciones del trabajo que puedan filtrar las invitaciones.
  • Después de enviar, marca esas filas como "Invitado" con la fecha de envío.

Paso 6 - Seguimiento continuo (configurar como una tarea programada)

Ofrece un seguimiento continuo contra el mismo rastreador: una tarea programada que pueda recoger invitados recién añadidos, leer respuestas que coincidan con el asunto:RSVP asunto:, actualizar la hoja, redactar (nunca enviar) recordatorios a los invitados que respondieron Tal vez y los que no respondieron en la fecha de recordatorio, y enviar al anfitrión una actualización solo cuando algo haya cambiado.

Antes de crear la tarea, pregunta estas una a la vez (una pregunta por mensaje o llamada AskUserQuestion, esperando cada respuesta):

  1. ¿Quieres que supervise tu bandeja de entrada para los RSVP? Sí: Claude lee las respuestas de RSVP (respuestas de botón y respuestas de texto libre a la invitación), registra cada respuesta, número de asistentes y nota en el seguimiento, y te envía una actualización por correo electrónico cuando algo cambia. No: Claude no lee la bandeja de entrada, y el anfitrión actualiza el seguimiento él mismo (o se lo dice a Claude en el chat).
  2. En caso afirmativo: ¿con qué frecuencia debo revisar tu bandeja de entrada en busca de RSVP? Opciones: Cada hora (mejor en las últimas dos semanas), Cada pocas horas, Una vez al día (menos correos de actualización), u Otro. Cada hora es normalmente el intervalo más corto que permite una tarea programada. Si quieren un ritmo diferente más cerca de la fecha (ej. a diario ahora, cada hora en la última semana), establece el primer horario y ofrece un recordatorio único para cambiarlo.
  3. ¿Los nuevos invitados deberían recibir su invitación automáticamente cuando los añadas al seguimiento? O Claude reenvía la invitación maestra a cada nueva fila (el anfitrión solo escribe un nombre y un correo electrónico), o Claude crea un borrador para que el anfitrión lo envíe, o ninguna de las dos. El envío automático necesita una herramienta de envío/reenvío de Gmail en la ejecución programada. Si la configuración de la organización la elimina, dilo de antemano y recurre a los borradores.
  4. En caso afirmativo a la pregunta 3: ¿con qué frecuencia debo revisar el seguimiento en busca de nuevos invitados? Ofrece las mismas opciones que la pregunta 2, y sugiere el mismo horario que las comprobaciones de RSVP para que una tarea haga ambas. Usa horarios separados solo si el anfitrión solicita ritmos diferentes.
  5. Si no respondieron a la pregunta de texto en el Paso 1, pregunta ahora: ¿También quieres una versión de mensaje de texto? En caso afirmativo, haz el Paso 3b.

Si la respuesta tanto a la pregunta 1 como a la pregunta 3 es no, no crees una tarea programada. Di que el seguimiento está desactivado y que pueden solicitarlo más tarde.

De lo contrario, escribe las instrucciones permanentes en el proyecto de Claude (un .md por evento), cubriendo solo lo que el anfitrión activó, y crea la tarea programada con el horario elegido. También informa al anfitrión qué configuración de aprobación obtuvo la tarea.

Skills relacionados