Pendiente
Formulario sin completar.
Score onboarding
Siguiente paso
Formulario sin completar.
Sin evaluación todavía.
Sin guía generada.
Brand Foundation, Visual DNA y Sistema Visual.
Formulario, evaluación y guía de sesión.
Google Meet, transcripción y vacíos cubiertos.
Brand Foundation, Visual DNA y Sistema Visual.
Ideas, grilla mensual y textos para Meta Ads.
Sin vacíos críticos detectados.
Cada cliente tiene su propio perfil con formulario, transcripción, documentos estratégicos y producción de contenido.
Las respuestas se guardan automáticamente en este navegador. Puedes completar ahora, volver después y seguir desde donde quedaste.
Completa el formulario para obtener una evaluación automática del material entregado.
Usa estas preguntas como guía durante la reunión. Después pega la transcripción y el sistema marcará cuáles se respondieron.
Estrategia, posicionamiento, audiencia, voz, sistema de lenguaje y reglas de comunicación. Generado desde formulario + transcripción.
Describe al profesional y su entorno real para replicarlo en prompts e imágenes coherentes con la marca.
Paleta, tipografías, composición y reglas visuales por formato.
El cliente responde el formulario en Google Forms y el perfil se crea solo en la app. Sin intervención manual.
Completa el Google Form que le enviaste. Tú no tocas nada.
Un script se activa automáticamente al recibir la respuesta y hace POST al webhook.
El cliente ya está en la lista. Solo falta la sesión y los documentos.
Esta es la URL que debes pegar en el Google Apps Script. Necesitas que el servidor sea accesible desde internet (ngrok o deploy).
Cargando...
Si usas ngrok, recuerda actualizarla cada vez que reinicias el túnel, o configura un dominio fijo en ngrok.
TU_URL_WEBHOOK_AQUÍ por la URL de arriba.onFormSubmit · evento Al enviar el formulario → Guardar.function onFormSubmit(e) {
var WEBHOOK_URL = 'TU_URL_WEBHOOK_AQUÍ'; // Ej: https://xxxx.ngrok-free.app/api/intake/webhook
var WEBHOOK_TOKEN = ''; // Opcional: solo si configuraste WEBHOOK_TOKEN en el .env
var responses = e.response.getItemResponses();
var map = {};
responses.forEach(function(r) {
map[r.getItem().getTitle()] = r.getResponse() || '';
});
var get = function(key) { return (map[key] || '').toString().trim(); };
var intake = {
contactEmail: get('Correo personal de contacto'),
fullName: get('Nombre completo'),
brandName: get('Nombre de marca o clínica'),
specialty: get('Especialidad'),
city: get('Ciudad donde atiendes'),
instagram: get('Instagram principal'),
website: get('Sitio web'),
whatsapp: get('WhatsApp o contacto principal'),
mainServices: get('¿Cuáles son los principales tratamientos o servicios que realizas?'),
priorityService: get('¿Cuál es el tratamiento o servicio que más te interesa impulsar actualmente?'),
nonPriorityServices: get('¿Hay algún tratamiento o servicio que no quieras impulsar por ahora?'),
contentGoal: get('¿Qué te gustaría lograr con tu contenido?'),
desiredAction: get('¿Qué te gustaría que hiciera una persona después de ver tu contenido?'),
expectedResults: get('¿Qué resultados esperas obtener al publicar con más consistencia?'),
idealPatient: get('¿Qué tipo de paciente te interesa atraer?'),
patientNeeds: get('¿Qué busca ese paciente?'),
patientFears: get('¿Qué suele preocuparle o darle miedo?'),
patientObjections: get('¿Qué dudas u objeciones repite con frecuencia?'),
realDifferentiators: get('¿Qué te diferencia de otros profesionales o clínicas?'),
technologyAndTools: get('¿Qué tecnologías, herramientas o procesos usas que consideras importantes?'),
decisionCriteria: get('¿Cómo decides qué tratamiento indicar?'),
neverRecommend: get('¿Hay algo que nunca recomiendes o que prefieras evitar?'),
desiredPerception: get('¿Cómo te gustaría que te perciban en redes?'),
preferredTone: get('¿Qué tono sientes que te representa mejor?'),
sensitiveTopics: get('¿Hay temas delicados o que prefieres no tocar?'),
hasVisualStyle: get('¿Ya tienes colores o un estilo visual definido?'),
brandColors: get('¿Cuáles son tus colores? (Si tienes el código hex, mejor aún)'),
brandTypography: get('Nombres de las tipografías'),
visualReferencesLikes: get('¿Hay cuentas, marcas o estilos visuales que te gusten?'),
visualReferencesDislikes: get('¿Hay estilos visuales que no te gusten o que sientas que no te representan?'),
cameraComfort: get('¿Te acomoda salir en cámara?'),
ideaCommunicationEase: get('¿Qué tan fácil se te hace explicar ideas frente a cámara?'),
hasOwnImages: get('¿Ya cuentas con fotos o videos tuyos y de tu clínica?'),
hasClinicalCases: get('¿Tienes casos clínicos de antes y después?'),
hasProcessMaterial: get('¿Tienes fotos o videos del box, consulta, tecnología o laboratorio?'),
visualPackStatus: get('Estado del Visual Reference Pack'),
legalEthicalRestrictions: get('¿Hay algo que legal, ética o profesionalmente no debamos prometer o comunicar?'),
specialCareTopics: get('¿Hay tratamientos o temas que requieren especial cuidado al comunicar?')
};
var payload = { intake: intake };
if (WEBHOOK_TOKEN) payload.token = WEBHOOK_TOKEN;
var options = {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
var response = UrlFetchApp.fetch(WEBHOOK_URL, options);
Logger.log('Status: ' + response.getResponseCode());
Logger.log('Body: ' + response.getContentText());
}
Genera, revisa y aprueba ideas orgánicas antes de llevarlas a la grilla.
Haz clic en Generar ideas de contenido para comenzar.
Necesitas tener generados: Onboarding, Brand System y Base Verbal.
| Fecha | Estado | Tema | Foco | Formato | Texto / guión | Caption |
|---|
Genera textos para gráficas 1:1 y copy/caption final para Meta Ads usando los documentos del cliente.
Convierte la estrategia del cliente en una landing editable por secciones.
🏗
Para mejores resultados, completa el formulario y genera al menos Brand Foundation y Visual DNA antes de crear la landing.