[{"data":1,"prerenderedAt":1936},["ShallowReactive",2],{"docs-nav-docs_es":3,"docs-search-docs_es":213,"doc-docs_es-\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales":1766,"surround-docs_es-\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales":1932},[4],{"title":5,"path":6,"stem":7,"children":8,"page":58},"Docs","\u002Fdocs","docs",[9,13,17,21,59,92,105,134,155,159,184,188,192],{"title":10,"path":11,"stem":12},"Introducción","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction",{"title":14,"path":15,"stem":16},"Primeros pasos","\u002Fdocs\u002Fgetting-started","docs\u002F02.getting-started",{"title":18,"path":19,"stem":20},"Cómo funciona","\u002Fdocs\u002Fhow-it-works","docs\u002F03.how-it-works",{"title":22,"path":23,"stem":24,"children":25,"page":58},"Conceptos","\u002Fdocs\u002Fconcepts","docs\u002F04.concepts",[26,30,34,38,42,46,50,54],{"title":27,"path":28,"stem":29},"Workspaces y recursos","\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources","docs\u002F04.concepts\u002F1.workspaces-and-resources",{"title":31,"path":32,"stem":33},"Servicios y disponibilidad","\u002Fdocs\u002Fconcepts\u002Fservices-and-availability","docs\u002F04.concepts\u002F2.services-and-availability",{"title":35,"path":36,"stem":37},"Reservas y pre-reservas","\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds","docs\u002F04.concepts\u002F3.bookings-and-holds",{"title":39,"path":40,"stem":41},"Automatizaciones","\u002Fdocs\u002Fconcepts\u002Fautomations","docs\u002F04.concepts\u002F4.automations",{"title":43,"path":44,"stem":45},"Búsqueda global","\u002Fdocs\u002Fconcepts\u002Fglobal-search","docs\u002F04.concepts\u002F5.global-search",{"title":47,"path":48,"stem":49},"Resultados y ventas","\u002Fdocs\u002Fconcepts\u002Fsales-results","docs\u002F04.concepts\u002F6.sales-results",{"title":51,"path":52,"stem":53},"Cómo llamás a las cosas","\u002Fdocs\u002Fconcepts\u002Fvocabulary","docs\u002F04.concepts\u002F7.vocabulary",{"title":55,"path":56,"stem":57},"Temas y paletas","\u002Fdocs\u002Fconcepts\u002Fthemes","docs\u002F04.concepts\u002F8.themes",false,{"title":60,"path":61,"stem":62,"children":63,"page":58},"Canales","\u002Fdocs\u002Fchannels","docs\u002F05.channels",[64,68,72,76,80,84,88],{"title":65,"path":66,"stem":67},"WhatsApp","\u002Fdocs\u002Fchannels\u002Fwhatsapp","docs\u002F05.channels\u002F01.whatsapp",{"title":69,"path":70,"stem":71},"Chat web","\u002Fdocs\u002Fchannels\u002Fwebchat","docs\u002F05.channels\u002F02.webchat",{"title":73,"path":74,"stem":75},"Telegram","\u002Fdocs\u002Fchannels\u002Ftelegram","docs\u002F05.channels\u002F03.telegram",{"title":77,"path":78,"stem":79},"Pausas y Estado","\u002Fdocs\u002Fchannels\u002Fpauses-and-status","docs\u002F05.channels\u002F04.pauses-and-status",{"title":81,"path":82,"stem":83},"Inbox","\u002Fdocs\u002Fchannels\u002Finbox","docs\u002F05.channels\u002F05.inbox",{"title":85,"path":86,"stem":87},"Formulario","\u002Fdocs\u002Fchannels\u002Fform","docs\u002F05.channels\u002F06.form",{"title":89,"path":90,"stem":91},"Instagram","\u002Fdocs\u002Fchannels\u002Finstagram","docs\u002F05.channels\u002F07.instagram",{"title":93,"path":94,"stem":95,"children":96,"page":58},"Bot y conocimiento","\u002Fdocs\u002Fbot","docs\u002F06.bot",[97,101],{"title":98,"path":99,"stem":100},"El bot y la IA","\u002Fdocs\u002Fbot\u002Foverview","docs\u002F06.bot\u002F01.overview",{"title":102,"path":103,"stem":104},"Conocimiento del bot","\u002Fdocs\u002Fbot\u002Fknowledge","docs\u002F06.bot\u002F02.knowledge",{"title":106,"path":107,"stem":108,"children":109,"page":58},"Trabajo, mapa y flujos","\u002Fdocs\u002Fwork","docs\u002F07.work",[110,114,118,122,126,130],{"title":111,"path":112,"stem":113},"Trabajo y acciones","\u002Fdocs\u002Fwork\u002Ftasks-and-actions","docs\u002F07.work\u002F01.tasks-and-actions",{"title":115,"path":116,"stem":117},"Mapa y direcciones","\u002Fdocs\u002Fwork\u002Fmap-and-addresses","docs\u002F07.work\u002F02.map-and-addresses",{"title":119,"path":120,"stem":121},"Flujos","\u002Fdocs\u002Fwork\u002Fflows","docs\u002F07.work\u002F03.flows",{"title":123,"path":124,"stem":125},"Condiciones de los flujos","\u002Fdocs\u002Fwork\u002Fconditions","docs\u002F07.work\u002F04.conditions",{"title":127,"path":128,"stem":129},"Zonas","\u002Fdocs\u002Fwork\u002Fzones","docs\u002F07.work\u002F05.zones",{"title":131,"path":132,"stem":133},"Portal de seguimiento del cliente","\u002Fdocs\u002Fwork\u002Ftracking-portal","docs\u002F07.work\u002F06.tracking-portal",{"title":135,"path":136,"stem":137,"children":138,"page":58},"Equipo","\u002Fdocs\u002Fteam","docs\u002F08.team",[139,143,147,151],{"title":140,"path":141,"stem":142},"Telegram del equipo","\u002Fdocs\u002Fteam\u002Ftelegram-team","docs\u002F08.team\u002F01.telegram-team",{"title":144,"path":145,"stem":146},"Roles y permisos","\u002Fdocs\u002Fteam\u002Froles","docs\u002F08.team\u002F02.roles",{"title":148,"path":149,"stem":150},"Notificaciones","\u002Fdocs\u002Fteam\u002Fnotifications","docs\u002F08.team\u002F03.notifications",{"title":152,"path":153,"stem":154},"Comisiones del equipo","\u002Fdocs\u002Fteam\u002Fcommissions","docs\u002F08.team\u002F04.commissions",{"title":156,"path":157,"stem":158},"Inicio rápido","\u002Fdocs\u002Fquickstart","docs\u002F09.quickstart",{"title":160,"path":161,"stem":162,"children":163,"page":58},"API","\u002Fdocs\u002Fapi","docs\u002F10.api",[164,168,172,176,180],{"title":165,"path":166,"stem":167},"Autenticación","\u002Fdocs\u002Fapi\u002Fauthentication","docs\u002F10.api\u002F1.authentication",{"title":169,"path":170,"stem":171},"Convenciones","\u002Fdocs\u002Fapi\u002Fconventions","docs\u002F10.api\u002F2.conventions",{"title":173,"path":174,"stem":175},"Endpoints","\u002Fdocs\u002Fapi\u002Fendpoints","docs\u002F10.api\u002F3.endpoints",{"title":177,"path":178,"stem":179},"Webhooks","\u002Fdocs\u002Fapi\u002Fwebhooks","docs\u002F10.api\u002F4.webhooks",{"title":181,"path":182,"stem":183},"SDK de TypeScript y Python","\u002Fdocs\u002Fapi\u002Fsdks","docs\u002F10.api\u002F5.sdks",{"title":185,"path":186,"stem":187},"MCP y agentes de IA","\u002Fdocs\u002Fmcp","docs\u002F11.mcp",{"title":189,"path":190,"stem":191},"Recetas","\u002Fdocs\u002Frecipes","docs\u002F12.recipes",{"title":193,"path":194,"stem":195,"children":196,"page":58},"¿Qué pasa si…?","\u002Fdocs\u002Fque-pasa-si","docs\u002F13.que-pasa-si",[197,201,205,209],{"title":198,"path":199,"stem":200},"¿Qué pasa si…? Reservas y señas","\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas","docs\u002F13.que-pasa-si\u002F01.senas-y-reservas",{"title":202,"path":203,"stem":204},"¿Qué pasa si…? Avisos y canales","\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales","docs\u002F13.que-pasa-si\u002F02.avisos-y-canales",{"title":206,"path":207,"stem":208},"¿Qué pasa si…? El bot","\u002Fdocs\u002Fque-pasa-si\u002Fbot","docs\u002F13.que-pasa-si\u002F03.bot",{"title":210,"path":211,"stem":212},"¿Qué pasa si…? Servicios y tareas","\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas","docs\u002F13.que-pasa-si\u002F04.servicios-y-tareas",[214,218,224,229,233,238,241,246,251,256,261,266,271,276,281,284,289,294,299,304,308,313,318,321,326,331,336,341,344,349,354,359,364,370,375,380,385,390,395,398,403,408,413,418,423,426,431,436,441,446,451,456,461,466,471,474,479,484,489,492,497,502,507,510,515,520,523,528,533,536,541,546,551,556,561,566,571,574,579,584,589,594,599,603,607,610,615,620,625,629,634,638,641,646,651,656,661,666,671,674,679,684,689,694,699,704,707,712,717,722,725,730,734,739,743,746,751,756,761,766,771,776,781,785,790,793,798,803,808,813,818,823,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,899,904,909,914,919,924,929,934,937,942,947,952,957,962,965,970,975,980,985,990,993,998,1003,1008,1013,1016,1021,1026,1031,1034,1039,1044,1049,1054,1059,1064,1069,1072,1077,1082,1087,1092,1097,1102,1107,1110,1115,1120,1125,1130,1135,1138,1143,1147,1152,1157,1161,1164,1169,1174,1179,1184,1189,1194,1199,1204,1207,1212,1217,1222,1227,1230,1235,1240,1245,1250,1255,1258,1263,1268,1273,1278,1283,1287,1292,1297,1302,1307,1312,1317,1320,1325,1330,1335,1340,1345,1348,1353,1358,1363,1367,1372,1377,1381,1385,1389,1394,1397,1402,1407,1412,1417,1422,1427,1432,1437,1442,1446,1449,1454,1459,1464,1469,1474,1479,1484,1489,1494,1499,1504,1509,1512,1517,1522,1527,1532,1537,1542,1547,1552,1557,1562,1567,1572,1577,1582,1587,1590,1595,1600,1605,1610,1615,1620,1625,1630,1635,1640,1645,1648,1653,1658,1663,1668,1673,1678,1683,1688,1691,1696,1701,1706,1711,1716,1721,1726,1731,1736,1741,1746,1751,1756,1761],{"id":11,"title":10,"titles":215,"content":216,"level":217},[],"Qué es Fiuit, para quién es y los bloques que vas a usar para atender, agendar y trabajar con tu equipo. Fiuit es una capa de automatización multicanal: conecta WhatsApp, Telegram y el chat de tu sitio con la agenda y el trabajo de tu equipo. Entiende lo que piden, propone el siguiente paso y convierte las confirmaciones en reservas y tareas. Vos definís las reglas. WhatsApp, Telegram y chat web conversan con tus clientes. Los formularios también llegan al Inbox, para atención humana. Tu equipo y la API operan sobre las mismas tareas. Esta documentación describe lo que ya está disponible. Lo que todavía no existe aparece marcado como Próximamente.",1,{"id":219,"title":220,"titles":221,"content":222,"level":223},"\u002Fdocs\u002Fintroduction#para-quién-es","Para quién es",[10],"Cualquier negocio que vende el tiempo de alguien o de algo. Fiuit usa un vocabulario genérico (tarea, recurso, servicio) y se adapta a tu rubro con un modelo inicial: NegocioQué se reserva o se haceBarberíaUn barbero por 30 a 45 minutosEstéticaUn profesional y una máquina y una cabina, al mismo tiempoClínicaUn médico y un consultorioRestauranteCubiertos en el salón según el tamaño del grupoEntregasTareas que un repartidor toma de una cola, con destino en el mapa",2,{"id":225,"title":226,"titles":227,"content":228,"level":223},"\u002Fdocs\u002Fintroduction#qué-vas-a-usar","Qué vas a usar",[10],"Hoy: lo que tenés que hacer ahora, con lo tuyo o lo de todo el equipo según tu rol.Inbox: todas las conversaciones de todos los canales en un solo lugar; tomás el control cuando haga falta.Trabajo: todas las tareas, en lista, calendario o mapa, con acciones por etapa (tomar, soltar, completar, no estaba).Clientes, Servicios, Equipo y recursos: tu catálogo y tu gente.Bot: personalidad, conocimiento y simulador. Automatización: reglas y flujos.Wagy: el asistente del panel que te ayuda a configurar todo charlando.Novedades: lo último que se agregó a Fiuit y lo que viene, con un punto cuando hay algo que todavía no viste.Configuración: Negocio, Estado, Equipo, Canales, Desarrolladores, Webhooks y Uso de IA.",{"id":230,"title":60,"titles":231,"content":232,"level":223},"\u002Fdocs\u002Fintroduction#canales",[10],"Todos los canales usan el mismo motor: un horario reservado por WhatsApp desaparece al instante del panel, del chat web y de la API. WhatsApp con asistente de IA (texto y audio).Chat web para pegar en tu sitio.Telegram con el bot propio de tu negocio.Telegram del equipo: avisos y la Mini App \"Mi día\".",{"id":234,"title":235,"titles":236,"content":237,"level":223},"\u002Fdocs\u002Fintroduction#por-dónde-seguir","Por dónde seguir",[10],"Primeros pasos: del modelo de negocio a tu primera tarea, con Wagy.Cómo funciona: la vida de un mensaje y las garantías del motor.Trabajo y acciones y Flujos.¿Una duda puntual? Mirá ¿Qué pasa si…?: respuestas cortas sobre reservas, avisos, bot y tareas.Si desarrollás: Inicio rápido de la API, SDK y MCP. El bot de clientes reserva servicios con horario; las tareas de cola las crea el equipo desde el panel o la API. Creación de entregas en cola por chat: próximamente.",{"id":15,"title":14,"titles":239,"content":240,"level":217},[],"Guía paso a paso para armar tu negocio en Fiuit con la ayuda de Wagy, conectar un canal, probar el bot y hacer tu primera tarea. Esta guía te lleva de cero a un negocio atendiendo. Lleva unos 20 minutos y podés pedirle ayuda a Wagy en cada paso. ¿Olvidaste tu contraseña? Desde el login, ¿Olvidaste tu contraseña? te manda un enlace por email. El mensaje no revela si el email existe en Fiuit; el enlace se usa una sola vez y te pide una contraseña nueva de 12 a 128 caracteres.",{"id":242,"title":243,"titles":244,"content":245,"level":223},"\u002Fdocs\u002Fgetting-started#_1-crear-el-negocio-desde-un-modelo","1. Crear el negocio desde un modelo",[14],"Cada negocio (o sede) es un proyecto. Al crearlo elegís el tipo de negocio y Fiuit carga un modelo con servicios, recursos, horarios y etapas típicas de ese rubro: barbería, estética, clínica, restaurante o entregas. Entrá al panel y abrí el selector de proyectos.Tocá Crear proyecto, poné el nombre, elegí el tipo de negocio, la zona horaria y el idioma.Entrá al proyecto nuevo. Tu plan define cuántos proyectos podés tener; si llegaste al límite, el selector te lo avisa. Todo lo que trae el modelo se puede cambiar después. Los nombres se adaptan al rubro (por ejemplo \"Aceptar entrega\" en entregas), pero por debajo es el mismo motor.",{"id":247,"title":248,"titles":249,"content":250,"level":223},"\u002Fdocs\u002Fgetting-started#_2-configurar-con-wagy","2. Configurar con Wagy",[14],"Wagy es el asistente de configuración del panel: un bot amigable al que le contás qué hacés y arma tu negocio con vos. Lo abrís con el botón Hablar con Wagy. Solo lo usan el propietario y los gerentes. Contale tu negocio (\"Tengo una barbería con tres barberos\").Wagy te propone un plan de cambios: una tarjeta con lo que va a crear o modificar (servicios, horarios, recursos, reglas del bot, automatizaciones).Revisá el plan y tocá Confirmar, Ajustar (seguís conversando y te arma otro) o Descartar. Nada se aplica sin tu confirmación.Si no te gusta el resultado, tocá Deshacer: podés deshacer el último plan aplicado durante 24 horas. Wagy también te muestra una lista de Primeros pasos que se marca sola con tus datos reales: perfil del negocio, horario de atención, servicios, equipo, canal conectado, bot probado, primera reserva y primera tarea completada. Y te manda avisos discretos (no más de dos por día) que podés cerrar o silenciar. Wagy nunca te pide contraseñas ni tokens: para conectar un canal te lleva a la pantalla correspondiente. Los primeros mensajes con Wagy los paga la plataforma; después consume la cuota de IA de tu plan.",{"id":252,"title":253,"titles":254,"content":255,"level":223},"\u002Fdocs\u002Fgetting-started#_3-revisar-lo-básico-a-mano","3. Revisar lo básico a mano",[14],"Si preferís el panel, estas son las pantallas: Configuración → Negocio: nombre, zona horaria, moneda, idioma, dirección y política de cancelación.Servicios: duración, precio, seña y qué recursos pide cada servicio.Equipo y recursos: personas, salas o máquinas con sus horarios. Invitá a tu equipo desde Configuración → Equipo (ver roles y permisos).",{"id":257,"title":258,"titles":259,"content":260,"level":223},"\u002Fdocs\u002Fgetting-started#_4-conectar-un-canal","4. Conectar un canal",[14],"Andá a Configuración → Canales: WhatsApp: escaneá un QR. Mirá WhatsApp.Chat web: pegá una línea de código en tu sitio. Mirá Chat web.Telegram: pegá el token de tu bot. Mirá Telegram. Todas las conversaciones llegan a la misma bandeja, el Inbox.",{"id":262,"title":263,"titles":264,"content":265,"level":223},"\u002Fdocs\u002Fgetting-started#_5-probar-el-bot","5. Probar el bot",[14],"Antes de abrirlo a clientes reales, usá el Simulador en Automatización → Bot. Conversás con el bot como si fueras un cliente, sin enviar mensajes reales; las reservas que hace son de prueba. Probá frases como \"quiero reservar\", \"¿cuánto sale?\" o \"¿hasta qué hora abren?\". Ajustá la personalidad y cargá conocimiento (ver Bot y conocimiento).",{"id":267,"title":268,"titles":269,"content":270,"level":223},"\u002Fdocs\u002Fgetting-started#_6-tu-primera-tarea","6. Tu primera tarea",[14],"Tocá Nueva tarea (está en la barra superior, en cualquier pantalla). Esperá a que termine la carga del catálogo; los campos permanecen inactivos y podés cerrar el diálogo mientras carga.Elegí el servicio, buscá o creá al cliente y elegí el horario.Guardá. La tarea aparece en Hoy y en Trabajo.",{"id":272,"title":273,"titles":274,"content":275,"level":223},"\u002Fdocs\u002Fgetting-started#_7-ver-el-día-en-hoy","7. Ver el día en Hoy",[14],"Hoy muestra lo que hay que hacer ahora. Los dueños y gerentes ven todo; el equipo ve lo suyo. Desde cada tarea avanzás de etapa con las acciones disponibles. Seguí con Trabajo y acciones.",{"id":277,"title":278,"titles":279,"content":280,"level":223},"\u002Fdocs\u002Fgetting-started#próximos-pasos","Próximos pasos",[14],"Flujos y condiciones: recordatorios y avisos automáticos.Telegram del equipo: avisos y \"Mi día\" en el celular.Pausas y Estado: qué hacer si algo se complica.",{"id":19,"title":18,"titles":282,"content":283,"level":217},[],"Arquitectura, principios y la vida de un mensaje, desde que llega por un canal hasta que se convierte en una tarea, una acción o un aviso.",{"id":285,"title":286,"titles":287,"content":288,"level":223},"\u002Fdocs\u002Fhow-it-works#principios","Principios",[18],"Núcleo determinístico, IA como intérprete. La IA entiende al cliente y llama herramientas. El motor calcula disponibilidad, pre-reserva y confirma. La IA nunca inventa un horario ni un precio.La base de datos garantiza las reglas. El sobreturno es imposible porque PostgreSQL rechaza asignaciones superpuestas, no porque la app \"chequee antes\".Una verdad operativa, muchas vistas. Una tarea es un solo objeto; la ves en Hoy, en lista, en calendario o en el mapa.API primero. El panel, el bot, el MCP y Wagy usan los mismos servicios. Si algo no se puede hacer por API, falta en la API.La credencial define el negocio. Una clave o sesión siempre pertenece a un proyecto.",{"id":290,"title":291,"titles":292,"content":293,"level":223},"\u002Fdocs\u002Fhow-it-works#de-la-entrada-a-la-acción","De la entrada a la acción",[18],"Entradas → motor → interpretación → acciones. Este es el recorrido de una conversación, no una cadena obligatoria: el panel y la API llaman al motor directamente; los formularios van a una persona. La IA vuelve al motor para validar cada propuesta antes de actuar. Entradas → Motor Fiuit → IA interpreta → Acciones y salidas La IA no ejecuta por su cuenta: pide herramientas y el motor valida permisos, disponibilidad y confirmaciones. Las reservas y las tareas comparten una verdad operativa. Los avisos dependen de tus reglas y del canal; el chat web responde durante la conversación, sin recordatorios proactivos. El bot de clientes reserva servicios con horario; las tareas de cola las crea el equipo desde el panel o la API. Creación de entregas en cola por chat: próximamente. WhatsApp → reserva «¿Tenés turno mañana para corte con Juan?» Fiuit consulta horarios reales, ofrece opciones y retiene la elegida por 10 minutos. Pide los datos que faltan y confirmación; recién entonces el motor confirma la reserva. Juan la ve en su agenda. Telegram → reserva con horario «¿Tienen mesa para cuatro mañana a las 20:00?» Fiuit consulta los horarios del servicio, retiene la opción elegida por 10 minutos y pide los datos y la confirmación. Cuando el cliente confirma, el motor registra la reserva y el equipo la ve en su agenda. El equipo crea la entrega desde el panel con un servicio de cola, el cliente y la dirección, sin elegir un horario. Después puede asignar, tomar y completar la tarea desde Trabajo. Los avisos dependen de los flujos activados. Crear entregas en cola automáticamente por chat: próximamente.",{"id":295,"title":296,"titles":297,"content":298,"level":223},"\u002Fdocs\u002Fhow-it-works#la-vida-de-un-mensaje","La vida de un mensaje",[18],"Entra y se ordena. El canal verifica el origen y descarta mensajes repetidos. El motor conserva el contexto en el Inbox y respeta las pausas. Formularios: entrada para atención humana, sin bot automático.Se respeta el contexto. Se identifica al cliente y la conversación. Si una persona tomó el control, el bot no responde. Las acciones del equipo y la API tienen sus propios permisos y no necesitan pasar por la IA.La IA interpreta. En los canales conversacionales, el modelo entiende la intención, consulta datos del negocio mediante herramientas y pide lo que falta. El audio se transcribe solo donde el canal lo soporta.Propuesta y confirmación. El motor comprueba reglas, permisos y disponibilidad. Una opción elegida queda retenida 10 minutos; el cliente confirma antes de convertirla en reserva. Si algo cambió, se ofrecen alternativas.El motor ejecuta. Las operaciones idempotentes evitan repetir una acción al reintentarla. La base impide reservas superpuestas. Fechas, precios y confirmaciones se comunican con datos reales del sistema, en plantillas.Trabajo, avisos y diálogo. Una reserva creada por chat o una entrega en cola registrada por el equipo desde el panel aparece como tarea para el equipo. Los flujos activos generan avisos y acciones permitidas. Fiuit también responde consultas y deriva a una persona; no todo mensaje necesita crear una tarea.",{"id":300,"title":301,"titles":302,"content":303,"level":223},"\u002Fdocs\u002Fhow-it-works#tareas-etapas-y-acciones","Tareas, etapas y acciones",[18],"Cada negocio define las etapas por las que pasa su trabajo y las acciones que mueven una tarea de una a otra (tomar, soltar, completar, \"no estaba\"). Una acción puede tener efectos: asignar a quien la ejecuta, liberar, cerrar con un resultado. Mirá Trabajo y acciones.",{"id":305,"title":119,"titles":306,"content":307,"level":223},"\u002Fdocs\u002Fhow-it-works#flujos",[18],"Un flujo dice \"cuando pase esto, si se cumple esta condición, hacé aquello\": enviar un mensaje, avisar al equipo, esperar, ejecutar una acción. Las condiciones son expresiones simples sobre la tarea, el cliente o la hora.",{"id":309,"title":310,"titles":311,"content":312,"level":223},"\u002Fdocs\u002Fhow-it-works#seguridad","Seguridad",[18],"Cada negocio está aislado en la propia base de datos, los secretos van cifrados y cada cambio queda en un registro de auditoría. Vos sos el responsable de los datos de tus clientes; Fiuit los trata en tu nombre.",{"id":314,"title":315,"titles":316,"content":317,"level":223},"\u002Fdocs\u002Fhow-it-works#a-dónde-seguir","A dónde seguir",[18],"Reservas y pre-reservas: las garantías de la agenda.Bot y IA: qué puede y qué no puede hacer el asistente.",{"id":28,"title":27,"titles":319,"content":320,"level":217},[],"Organizaciones, workspaces, roles, recursos, modos de capacidad y grupos de recursos.",{"id":322,"title":323,"titles":324,"content":325,"level":223},"\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources#organización-y-workspaces","Organización y workspaces",[27],"En el panel, un workspace se llama proyecto: podés tener varios y cambiar entre ellos con el selector de proyectos. Una organización es la cuenta que paga. Contiene uno o más workspaces. Un workspace es un negocio o sede con sus propios: zona horaria, idioma y moneda,número(s) de WhatsApp,bot, servicios, recursos y equipo. Una cadena de tres barberías es una organización con tres workspaces.",{"id":327,"title":328,"titles":329,"content":330,"level":223},"\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources#roles","Roles",[27],"Detalle completo de cada rol y de los permisos en Roles y permisos. RolPuedeownerTodo, en todos los workspaces de la organizaciónmanagerTodo dentro de un workspacestaffVer y gestionar solo sus propios recursos (por ejemplo, el barbero ve solo su agenda)viewerSolo lectura El equipo también puede actuar por WhatsApp después de vincular su número con un código de un solo uso. Las acciones de administrador por WhatsApp siempre piden confirmación SÍ\u002FNO.",{"id":332,"title":333,"titles":334,"content":335,"level":223},"\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources#recursos","Recursos",[27],"Un recurso es cualquier cosa que una reserva consume. kindEjemplosstaffBarbero, médico, esteticista, instructorspaceSala, consultorio, cabina, salónequipmentMáquina de láser, sillón, canchatableMesa de restaurante (modo mesas)vehicleCamioneta, equipo de repartozoneZona de entrega por código postal Cada recurso tiene un modo de capacidad: exclusive — atiende una reserva a la vez (un barbero, una sala, una máquina).pooled — tiene capacidad en unidades (40 cubiertos por turno, 12 lugares en una clase, 10 entregas por ventana).",{"id":337,"title":338,"titles":339,"content":340,"level":223},"\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources#grupos-de-recursos","Grupos de recursos",[27],"Un grupo de recursos es un conjunto intercambiable (\"cualquier barbero\", \"máquinas de láser\"). Los servicios piden grupos, no recursos individuales, para que el motor elija uno. La estrategia de asignación decide cuál: assignmentComportamientocustomer_choiceElige el cliente (por ejemplo \"con Juan\"); si le da igual, usa otra estrategiaround_robinRota entre los miembrosleast_busyElige al miembro con menos reservas en el díafixedSiempre el mismo miembro (una sola máquina, una sola sala) {\n  \"name\": \"Barberos\",\n  \"assignment\": \"customer_choice\",\n  \"member_ids\": [\"res_juan\", \"res_pedro\", \"res_leo\"]\n} html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":32,"title":31,"titles":342,"content":343,"level":217},[],"Servicios, requisitos con varios recursos, horarios y cómo se calculan los slots.",{"id":345,"title":346,"titles":347,"content":348,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#servicios","Servicios",[31],"Un servicio es lo que reserva el cliente. CampoSignificadoduration_minDuración del serviciostep_minGrilla de inicio (cada 15, 30 minutos…)buffer_before_min \u002F buffer_after_minTiempo de preparación o limpieza bloqueado alrededor de la reservaprice_cents, currencyPrecio que informa el bot (siempre desde la base de datos)deposit_centsSeña necesaria para confirmar (cobro en línea: próximamente)lead_time_minAnticipación mínima (por ejemplo 60 minutos)max_advance_daysCon cuánta anticipación máxima se puede reservarwindow_modeEl slot es una ventana fija (entregas: 14:00–16:00)fulfillment_modescheduled (default, con horario) o queue (despacho por cola, sin horario fijo)location_modeDónde se presta: en el local, en la dirección del cliente o a eleccióncolorColor que identifica al servicio en todas las vistasintake_formJSON Schema de datos extra a pedir (obra social, dirección…)requirementsQué recursos necesita el servicio al mismo tiempo",{"id":350,"title":351,"titles":352,"content":353,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#ventana-o-despacho-dos-modos-de-cumplimiento","Ventana o despacho: dos modos de cumplimiento",[31],"Cada servicio define cómo se cumple lo reservado (fulfillment_mode): scheduled (el default): la reserva ocupa un rango de tiempo conocido — un horario fijo o, con window_mode, una ventana (entregas de 14:00 a 16:00, con cupo por zona).queue (despacho, para agua, gas o delivery on-demand): la reserva no tiene horario fijo — entra en la cola de pendientes de un repartidor. El motor la asigna al repartidor con menos tareas activas y cada repartidor tiene un cupo de tareas activas a la vez, garantizado en la base de datos. La cola usa los mismos estados que una reserva: pendiente → aceptada → iniciada → finalizada (o fallida). Así, un mismo negocio de entregas puede ofrecer ventanas programadas, despacho inmediato o ambos.",{"id":355,"title":356,"titles":357,"content":358,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#requisitos","Requisitos",[31],"Un requisito dice: de este grupo, necesito tantas unidades. Un servicio puede tener varios; un slot existe solo si todos están libres. {\n  \"name\": \"Depilación láser\",\n  \"duration_min\": 45,\n  \"buffer_after_min\": 10,\n  \"requirements\": [\n    { \"resource_group_id\": \"grp_professionals\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_lasers\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_rooms\", \"units\": 1 }\n  ]\n} Con dos profesionales y un solo láser, Fiuit nunca ofrece dos sesiones de láser superpuestas. Opciones avanzadas: units: \"party_size\" — consume tantas unidades como personas (restaurantes, clases).offset_min \u002F duration_min en un requisito — usa un recurso solo en parte del servicio (por ejemplo el lavacabezas en los últimos 15 minutos de un color).",{"id":360,"title":361,"titles":362,"content":363,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#horarios","Horarios",[31],"Cada recurso tiene un horario: reglas semanales en la zona horaria del recurso más excepciones para fechas puntuales (cerrado u horario especial). {\n  \"tz\": \"America\u002FArgentina\u002FBuenos_Aires\",\n  \"weekly\": { \"tue\": [[\"09:00\", \"19:00\"]], \"sat\": [[\"08:00\", \"12:00\"], [\"13:00\", \"16:00\"]] },\n  \"overrides\": [{ \"date\": \"2026-12-24\", \"ranges\": [[\"09:00\", \"13:00\"]] }, { \"date\": \"2026-12-25\", \"closed\": true }]\n}",{"id":365,"title":366,"titles":367,"content":368,"level":369},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#días-y-horarios-propios-del-servicio","Días y horarios propios del servicio",[31,361],"Un servicio también puede tener su propia ventana: los días y rangos en que se presta, con el mismo editor semanal de los recursos. La oferta siempre es la intersección: la ventana del servicio recorta la disponibilidad del equipo, nunca la amplía. Si el servicio no define ventana, se ofrece cualquier horario que sus recursos tengan. El editor muestra una vista previa con la intersección real antes de guardar, y el bot explica la ventana cuando no hay turnos.",3,{"id":371,"title":372,"titles":373,"content":374,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#color","Color",[31],"Cada servicio elige un color de la paleta del tema. Lo ves en el calendario, en Hoy, en Trabajo, en el mapa y en las estadísticas, junto al nombre: el color identifica, pero no reemplaza al texto. Si no elegís uno, Fiuit asigna un color estable automáticamente.",{"id":376,"title":377,"titles":378,"content":379,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#dónde-se-presta","Dónde se presta",[31],"Cada servicio define su destino: En el local: la tarea ocurre en la dirección del negocio.En la dirección del cliente: entregas, visitas, servicio en domicilio.A elección del cliente: el cliente decide al reservar. Cuando el destino es la dirección del cliente, al crear la tarea Fiuit propone la dirección que ya tiene guardada (con autocompletar o carga manual, ver Mapa y direcciones). Cada tarea guarda su propio destino: cambiarla en una tarea no toca las demás ni el perfil. Guardar la dirección nueva en el perfil del cliente es opcional y aparte: solo pasa si marcás la casilla de consentimiento. El bot confirma la dirección, el consentimiento y la reserva como pasos separados.",{"id":381,"title":382,"titles":383,"content":384,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#formularios-con-cantidades-y-cálculos","Formularios con cantidades y cálculos",[31],"Además de los campos de texto, el formulario de un servicio admite: Cantidades: cuántas unidades de algo (bidones, metros, personas, equipos).Campos calculados: una expresión simple que combina cantidades y precios para mostrar un total (por ejemplo agua * 1500 + gas * 3000). El cálculo se valida en el servidor y no puede tocar datos de otros módulos ni de otros negocios. El panel tiene editor y vista previa: probá el resultado antes de guardar. Al crear la tarea, el formulario pide las cantidades, aplica el cálculo y muestra el total; el cliente ve un resumen claro con lo que pidió. La cotización queda congelada con la tarea: si el precio del catálogo cambia antes de confirmar, la tarea ya armada conserva su total; editar las cantidades a mano recalcula con el catálogo vigente.",{"id":386,"title":387,"titles":388,"content":389,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#cómo-se-calculan-los-slots","Cómo se calculan los slots",[31],"Expandir los horarios para el rango pedido, en la zona horaria de cada recurso.Restar reservas y pre-reservas activas (más los buffers) y bloqueos manuales.Cortar en slots candidatos según la duración y la grilla del servicio.Aplicar anticipación mínima y máxima, reglas de corte y tamaño del grupo.Cruzar todos los requisitos, probando los miembros de cada grupo según la estrategia de asignación.Devolver una lista corta y ordenada. Cuando no hay nada disponible, la respuesta trae unavailable_reason (closed, no_staff, no_equipment, no_space, lead_time, max_advance, cutoff, full) para que el bot explique por qué. Los resultados pasados de cada servicio —completadas, canceladas, facturación estimada, día pico y exportación CSV— están en Resultados y ventas.",{"id":391,"title":392,"titles":393,"content":394,"level":223},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#pausar-y-duplicar","Pausar y duplicar",[31],"Pausar deja de ofrecer el servicio para pedidos nuevos en bot, reserva pública, Wagy y MCP. Las tareas ya agendadas pueden reprogramarse, reasignarse, completarse y cancelarse con los permisos y validaciones habituales. La pausa no elimina los controles de horario ni capacidad. Reactivar vuelve a ofrecerlo. Pausar y desactivar son la misma acción. Duplicar crea « (copia)» pausado con precio, reglas, requisitos, formulario, productos, horario independiente y etapas. No copia tareas, resultados ni opiniones. Requiere permiso de catálogo; sin permiso para editar etapas usa las etapas base del proyecto y lo avisa. Revisá la copia y reactivala cuando esté lista. En el detalle abrí ⋯ → Duplicar o Pausar. En escritorio también hay un menú en la lista. Wagy propone ambas acciones y espera la confirmación del plan. MCP permite pausar con update_service(active=false, confirm=true); duplicar aún no tiene herramienta MCP. html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":36,"title":35,"titles":396,"content":397,"level":217},[],"Estados de la reserva, la pre-reserva de 10 minutos, señas y la garantía de cero sobreturnos.",{"id":399,"title":400,"titles":401,"content":402,"level":223},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#por-qué-una-pre-reserva","Por qué una pre-reserva",[35],"Una conversación por WhatsApp puede tardar minutos: el cliente elige horario, después le pedís el nombre, quizás una seña. Mientras tanto otros clientes y la API compiten por el mismo horario. La pre-reserva (hold) guarda el horario por 10 minutos (15 cuando hay seña) y vence sola.",{"id":404,"title":405,"titles":406,"content":407,"level":223},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#estados","Estados",[35],"EstadoSignificadoOcupa el horarioheldPre-reserva temporalSípending_paymentEsperando la señaSíconfirmedReservadoSíchecked_inEl cliente llegóSícompletedAtendidoNocancelledCancelado (o reemplazado por una reprogramación)Nono_showAusencia marcada por una personaNoexpiredPre-reserva no confirmada a tiempoNo held ──confirm──► confirmed ──check-in──► checked_in ──► completed\n │  └─(seña)──► pending_payment ──pagada──► confirmed\n └─vence──► expired          confirmed ──cancela──► cancelled",{"id":409,"title":410,"titles":411,"content":412,"level":223},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#garantías","Garantías",[35],"Cada recurso que ocupa una reserva se guarda como una asignación con un rango de tiempo.Para recursos exclusive, PostgreSQL rechaza asignaciones superpuestas con una constraint de exclusión.Para recursos pooled, los contadores de capacidad nunca superan el límite (chequeo atómico).Una reserva con varios recursos se escribe en una sola transacción: si cualquier recurso choca, no se reserva nada.POST \u002Fholds y POST \u002Fholds\u002F{id}\u002Fconfirm exigen Idempotency-Key: reintentar un request nunca crea una segunda reserva. Si el horario se ocupó mientras el cliente decidía, recibís 409 con code: \"slot_taken\" y una lista de alternatives.",{"id":414,"title":415,"titles":416,"content":417,"level":223},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#reprogramar-y-cancelar","Reprogramar y cancelar",[35],"Reprogramar crea una reserva nueva y cancela la anterior (vinculadas por rescheduled_to). Los recordatorios se mueven solos.Cancelar libera el horario y cancela los recordatorios pendientes.Ausencia nunca es automática: el sistema la sugiere, una persona la confirma.",{"id":419,"title":420,"titles":421,"content":422,"level":223},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#señas","Señas",[35],"Si el servicio tiene deposit_cents, confirmar la pre-reserva deja la reserva en pending_payment y el horario sigue bloqueado. Cuando el proveedor confirma el cobro de la seña, el núcleo registra el pago, confirma la reserva y emite payment.paid. La disponibilidad de un proveedor real depende de la configuración del negocio.",{"id":40,"title":39,"titles":424,"content":425,"level":217},[],"Reglas simples de recordatorios y confirmaciones, horario de silencio y garantías de ejecución. Para esperas y condiciones, mirá los flujos. Hay dos herramientas de automatización: Reglas: \"cuando pase esto, mandá aquel mensaje\". Son la forma más simple de enviar recordatorios y confirmaciones. Se administran en Automatización → Reglas.Flujos: esperan, deciden con condiciones y actúan sobre las tareas. Ver Flujos y Condiciones.",{"id":427,"title":428,"titles":429,"content":430,"level":223},"\u002Fdocs\u002Fconcepts\u002Fautomations#reglas","Reglas",[39],"Una regla tiene un disparador, el mensaje que se envía (una plantilla con vista previa) y, si querés, un filtro por etapa o acción. Cada negocio crea, activa y ajusta las suyas: ninguna regla le escribe a un cliente sin estar activa.",{"id":432,"title":433,"titles":434,"content":435,"level":369},"\u002Fdocs\u002Fconcepts\u002Fautomations#disparadores","Disparadores",[39,428],"DisparadorEjemploUn tiempo antes del inicio24 h antes: enviar un recordatorioUn tiempo después del finMensaje de seguimientoCancelación o reprogramaciónAvisar al clienteUso de una herramienta de la tareaCuando alguien reprograma o toma la tareaHora fija del díaAvisos al equipo, como la agenda del día Las reglas dirigidas a clientes salen por WhatsApp. Los avisos al equipo salen por Telegram, WhatsApp o email, según cómo recibe avisos cada persona: ver Telegram del equipo. En cada regla ves los últimos envíos con su estado y el motivo si falló.",{"id":437,"title":438,"titles":439,"content":440,"level":223},"\u002Fdocs\u002Fconcepts\u002Fautomations#avisos-al-entrar-en-una-etapa-y-la-confirmación","Avisos al entrar en una etapa (y la confirmación)",[39],"El aviso al cliente cuando la tarea entra en una etapa —por ejemplo «Salió a entrega»— y el aviso de confirmación ya no son reglas: son parte de la etapa del servicio, en su bloque «Al llegar». Así hay un solo lugar y el cliente nunca recibe el mismo aviso dos veces. Cada aviso tiene un interruptor propio. Los que trae tu tipo de negocio llegan apagados, incluido «Salió a entrega».La confirmación sale una sola vez, venga del bot, del pago de la seña, del panel o de un botón de etapa. Las tareas sin horario no la reciben.Al llegar también puede avisar al equipo: a todas las personas asignadas a la tarea, por email y Telegram. Si un canal falla, se reintenta sin repetir el que ya llegó.Valen las mismas garantías de abajo (horario de silencio, clientes de prueba, canal en pausa) y los interruptores de avisos del proyecto.Para esperar un tiempo, poner condiciones o llamar a un webhook propio al entrar en una etapa, usá un flujo. Por ahora estos avisos se configuran por la API o MCP (etapas del servicio); el editor visual de etapas llega pronto. Las reglas de etapa o de confirmación que tenías se pasaron solas a sus etapas, con el mismo estado (encendida o apagada).",{"id":442,"title":443,"titles":444,"content":445,"level":223},"\u002Fdocs\u002Fconcepts\u002Fautomations#recomendadas-para-tu-negocio","Recomendadas para tu negocio",[39],"Fiuit trae un set de reglas recomendadas según el tipo de negocio (recordatorio 24 h antes, pedido de reseña tras completar, avisos al equipo…). Se instalan apagadas: nadie les escribe a tus clientes sin que vos decidas. Andá a Automatización → Reglas.En Recomendadas para tu negocio, mirá la vista previa del mensaje de cada regla.Activá las que quieras con el interruptor. La sección se oculta cuando no queda ninguna por activar.",{"id":447,"title":448,"titles":449,"content":450,"level":369},"\u002Fdocs\u002Fconcepts\u002Fautomations#reactivar-clientes-que-no-vuelven","Reactivar clientes que no vuelven",[39,443],"Una de las recomendadas es \"Reactivar clientes que no vuelven\": escribe por WhatsApp a quien no tiene actividad hace N días (sin tareas completadas ni mensajes entrantes; lo que manda el negocio no cuenta). La cantidad de días se edita en la regla (de 1 a 365; cada modelo trae uno razonable para su rubro). El barrido corre cada hora, solo de día (10:00 a 18:00, hora del negocio) y con tope de clientes nuevos por pasada, así que escribe de a poco. Cada cliente recibe un solo mensaje por período de inactividad: si vuelve y vuelve a faltar, puede recibir otro más adelante. Si el cliente pidió no recibir mensajes, o el canal o la IA están en pausa, no se le escribe.",{"id":452,"title":453,"titles":454,"content":455,"level":223},"\u002Fdocs\u002Fconcepts\u002Fautomations#mensajes-automáticos-con-cabeza","Mensajes automáticos con cabeza",[39],"Hay un tope de 30 envíos automáticos por hora a clientes, por proyecto: los envíos se van escalonando solos para cuidar la línea de WhatsApp.En la ficha del cliente (dueño y gerente), el interruptor \"No enviar mensajes automáticos de promoción\" marca a quien pidió no recibirlos. Los recordatorios de turnos siguen saliendo igual: el interruptor solo frena los mensajes de promoción, como la reactivación.",{"id":457,"title":458,"titles":459,"content":460,"level":223},"\u002Fdocs\u002Fconcepts\u002Fautomations#garantías-de-ejecución","Garantías de ejecución",[39],"Cada envío se programa junto con el evento que lo origina, así que no se pierde.Antes de salir, el sistema vuelve a revisar la tarea. Si se reprogramó o canceló, el envío viejo se descarta.Cada envío sale una sola vez y, si falla, reintenta con espera creciente; tras 5 fallos aparece en el panel.Horario de silencio: no se envía nada a clientes entre las 21:00 y las 08:00 de la zona horaria del negocio. El envío se difiere, no se pierde.Las respuestas SÍ\u002FNO (\"sí\", \"ok\", \"👍\", \"não\"...) se interpretan sin IA: instantáneo y sin costo.",{"id":462,"title":463,"titles":464,"content":465,"level":223},"\u002Fdocs\u002Fconcepts\u002Fautomations#próximamente","Próximamente",[39],"Todavía no existen disparadores para pre-reservas vencidas ni para pagos (llegan con el cobro de señas).",{"id":467,"title":468,"titles":469,"content":470,"level":223},"\u002Fdocs\u002Fconcepts\u002Fautomations#avisos-por-servicio-y-bitácora","Avisos por servicio y bitácora",[39],"En Configuración → Avisos al cliente, el dueño o gerente configura avisos por servicio: creación sin horario, persona asignada o cambiada, datos modificados, en camino, llegada y finalización. Comienzan apagados. Para datos modificados se eligen las claves de los campos relevantes; las ediciones consecutivas se agrupan hasta 60 segundos después de la última. Para progreso se elige una etapa vigente del servicio. Si esa etapa ya tiene un aviso, se conserva su configuración existente. Los textos se guardan por idioma y admiten los marcadores de servicio y negocio. La bitácora aparece en esa configuración, en Actividad de la tarea y en la ficha del cliente. Muestra hasta 50 intentos de los últimos 90 días: enviado, omitido, diferido o fallido, con canal, plantilla y motivo. «Enviado» significa aceptado por el adaptador; no acredita entrega ni lectura. No guarda texto ni datos de contacto. Empieza con esta versión, sin reconstruir envíos anteriores. Sin canal o con la ventana de respuesta vencida se omite; no hay cambio automático a correo u otro canal. El rechazo de promoción afecta la reactivación, no los avisos operativos.",{"id":44,"title":43,"titles":472,"content":473,"level":217},[],"Encontrá clientes, conversaciones, tareas, recursos y servicios desde cualquier pantalla del panel con Ctrl\u002FCmd+K o la lupa del móvil. La búsqueda global te lleva directo a lo que buscás, desde cualquier pantalla del panel, sin entrar a cada sección.",{"id":475,"title":476,"titles":477,"content":478,"level":223},"\u002Fdocs\u002Fconcepts\u002Fglobal-search#cómo-usarla","Cómo usarla",[43],"En la computadora pulsá Ctrl+K (en Mac, Cmd+K). En el celular, tocá la lupa de la barra superior.Escribí lo que buscás: un nombre, un teléfono, un email o el código de una tarea.Recorré los resultados con las flechas, pulsá Enter para abrir el resultado y Escape para cerrar. Los resultados vienen agrupados por tipo —Clientes, Conversaciones, Tareas, Recursos y Servicios— y los grupos vacíos no se muestran. Cada resultado abre su pantalla: una tarea abre directamente su diálogo.",{"id":480,"title":481,"titles":482,"content":483,"level":223},"\u002Fdocs\u002Fconcepts\u002Fglobal-search#qué-busca","Qué busca",[43],"Clientes: nombre, teléfono o email.Conversaciones: por el cliente o por el último mensaje.Tareas: por cliente, servicio o código (el prefijo corto que ves en la tarea).Recursos y servicios: por nombre.",{"id":485,"title":486,"titles":487,"content":488,"level":223},"\u002Fdocs\u002Fconcepts\u002Fglobal-search#quién-ve-qué","Quién ve qué",[43],"Los resultados respetan tu rol: el personal y la lectura no ven clientes, recursos ni servicios, y el personal ve solo las conversaciones y tareas que ya puede ver en sus pantallas, con los datos sensibles enmascarados. La búsqueda nunca muestra dinero ni registra lo que escribiste. Si un grupo tarda demasiado, se omite y el resto de los resultados aparece igual.",{"id":48,"title":47,"titles":490,"content":491,"level":217},[],"Cómo ver los resultados de cada servicio y del negocio, con períodos, tendencias, mejores clientes y exportación CSV, y quién puede verlos. En Servicios ves mucho más que el catálogo: cada servicio muestra sus resultados pasados y el negocio tiene un resumen mensual con el total.",{"id":493,"title":494,"titles":495,"content":496,"level":223},"\u002Fdocs\u002Fconcepts\u002Fsales-results#en-el-detalle-de-un-servicio","En el detalle de un servicio",[47],"Abrí Servicios y tocá el servicio.Elegí el período: Hoy, semana, mes, mes pasado, trimestre (con barras semanales) o año (con barras mensuales).Revisá los indicadores y tocá Exportar CSV para bajar la tabla. Qué muestra: Tareas completadas, con la tasa de canceladas y de ausentes (\"no estaba\").Facturación estimada y ticket promedio: se calculan con el precio actual del catálogo de las tareas completadas, más las señas retenidas. Es una estimación, no los cobros reales.Señas retenidas y mejores clientes (sin datos que tu rol no pueda ver).Día y hora pico del servicio.Peso sobre la capacidad: cuánto de los recursos compartidos ocupa el servicio. Los servicios por cola no usan agenda, así que no tienen este dato. Si el servicio tiene un formulario con cantidades o cálculos (ver Servicios y disponibilidad), los resultados se agregan por campo: ves cuánto se usó o vendió de cada cosa, con su tendencia, y también sale en el CSV.",{"id":498,"title":499,"titles":500,"content":501,"level":223},"\u002Fdocs\u002Fconcepts\u002Fsales-results#resumen-del-negocio","Resumen del negocio",[47],"La lista de Servicios trae una tarjeta con el resumen del mes de todo el negocio; tocándola ves el detalle repartido por servicio.",{"id":503,"title":504,"titles":505,"content":506,"level":223},"\u002Fdocs\u002Fconcepts\u002Fsales-results#quién-lo-ve","Quién lo ve",[47],"Solo el dueño y el gerente (o una clave de API con permiso de lectura de reservas) ven resultados e importes. El personal y la lectura no reciben dinero ni nombres de clientes.",{"id":52,"title":51,"titles":508,"content":509,"level":217},[],"Renombrá Servicio, Tarea, Recurso y Cliente con las palabras de tu negocio y usalas en el panel, el bot, los avisos y los emails operativos. Fiuit habla del servicio, la tarea, el recurso y el cliente. Si en tu negocio esas cosas tienen otro nombre —producto y pedido, profesional y paciente— podés ponerlos vos. El panel, los mensajes del bot, los avisos y los emails operativos usan tus palabras, con la concordancia correcta («el turno» \u002F «la entrega», «Nuevo turno» \u002F «Nueva entrega»).",{"id":511,"title":512,"titles":513,"content":514,"level":223},"\u002Fdocs\u002Fconcepts\u002Fvocabulary#cambiar-los-nombres-paso-a-paso","Cambiar los nombres, paso a paso",[51],"Entrá a Configuración → Cómo llamás a las cosas (solo el dueño o quien administra el proyecto).Elegí un punto de partida o escribí cada nombre a mano. Para cada concepto definí el singular, el plural y el género, en minúscula.Editás por idioma: los nombres que escribas en español se usan en los mensajes en español, y así con portugués e inglés.Guardá. Configuración aplica todo junto en una sola tanda: Guardar confirma los nombres junto con el resto de los cambios de la página y Descartar recupera los valores anteriores. Los cambios se ven enseguida en el menú, los botones, las pantallas, los mensajes del bot y los avisos, para todo el equipo.",{"id":516,"title":517,"titles":518,"content":519,"level":223},"\u002Fdocs\u002Fconcepts\u002Fvocabulary#qué-no-cambia","Qué no cambia",[51],"Solo cambia el nombre. Tus datos, reservas, permisos y estadísticas siguen igual: una tarea sigue siendo una tarea aunque en pantalla diga «pedido».Los textos que escriben las personas (notas, respuestas, comentarios) no se tocan.Para volver atrás, restaurá los nombres predeterminados en la misma sección y guardá. Los nombres reales —de clientes, servicios o recursos— y los números nunca se traducen: el vocabulario cambia cómo Fiuit llama a los conceptos, no a tus datos.",{"id":56,"title":55,"titles":521,"content":522,"level":217},[],"La paleta de colores del proyecto se elige en Configuración y vale para todo el equipo; cada persona elige entre tema claro, oscuro o automático en su cuenta. Fiuit tiene dos decisiones de color separadas: la paleta del proyecto (qué colores usa el panel) y el tema claro\u002Foscuro (sobre qué fondo se dibujan).",{"id":524,"title":525,"titles":526,"content":527,"level":223},"\u002Fdocs\u002Fconcepts\u002Fthemes#la-paleta-del-proyecto","La paleta del proyecto",[55],"La paleta define los colores del panel para todo el equipo: botones, etiquetas, acciones principales y superficies. Entrá a Configuración → Apariencia (dueño o quien administra el proyecto).Elegí una paleta entre las disponibles: combinaciones de dos colores, monocromos y la opción Blanco y negro para una interfaz sin colores de marca. El selector muestra una vista previa con el texto y los botones reales.Guardá. Los cambios de Configuración se aplican todos juntos con un solo Guardar y se ven enseguida para todo el equipo. Si no elegís ninguna, el proyecto usa la paleta de la plataforma. Con la paleta Blanco y negro, los avisos de éxito, error y demás siguen en color: lo importante no se te escapa.",{"id":529,"title":530,"titles":531,"content":532,"level":223},"\u002Fdocs\u002Fconcepts\u002Fthemes#el-tema-de-cada-persona","El tema de cada persona",[55],"Cada persona elige cómo se ve su propio panel, sin tocar la paleta del proyecto: En Mi cuenta elegís claro, oscuro o automático (sigue el tema del dispositivo).El mapa tiene su propio selector (automático, claro u oscuro), que se recuerda por navegador. Así el negocio mantiene su identidad y cada quien trabaja con la luz que prefiere.",{"id":66,"title":65,"titles":534,"content":535,"level":217},[],"Conectá el número de tu negocio por QR, qué hace el asistente con clientes y con tu equipo, y cómo derivar una conversación a una persona.",{"id":537,"title":538,"titles":539,"content":540,"level":223},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#conectar-un-número","Conectar un número",[65],"En el panel, andá a Configuración → Canales.Tocá Vincular WhatsApp. Aparece un código QR.En el celular del negocio abrí WhatsApp, tocá Configuración (o los tres puntos), Dispositivos vinculados y Vincular un dispositivo, y apuntá la cámara al código.Cuando el estado pase a Conectado ya podés recibir mensajes. Si el código vence, tocá Reconectar para generar otro. Solo el propietario y los gerentes pueden vincular. La pantalla te muestra el estado (conectado, esperando escaneo, desconectado) y cuántas conexiones incluye tu plan. Desconectar detiene al bot en ese número pero conserva las conversaciones y el historial. Usá un número dedicado al negocio. Hoy la conexión por QR (como en WhatsApp Web) es la forma de conectar WhatsApp. No compartas el código: da acceso a tu WhatsApp. Hay un Canal de prueba: es el simulador del bot y no cuenta para tu plan.",{"id":542,"title":543,"titles":544,"content":545,"level":223},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#clientes-y-equipo","Clientes y equipo",[65],"El rol se decide en el código, nunca por lo que alguien diga en el chat: Un número vinculado a alguien del equipo (verificado con un código de un solo uso) recibe herramientas de equipo.Todos los demás reciben herramientas de cliente. Herramientas de clienteHerramientas de equipo (extra)Ver servicios, buscar horarios, pre-reservar y confirmar, ver y cancelar o reagendar sus reservas, consultar la información y el conocimiento del negocio, guardar una ubicación compartida, pasar a una personaVer el día, bloquear tiempo, marcar una ausencia, actualizar el catálogo y avanzar etapas de una tarea, siempre con confirmación SÍ\u002FNO El equipo también puede recibir avisos por Telegram.",{"id":547,"title":548,"titles":549,"content":550,"level":223},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#qué-puede-y-qué-no-puede-hacer-la-ia","Qué puede y qué no puede hacer la IA",[65],"PuedeNo puedeEntender texto, audio, errores de tipeo y cambios de ideaInventar horarios, precios o direccionesBuscar horarios y ofrecer 2 o 3 opcionesConfirmar una reserva sin el motorPre-reservar y pedir los datos que faltanUsar herramientas de administrador con un clienteResponder con el conocimiento del negocioSeguir instrucciones escondidas en mensajes o archivosPasar la conversación a una personaVer datos de otro negocio Más detalle en Bot y IA.",{"id":552,"title":553,"titles":554,"content":555,"level":223},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#ubicación-compartida","Ubicación compartida",[65],"Si un cliente comparte su ubicación por WhatsApp, queda guardada en la conversación y el Inbox la muestra con un mapa. El bot puede usarla como destino de una entrega o como dirección del cliente, siempre pidiéndole que confirme con SÍ o NO. Ver Mapa y direcciones.",{"id":557,"title":558,"titles":559,"content":560,"level":223},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#derivación-a-una-persona","Derivación a una persona",[65],"El equipo ve todas las conversaciones en vivo en el Inbox. Con Tomar el control el bot se pausa en esa conversación; vuelve solo tras 15 minutos sin actividad del operador, o cuando tocás Devolver. El asistente también deriva cuando el cliente lo pide (\"quiero hablar con una persona\").",{"id":562,"title":563,"titles":564,"content":565,"level":223},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#audios-e-idiomas","Audios e idiomas",[65],"Los audios se transcriben antes de que la IA los lea y la transcripción se ve en el Inbox. El asistente responde en el idioma del cliente (portugués, español o inglés).",{"id":567,"title":568,"titles":569,"content":570,"level":223},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#pausar-el-canal","Pausar el canal",[65],"Si hay spam o ruido, podés pausar el bot o todo el canal sin desconectarlo. Mirá Pausas y Estado.",{"id":70,"title":69,"titles":572,"content":573,"level":217},[],"Poné el asistente de Fiuit en tu sitio con una línea de código, con datos de contacto obligatorios y reglas por canal. El chat web es un widget que tu negocio pega en su propio sitio. Conversa con el mismo bot que WhatsApp (mismos horarios, precios y reservas), sin número ni aprobaciones de terceros. Las conversaciones llegan al mismo Inbox. Si alojás Fiuit vos mismo, el chat web viene apagado: se activa con PUBLIC_WEBCHAT_ENABLED=true en la API.",{"id":575,"title":576,"titles":577,"content":578,"level":223},"\u002Fdocs\u002Fchannels\u002Fwebchat#instalar-paso-a-paso","Instalar paso a paso",[69],"Entrá como propietario a Configuración → Canales → Chat web.En Sitios permitidos agregá cada sitio donde lo vas a usar, uno por línea, con https:\u002F\u002F y sin comodines ni rutas (por ejemplo https:\u002F\u002Fwww.mitienda.com). Para probar en tu computadora se acepta http:\u002F\u002Flocalhost.Elegí color principal, posición del botón, idioma por defecto, un título opcional (hasta 40 caracteres) y el avatar del asistente: tu logo (con su URL), la mascota animada Wagy tiñida con tu color, o unas iniciales genéricas.Tocá Activar chat web. Recibís una clave publicable wg_web_… y el código para pegar.Pegá el snippet antes de \u003C\u002Fbody> en cada página donde quieras el chat: \u003Cscript src=\"https:\u002F\u002Ffiuit.com\u002Fwidget.js\" data-key=\"wg_web_…\" defer>\u003C\u002Fscript> Atributos opcionales: data-locale (pt, es o en; por defecto usa el idioma del navegador), data-offset-bottom (píxeles, para subir el botón si tu sitio tiene una barra fija abajo), data-api (origen de la API, solo para entornos de prueba) y data-avatar (logo, wagy o generic; fuerza el avatar por sobre el configurado). Si tocás Desactivar, el chat deja de funcionar y se cierran las conversaciones abiertas; al volver a activarlo recibís una clave nueva y tenés que actualizar el código. En \u002Fdemo\u002Fwebchat hay una página de demostración donde pegás la clave y ves el widget funcionando.",{"id":580,"title":581,"titles":582,"content":583,"level":223},"\u002Fdocs\u002Fchannels\u002Fwebchat#qué-ve-el-visitante","Qué ve el visitante",[69],"Un botón flotante que abre el chat (en el celular se abre a pantalla completa, respetando las zonas seguras), en portugués, español o inglés.Si elegís a Wagy como avatar, la mascota parpadea y «habla» mientras el bot prepara la respuesta (con la preferencia de reducción de movimiento del dispositivo queda estática), y el botón flotante puede mostrar una mini Wagy.Un chat breve a propósito: respuestas cortas que proponen reservar o seguir por WhatsApp. Desde la web el visitante es anónimo y cada respuesta cuesta.Si el bot le pide su ubicación (por ejemplo para una entrega), ofrece Usar mi ubicación, con consentimiento explícito.La conversación sigue entre páginas y recargas: al volver, el chat muestra lo conversado y las respuestas que llegaron mientras tanto (con un aviso de mensajes nuevos si estaba cerrado). Un botón Nueva conversación, en el menú ⋯ del chat, la borra y empieza de cero.",{"id":585,"title":586,"titles":587,"content":588,"level":223},"\u002Fdocs\u002Fchannels\u002Fwebchat#continuidad-entre-páginas-y-recargas","Continuidad entre páginas y recargas",[69],"Al abrir la conversación el servidor emite un código de sesión opaco. El widget lo guarda en el almacenamiento del navegador (localStorage, o sessionStorage si no está disponible) del sitio donde instalaste el chat, con una clave por clave publicable. No usa cookies ni servicios de terceros, y ahí no se guarda nada personal: ni nombre, ni teléfono, ni email, ni mensajes. Los datos de contacto declarados viven solo en el servidor, así que el chat no los vuelve a pedir dentro de la misma conversación. Al cargar otra página o recargar, el widget valida el código, trae el historial y se reconecta para recibir las respuestas nuevas.Vencimiento: la conversación vence por inactividad y por un tope máximo de duración. Si el código venció, se cerró o se purgó, el widget lo borra y empieza una conversación nueva, sin mostrar errores.Nueva conversación: el visitante la elige desde el menú ⋯. Se invalida el código en el servidor, se borra el del navegador y el chat arranca vacío. El equipo conserva el historial anterior en el Inbox hasta que se purga.Modo privado o almacenamiento bloqueado: el chat funciona igual, pero la conversación no sobrevive a una recarga.Canal pausado: si pausaste el canal, el chat no se muestra aunque el visitante tenga un código guardado; al reanudarlo, la conversación sigue. El código no es un secreto fuerte: es una llave de una sola conversación, nunca da acceso a otras ni al panel. Solo sirve desde los orígenes que autorizaste en el widget, está sujeto a los mismos límites de uso y se invalida al vencer, al elegir Nueva conversación y al purgar la conversación.",{"id":590,"title":591,"titles":592,"content":593,"level":223},"\u002Fdocs\u002Fchannels\u002Fwebchat#datos-de-contacto-obligatorios","Datos de contacto obligatorios",[69],"Por defecto el bot no conversa hasta tener teléfono y email: ante cualquier mensaje responde un texto fijo (sin IA) y el chat muestra un mini formulario (teléfono con selector de país, en formato internacional, y email). Apenas se completa, el primer mensaje del visitante se procesa solo, sin que lo repita. Los datos son declarados, no verificados: no identifican al visitante ni se unen a clientes existentes. Se guardan cifrados y se borran junto con la conversación vencida.",{"id":595,"title":596,"titles":597,"content":598,"level":223},"\u002Fdocs\u002Fchannels\u002Fwebchat#reglas-del-bot-por-canal","Reglas del bot por canal",[69],"En Canales → Reglas del bot por canal (propietario y gerente) elegís el canal (Chat web o WhatsApp) y definís: ReglaQué haceChat web (por defecto)WhatsApp (por defecto)Datos que exigeNombre, teléfono y\u002Fo email antes de conversarteléfono y emailninguno (el teléfono ya llega del canal)Cuándo los pideDesde el primer mensaje, después de unas respuestas, o nuncadesde el primer mensajenuncaTexto con el que los pideUn texto fijo personalizableel predeterminadono aplicaLímite de respuestasTope de respuestas del bot por conversación6sin topeQué ofrece al llegar al límiteContinuar por WhatsApp y\u002Fo recibir la información por emailambosningunoEstilo del bot en el canalUna preferencia de tono (hasta 500 caracteres)respuestas cortasninguna Son reglas del proyecto: las aplica el servidor antes de invocar a la IA, aunque alguien use la API pública sin el widget. Al llegar al límite el bot deja de responder y de gastar IA, manda un mensaje fijo con las opciones y la conversación queda en el Inbox como \"necesita seguimiento\", con los datos que dejó el visitante. Si no hay WhatsApp conectado, esa opción no se ofrece.",{"id":600,"title":310,"titles":601,"content":602,"level":223},"\u002Fdocs\u002Fchannels\u002Fwebchat#seguridad",[69],"La clave publicable solo abre conversaciones anónimas: no da acceso al panel, a la API privada ni a datos de clientes. Se puede revocar cuando quieras.El negocio sale siempre de la clave; el widget nunca envía un identificador de negocio.Solo los sitios permitidos pueden usar el chat. Sin cookies.El chequeo del origen no es autenticación: solo protege contra otros sitios en un navegador. La protección real son los límites de uso.Hay topes de mensajes por conversación, por hora y por día. Al agotarse, el chat responde que esperes y la IA no se invoca.El texto del visitante se trata como dato no confiable, y el widget lo muestra siempre como texto plano.El chat solo responde: no envía mensajes proactivos.Podés pausar el bot o todo el canal si hace falta; con el canal pausado el widget se oculta.",{"id":604,"title":160,"titles":605,"content":606,"level":223},"\u002Fdocs\u002Fchannels\u002Fwebchat#api",[69],"Gestión (propietario): GET|PUT|DELETE \u002Fv1\u002Fwebchat-site. Reglas por canal (propietario y gerente): GET \u002Fv1\u002Fbot\u002Fchannel-policies y PUT \u002Fv1\u002Fbot\u002Fchannel-policies\u002F{channel}. Los endpoints públicos del widget están en el contrato OpenAPI bajo \u002Fv1\u002Fpublic\u002Fwebchat. html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":74,"title":73,"titles":608,"content":609,"level":217},[],"Conectá el bot de Telegram de tu negocio para que tus clientes reserven y consulten como en WhatsApp, con la misma bandeja y el mismo bot. Con Telegram, tus clientes escriben a un bot propio de tu negocio y reciben la atención del mismo asistente que en WhatsApp: mismos servicios, mismos horarios, misma bandeja. Es independiente del Telegram del equipo, que es un único bot de Fiuit para avisos internos y la Mini App \"Mi día\".",{"id":611,"title":612,"titles":613,"content":614,"level":223},"\u002Fdocs\u002Fchannels\u002Ftelegram#conectar-tu-bot","Conectar tu bot",[73],"En Telegram abrí @BotFather y mandá \u002Fnewbot. Elegí un nombre y un usuario que termine en bot.BotFather te da un token (algo como 123456:ABC…). Es un secreto: no lo compartas.En el panel, andá a Configuración → Canales → Telegram para tus clientes.Pegá el token en Token del bot y tocá Conectar bot. Solo el propietario puede hacerlo.Cuando el estado diga Recibiendo mensajes, ya funciona. Probalo escribiéndole al bot desde tu Telegram. El token se guarda cifrado y no se vuelve a mostrar. Si lo revocás en BotFather, pegá el nuevo con Actualizar token. Un mismo bot no puede estar conectado a dos negocios. Desconectar borra el token guardado y conserva el historial.",{"id":616,"title":617,"titles":618,"content":619,"level":223},"\u002Fdocs\u002Fchannels\u002Ftelegram#qué-hace","Qué hace",[73],"Atiende con el mismo bot: busca horarios, pre-reserva, confirma, responde con tu conocimiento y deriva a una persona.Las opciones y confirmaciones aparecen como botones dentro del chat.Acepta texto y ubicación (también la que comparten como lugar). Hoy no procesa voz, fotos ni mensajes de grupos o canales.No tiene ventana de respuesta como WhatsApp: podés contestar cuando quieras.",{"id":621,"title":622,"titles":623,"content":624,"level":223},"\u002Fdocs\u002Fchannels\u002Ftelegram#identidad-multicanal","Identidad multicanal",[73],"Cada persona que escribe por Telegram queda como una identidad del cliente, verificada por Telegram y sin teléfono. Un mismo cliente puede tener varias identidades (teléfono de WhatsApp, Telegram) y verlas todas en su ficha. Los mensajes salientes se envían por el canal de la identidad correspondiente.",{"id":626,"title":553,"titles":627,"content":628,"level":223},"\u002Fdocs\u002Fchannels\u002Ftelegram#ubicación-compartida",[73],"Si el cliente comparte su ubicación, queda en la conversación y el Inbox muestra un mapa. El bot puede guardarla como destino de la tarea o como dirección del cliente, con confirmación SÍ\u002FNO. Mirá Mapa y direcciones.",{"id":630,"title":631,"titles":632,"content":633,"level":223},"\u002Fdocs\u002Fchannels\u002Ftelegram#estado-y-pausas","Estado y pausas",[73],"En Configuración → Estado ves si el bot está recibiendo mensajes, si hubo errores de entrega y si algún cliente bloqueó al bot. Podés pausar el bot o el canal.",{"id":635,"title":463,"titles":636,"content":637,"level":223},"\u002Fdocs\u002Fchannels\u002Ftelegram#próximamente",[73],"Instagram: mirá Instagram (se habilita cuando Meta aprueba la app). El bot de clientes reserva servicios con horario; las tareas de cola las crea el equipo desde el panel o la API. Creación de entregas en cola por chat: próximamente.",{"id":78,"title":77,"titles":639,"content":640,"level":217},[],"Pausá un canal o la IA de tu proyecto en una emergencia, y mirá en Estado y en Uso de IA si tu negocio está atendiendo. Hay tres herramientas para cuando algo se complica (spam, costos inesperados, ruido en el Inbox) y dos pantallas para ver cómo está tu servicio.",{"id":642,"title":643,"titles":644,"content":645,"level":223},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#pausar-un-canal","Pausar un canal",[77],"Cada canal conectado (WhatsApp, Telegram y chat web) se puede pausar sin desconectarlo, en Configuración → Canales. Solo propietario y gerente. Hay dos niveles: NivelQué pasaCuándo usarloPausar botLos mensajes se siguen guardando y llegan al Inbox, pero el bot no responde ni gasta IA. La conversación pasa a modo humano, marcada para atención. Opcionalmente se envía al cliente un único mensaje fijo (vos elegís el texto; por defecto \"En breve te responde una persona.\").Querés atender a mano un rato.Pausar canalTodo lo que llega por el canal se descarta: no se crean clientes, conversaciones ni mensajes, y no hay IA. Solo se cuenta cuántos se descartaron. El equipo tampoco puede enviar por ese canal. El chat web deja de mostrarse.Hay spam o abuso. Pasos: Entrá a Configuración → Canales y buscá el canal.Tocá Pausar bot o Pausar canal.Escribí un motivo (opcional), decidí si querés enviar el mensaje fijo y confirmá.Para volver, tocá Reanudar. Mientras algo está en pausa, el panel muestra un aviso con quién lo pausó y desde cuándo. Todo queda en el registro de auditoría.",{"id":647,"title":648,"titles":649,"content":650,"level":223},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#pausar-la-ia-del-proyecto","Pausar la IA del proyecto",[77],"Es un interruptor de emergencia en Configuración → Uso de IA: corta todo el consumo de IA del proyecto (bot, Wagy, conocimiento y transcripción de audios) antes de que se gaste un centavo más. El bot responde un mensaje fijo y pasa la conversación al Inbox con atención.Las importaciones de conocimiento quedan en espera, sin error, y se retoman al reanudar.Lo demás sigue funcionando: calendario, tareas, clientes y acciones manuales. Tocá Pausar IA y confirmá; para volver, Reanudar IA. Solo propietario y gerente.",{"id":652,"title":653,"titles":654,"content":655,"level":223},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#pausa-automática-por-spam-o-abuso","Pausa automática por spam o abuso",[77],"Activada por defecto, en Configuración → Uso de IA. Dos protecciones, ambas sin pausar nunca el canal entero (así no se pierde ningún cliente legítimo): Silencio por contacto. Si un mismo contacto manda más de 15 mensajes en 5 minutos (o 60 en una hora), el bot deja de responderle en esa conversación durante 30 minutos. Los mensajes se siguen guardando y llegan al Inbox; solo se corta la IA y las respuestas automáticas. La conversación queda marcada para atención con el motivo \"posible spam\", te llega una notificación de spam y, desde la conversación, Reactivar bot la devuelve antes de tiempo. Al terminar el enfriamiento el bot vuelve solo.Freno de gasto de IA. Si el proyecto supera 300 llamadas a la IA en 10 minutos, la IA del proyecto se pausa sola (motivo: automática) y te avisamos. Esta pausa no se levanta sola: una ráfaga así puede ser un bucle o un ataque, y reactivar sola volvería a gastar. La ves en Estado y en Uso de IA, y la reanudás con Reanudar IA cuando revisaste qué pasó. Los mensajes de tu equipo y los del simulador no cuentan. Propietario y gerente pueden apagarlo o cambiar los umbrales y el enfriamiento.",{"id":657,"title":658,"titles":659,"content":660,"level":223},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#estado-de-mi-servicio","Estado de mi servicio",[77],"Configuración → Estado (propietario y gerente) responde en lenguaje llano si tu negocio está atendiendo. Muestra un semáforo general y una tarjeta por cada parte: WhatsApp: si está conectado y recibiendo mensajes.Asistente automático: si el bot está activo.Respuestas inteligentes: si hay cuota de IA disponible este mes.Chat web y Telegram: sitios permitidos y sesiones activas, último mensaje, topes de uso alcanzados, webhook de Telegram, errores de entrega y clientes que bloquearon al bot.Los canales disponibles que todavía no conectaste, con un enlace a Canales. Cada tarjeta con un problema trae un enlace para arreglarlo. Si algo está pausado, también se indica.",{"id":662,"title":663,"titles":664,"content":665,"level":223},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#uso-de-ia","Uso de IA",[77],"Configuración → Uso de IA muestra cuánta IA usó tu negocio este mes y cuál es el límite de tu plan, con avisos al llegar al 80 % y al límite. Al llegar al límite, las funciones con IA se pausan y las automatizaciones con IA esperan en la bandeja; todo lo demás sigue funcionando.Si no se puede confirmar el uso, aparece \"Uso incierto\" y la IA puede estar limitada.El monto es el subtotal conocido, no una factura.Con Solicitar más (propietario) le avisás al equipo de Fiuit para ampliar el límite.",{"id":667,"title":668,"titles":669,"content":670,"level":223},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#qué-rol-puede-qué","Qué rol puede qué",[77],"AcciónPropietarioGerenteEquipo y lecturaPausar o reanudar canales e IASíSíNoVer Estado y Uso de IASíSíNoSolicitar más IASíNoNoConectar Telegram o publicar el chat webSíNoNo Más sobre permisos en Roles y permisos.",{"id":82,"title":81,"titles":672,"content":673,"level":217},[],"Todas las conversaciones de todos los canales en un solo lugar: estados, resolver, archivar, eliminar, contexto del cliente y resumen con IA. El Inbox reúne las conversaciones de WhatsApp, Telegram y el chat web en una sola bandeja. El bot atiende solo; el Inbox es donde entrás vos cuando una conversación necesita una persona.",{"id":675,"title":676,"titles":677,"content":678,"level":223},"\u002Fdocs\u002Fchannels\u002Finbox#estados-de-una-conversación","Estados de una conversación",[81],"Cada conversación tiene un estado que refleja a quién se está esperando: Pendiente: todavía nadie la tomó.Esperando al cliente: respondiste y quedó a la espera de que el cliente escriba.Esperando al equipo: el cliente escribió y hay que responder.Resuelta: terminada. En la lista podés filtrar por estado, con el contador de cada uno; los filtros en cero no se muestran.",{"id":680,"title":681,"titles":682,"content":683,"level":223},"\u002Fdocs\u002Fchannels\u002Finbox#resolver-archivar-y-eliminar","Resolver, archivar y eliminar",[81],"Marcar como resuelta (y Reabrir una resuelta) está en el detalle y en el menú de cada fila. Si el cliente vuelve a escribir, la conversación se reabre sola. También podés hacerlo con varias conversaciones a la vez: entrá al modo de selección, elegí las filas y aplicá la acción.Archivar saca la conversación de la lista principal. El filtro Archivadas aparece solo si hay alguna, y desde ahí la desarchivás.Eliminar (solo dueño y gerente) borra la conversación y todos sus mensajes y adjuntos para siempre. El cliente y sus tareas quedan; si el cliente escribe de nuevo, empieza una conversación nueva. El panel te pide confirmación y te avisa si hay envíos pendientes. Cada borrado queda en el registro de auditoría.",{"id":685,"title":686,"titles":687,"content":688,"level":223},"\u002Fdocs\u002Fchannels\u002Finbox#contexto-del-cliente","Contexto del cliente",[81],"Al abrir una conversación, un panel lateral (una hoja en el celular) muestra el contexto del cliente: sus datos, un resumen de sus visitas, sus etiquetas y notas, y sus próximas y últimas tareas, que abren el diálogo de tarea. Lo que está vacío se oculta. Desde ahí también podés crear una tarea con el cliente ya precargado (y el servicio de su última tarea, si sigue activo). Si ya tiene una próxima tarea parecida, el panel te ofrece abrirla antes de crear otra. El personal ve solo el canal, el estado y las tareas que ya puede ver: nunca ve dinero. El dueño y el gerente leen la ficha completa.",{"id":690,"title":691,"titles":692,"content":693,"level":223},"\u002Fdocs\u002Fchannels\u002Finbox#resumir-con-ia","Resumir con IA",[81],"El botón Resumir (en el contexto de la conversación) arma con IA un resumen breve: qué pide el cliente, qué se le respondió y qué queda pendiente, en tres a cinco viñetas. Los teléfonos y emails aparecen enmascarados, y el texto es de lectura: confirmalo en la conversación antes de actuar. Se genera solo cuando hay mensajes nuevos; si nada cambió, se muestra el resumen guardado sin gastar IA de nuevo.Junto a la fecha del resumen aparece Actualizar cuando entraron mensajes nuevos.Consume la cuota de IA del plan y respeta la pausa de emergencia: con la IA pausada o sin cuota no hay botón, solo el aviso.",{"id":695,"title":696,"titles":697,"content":698,"level":223},"\u002Fdocs\u002Fchannels\u002Finbox#permisos","Permisos",[81],"AcciónDueño y gerentePersonalSolo lecturaVer y responderSíSolo lo suyoSí (lectura)Cambiar estado y archivarSíSíNoEliminarSíNoNoResumir con IASíSí (solo lo que ve)No Cuando una conversación queda en manos de una persona, el bot se pausa en esa conversación: ver El bot y la IA.",{"id":700,"title":701,"titles":702,"content":703,"level":223},"\u002Fdocs\u002Fchannels\u002Finbox#primer-contacto-desde-la-ficha-del-cliente","Primer contacto desde la ficha del cliente",[81],"El botón de mensaje de la ficha lleva el nombre del canal («WhatsApp», «Telegram»); con varios canales, en la computadora hay un botón por canal (hasta dos) y en el celular «Mensaje» abre una hoja para elegirlo. Abre una conversación vacía si hay un canal conectado y un destinatario enrutable. Abrir no envía nada. Telegram requiere un usuario que ya escribió al bot; el teléfono no sirve como destinatario. WhatsApp Cloud (oficial): los textos libres necesitan una ventana de 24 horas abierta por un mensaje del cliente. Abrir la conversación no abre esa ventana. Fuera de ella hace falta una plantilla aprobada; este botón no envía plantillas.WAHooks (no oficial): permite texto de primer contacto sin la ventana oficial. El panel avisa antes de abrir: el número puede ser bloqueado; evitá mensajes no solicitados. Hay un límite de aperturas nuevas por proyecto y día UTC (20 por defecto). Reabrir la misma conversación no consume cupo; al alcanzar el límite, esperá al día siguiente. Este límite no elimina el riesgo de bloqueo.Instagram: no se inicia desde la ficha: el cliente abre la ventana de 24 h al escribir. Chat web: solo responde al visitante.",{"id":86,"title":85,"titles":705,"content":706,"level":217},[],"Un formulario de tu sitio (o de Typeform, Tally…) que entra al Inbox como un canal, con URL protegida por token, antispam y respuesta por email o WhatsApp. El canal Formulario recibe los envíos de un formulario de tu propio sitio (o de una herramienta como Typeform o Tally) y los convierte en conversaciones del Inbox: llegan con nombre, email, teléfono y mensaje, y los respondés desde ahí, como cualquier conversación.",{"id":708,"title":709,"titles":710,"content":711,"level":223},"\u002Fdocs\u002Fchannels\u002Fform#activarlo-paso-a-paso","Activarlo, paso a paso",[85],"Entrá como propietario a Canales → Formulario y tocá Activar el canal.Recibís la URL pública con un token secreto: es donde apunta tu formulario. El panel también te da un código HTML simple, sin dependencias, listo para pegar en tu sitio.Opcional — Sitios permitidos: restringí de dónde se puede enviar, un dominio por línea (con https:\u002F\u002F, sin rutas ni comodines, hasta 10). Vacío: acepta envíos de cualquier sitio.Opcional — Verificación antispam: si la plataforma tiene las claves de Cloudflare Turnstile, activá la verificación para bloquear bots del lado del servidor.Opcional — Mapeo de campos: si tu formulario usa otros nombres de campo, indicá a qué dato corresponde cada uno (nombre, email, teléfono, motivo, mensaje). El resto de los campos se guardan como datos extra del envío.",{"id":713,"title":714,"titles":715,"content":716,"level":223},"\u002Fdocs\u002Fchannels\u002Fform#cómo-se-responde","Cómo se responde",[85],"Cada envío aparece en el Inbox como una conversación nueva, en el idioma del proyecto. Se responde por email o por WhatsApp, según los canales que tengas conectados y los datos que haya dejado quien escribió: Con email o teléfono a mano, respondés directo desde el Inbox.Si no hay ninguna vía de respuesta, el envío se ve igual en el Inbox, marcado como sin respuesta disponible. Antes de publicar el formulario, podés mandar un envío de prueba desde el propio canal y verlo en el Inbox con una etiqueta de prueba.",{"id":718,"title":719,"titles":720,"content":721,"level":223},"\u002Fdocs\u002Fchannels\u002Fform#el-token","El token",[85],"La URL lleva un token que autentica los envíos. Si se filtra o querés cambiarlo, tocá Rotar token: la URL anterior deja de funcionar en el acto y hay que actualizar los formularios publicados. Apagar el canal corta los envíos nuevos; lo recibido se conserva. La página de contacto de fiuit.com es un ejemplo de este canal: lo que escribís ahí cae directo en el Inbox del equipo de Fiuit. El campo Productos permite configurar hasta 72 líneas. Los nombres, unidades y demás campos comparten 512 nodos y 16 KiB, por lo que los datos reales pueden admitir menos líneas. Las configuraciones con mínimos que no caben se rechazan. Los pedidos e importes existentes se conservan.",{"id":90,"title":89,"titles":723,"content":724,"level":217},[],"Conectá la cuenta profesional de Instagram de tu negocio para atender por mensaje directo con el mismo bot y la misma bandeja. Con Instagram, tus clientes te escriben por mensaje directo (DM) a la cuenta profesional del negocio y los atiende el mismo asistente que en WhatsApp: mismos servicios, mismos horarios, misma bandeja. Es un canal solo para clientes: el equipo no recibe avisos por Instagram. Instagram se habilita cuando la app de Fiuit está aprobada por Meta. Si en Canales no ves la tarjeta de Instagram (o figura como «Próximamente»), todavía no está disponible para tu proyecto.",{"id":726,"title":727,"titles":728,"content":729,"level":223},"\u002Fdocs\u002Fchannels\u002Finstagram#conectar-tu-cuenta","Conectar tu cuenta",[89],"Tu cuenta de Instagram tiene que ser profesional (Empresa o Creador). No hace falta una Página de Facebook.En el panel, andá a Canales → Instagram y tocá Conectar Instagram. Solo el propietario puede hacerlo.Iniciá sesión en Instagram con la cuenta del negocio y aceptá los permisos (perfil básico y mensajes).Volvés al panel con la cuenta conectada (@tu_cuenta). Probalo mandándole un DM desde otra cuenta. Fiuit guarda el acceso cifrado y lo renueva solo antes de que venza. Si Instagram lo revoca (por ejemplo, cambiaste la contraseña o quitaste el permiso), la tarjeta pasa a Desconectado y hay que volver a conectar. Una misma cuenta no puede estar conectada a dos proyectos. Desconectar borra el acceso guardado y conserva el historial.",{"id":731,"title":617,"titles":732,"content":733,"level":223},"\u002Fdocs\u002Fchannels\u002Finstagram#qué-hace",[89],"Atiende con el mismo bot: busca horarios, pre-reserva, confirma, responde con tu conocimiento y deriva a una persona.Acepta texto. Si el cliente manda una foto, audio u otro adjunto, el bot le pide que lo escriba. Comentarios, menciones en historias y Messenger no entran.Las opciones se muestran como lista numerada (sin botones).",{"id":735,"title":736,"titles":737,"content":738,"level":223},"\u002Fdocs\u002Fchannels\u002Finstagram#la-regla-de-las-24-horas","La regla de las 24 horas",[89],"Meta solo permite responder dentro de las 24 horas del último mensaje del cliente. Por eso: Las respuestas del bot y del equipo salen mientras la ventana esté abierta. Si venció, el mensaje no se envía y la conversación pasa a una persona.Los avisos automáticos (recordatorios, confirmaciones, «en camino», horario asignado) no salen por Instagram fuera de la ventana. Si el cliente también te escribió por WhatsApp o Telegram, el aviso va por ese canal, siempre dentro de sus propias reglas (por ejemplo, la ventana de 24 h de WhatsApp oficial). Si no tiene ningún canal utilizable, el aviso no se reintenta: la tarea queda con la etiqueta no-se-pudo-avisar y aparece en Necesita tu atención de Hoy («No se pudo avisar»). Avisale por tu cuenta y quitá la etiqueta.No se puede iniciar una conversación nueva por Instagram desde la ficha del cliente: la abre el cliente al escribirte.",{"id":740,"title":631,"titles":741,"content":742,"level":223},"\u002Fdocs\u002Fchannels\u002Finstagram#estado-y-pausas",[89],"En Canales → Instagram ves la cuenta conectada, el estado del acceso y cuándo vence. Podés pausar el bot o el canal como en los demás canales. Completá la autorización en el mismo navegador y proyecto donde empezaste. No compartas el enlace de conexión. Al desconectar, la cuenta queda libre para conectarla a otro proyecto. La revocación se detecta al enviar, consultar el estado o renovar; los callbacks de desautorización y eliminación todavía están pendientes. Desconectar conserva el historial y no elimina los datos. Si la ventana vence durante el envío, se intenta otro canal utilizable del mismo cliente. La marca no-se-pudo-avisar tiene un lugar reservado además de las veinte etiquetas de negocio, sin reemplazarlas. Reconfirmaciones y pedidos de reseña conservan su conversación y no cambian de canal.",{"id":99,"title":98,"titles":744,"content":745,"level":217},[],"Qué hace el bot de tu negocio, qué no puede hacer, cómo configurarlo, probarlo en el simulador y cuándo pasa la conversación a una persona. El bot es el asistente que atiende a tus clientes por WhatsApp, Telegram y el chat de tu sitio. Entiende lo que escriben, ofrece horarios reales y deja la reserva armada. Todo lo que importa lo calcula el sistema: el bot no inventa horarios, precios ni direcciones, y no confirma nada por su cuenta.",{"id":747,"title":748,"titles":749,"content":750,"level":223},"\u002Fdocs\u002Fbot\u002Foverview#qué-puede-y-qué-no-puede-hacer","Qué puede y qué no puede hacer",[98],"PuedeNo puedeEntender texto, audios, errores de tipeo y cambios de ideaInventar horarios, precios o direccionesBuscar horarios y ofrecer 2 o 3 opcionesConfirmar una reserva sin pasar por el motor de agendaRetener un horario y pedir los datos que faltanUsar herramientas de administración con un clienteResponder dudas con la base de conocimientoSeguir instrucciones escondidas en un mensaje o un archivoGuardar una ubicación compartida (con tu confirmación SÍ\u002FNO)Ver datos de otro negocioPasar la conversación a una personaResponder temas ajenos a tu negocio (tareas, código, política, charla) Fechas, horas, servicios y precios de cada mensaje salen de plantillas completadas con datos del sistema. Los audios se transcriben antes de que la IA los lea, y la transcripción se ve en el Inbox.",{"id":752,"title":753,"titles":754,"content":755,"level":223},"\u002Fdocs\u002Fbot\u002Foverview#configurar-al-bot","Configurar al bot",[98],"Andá a Automatización → Bot. Tiene cuatro pestañas: Personalidad: el nombre del bot, el tono (amigable, profesional o casual), el mensaje inicial (podés usar {name} y {business}), instrucciones sobre cómo debe comportarse e idioma predeterminado.Base de conocimiento: lo que el bot sabe de tu negocio. Ver Conocimiento del bot.Simulador: probás el bot sin enviar mensajes reales.Fuentes: páginas web, secciones de un sitio y listados que el bot lee y mantiene al día. Las instrucciones son una preferencia de estilo (\"sé breve\", \"tratá de vos\"). No cambian las reglas: el bot nunca va a poder saltarse el motor de agenda.",{"id":757,"title":758,"titles":759,"content":760,"level":223},"\u002Fdocs\u002Fbot\u002Foverview#probarlo-en-el-simulador","Probarlo en el simulador",[98],"En la pestaña Simulador escribís como si fueras un cliente. Ves las respuestas del bot, la configuración y los elementos de conocimiento activos, y las reservas de prueba que se crean (llevan la etiqueta Prueba: no entran en las estadísticas). Reiniciar conversación empieza de cero. Al crear la sesión de prueba elegís la persona: un contacto nuevo o uno existente. Son contactos ficticios, nunca un cliente real.",{"id":762,"title":763,"titles":764,"content":765,"level":369},"\u002Fdocs\u002Fbot\u002Foverview#el-inspector","El Inspector",[98,758],"El Inspector muestra, turno por turno, cómo pensó el bot: Las herramientas que llamó, con sus argumentos y el resultado resumido.El conocimiento que usó, con su puntaje.Las reglas que decidieron.El modelo, los tokens y el costo de cada llamada.El motivo cuando deriva la conversación a una persona. Así podés ajustar la configuración viendo exactamente qué pasó, sin adivinar.",{"id":767,"title":768,"titles":769,"content":770,"level":223},"\u002Fdocs\u002Fbot\u002Foverview#cuando-entra-una-persona","Cuando entra una persona",[98],"Todas las conversaciones se ven en el Inbox, con el estado \"IA respondiendo\", \"Pide una persona\" o \"Persona atendiendo\". Tomar el control: si escribís una respuesta, el bot se pausa en esa conversación.Devolver al bot: lo hacés a mano cuando termines.Si no hay actividad tuya durante 15 minutos, el bot retoma solo.El bot también pasa la conversación al Inbox cuando el cliente pide hablar con una persona o cuando algo falla. El cliente puede escribir «humano», «atendente» o “human”, o pedirlo con sus palabras, en cualquier momento: también en medio de un pedido o una reserva.Si le piden algo ajeno al negocio, el bot responde con cortesía qué temas atiende y cómo hablar con una persona, sin derivar la conversación. WhatsApp no permite asistentes de uso general en su API desde enero de 2026.",{"id":772,"title":773,"titles":774,"content":775,"level":223},"\u002Fdocs\u002Fbot\u002Foverview#límites-por-canal","Límites por canal",[98],"Cada canal puede tener sus reglas. En el chat web, por ejemplo, el bot pide teléfono y email antes de conversar y deja de responder después de un número de mensajes. Está explicado en WebChat.",{"id":777,"title":778,"titles":779,"content":780,"level":223},"\u002Fdocs\u002Fbot\u002Foverview#cuánta-ia-usa-tu-negocio","Cuánta IA usa tu negocio",[98],"En Configuración → Uso de IA ves cuánto consumió tu negocio este mes y el límite de tu plan. Al llegar al 80 % aparece un aviso; si se alcanza el límite, las funciones con IA se pausan y el bot responde un mensaje fijo y pasa la conversación al Inbox. También podés cortar el consumo a mano con la pausa de emergencia: ver Pausas y Estado.",{"id":782,"title":278,"titles":783,"content":784,"level":223},"\u002Fdocs\u002Fbot\u002Foverview#próximos-pasos",[98],"Conocimiento del bot: enseñale a responder con la información de tu negocio.WhatsApp y Telegram: conectá los canales. El bot de clientes reserva servicios con horario; las tareas de cola las crea el equipo desde el panel o la API. Creación de entregas en cola por chat: próximamente.",{"id":786,"title":787,"titles":788,"content":789,"level":223},"\u002Fdocs\u002Fbot\u002Foverview#el-bot-reúne-los-mensajes-seguidos","El bot reúne los mensajes seguidos",[98],"El bot puede reunir mensajes consecutivos antes de responder. El modo normal espera 3 segundos de silencio, o 5 mientras recoge datos necesarios; el modo corto espera 3 y Desactivado mantiene un turno por mensaje. La espera máxima es de 12 segundos. Los mensajes posteriores a un turno que ya empezó quedan para la próxima respuesta. Podés elegir el modo global en Bot y una excepción en WhatsApp o WebChat. Telegram e Instagram heredan el modo global. El panel muestra la espera efectiva; no depende de una señal de escritura del canal. La confirmación sigue siendo explícita: los datos enviados junto con un SÍ producen un nuevo resumen y requieren otro SÍ posterior. Cancelar o pedir una persona interrumpe la propuesta. Los audios admitidos se preparan después de cumplir las reglas de contacto; un audio excesivo no se recorta.",{"id":103,"title":102,"titles":791,"content":792,"level":217},[],"Enseñale al bot con textos, archivos, páginas web, una sección de tu sitio o listados (hojas de cálculo, CSV, JSON y RSS) que se mantienen al día. La base de conocimiento es lo que el bot consulta para contestar dudas: horarios de atención, políticas, productos, precios, novedades. Tiene dos orígenes: lo que cargás a mano y lo que importás de fuentes que se actualizan solas. Todo está en Automatización → Bot, en las pestañas Base de conocimiento y Fuentes. No pongas datos personales de clientes en ninguna fuente. Lo que está en una fuente puede aparecer en las respuestas del bot. El bot cita esos datos como información, nunca los toma como órdenes.",{"id":794,"title":795,"titles":796,"content":797,"level":223},"\u002Fdocs\u002Fbot\u002Fknowledge#cargar-conocimiento-a-mano","Cargar conocimiento a mano",[102],"En Base de conocimiento tocá Nuevo elemento y elegí el tipo: Preguntas frecuentes: una pregunta y su respuesta.Texto: un título y un contenido libre (por ejemplo, la política de cancelación).Producto\u002FServicio: nombre, descripción y precio opcional.Archivo: arrastrá un archivo (máximo 5 MB). Se procesa y se puede activar o desactivar. Cada elemento tiene un interruptor Activo: el bot solo usa los activos. Podés buscar y filtrar por tipo.",{"id":799,"title":800,"titles":801,"content":802,"level":223},"\u002Fdocs\u002Fbot\u002Fknowledge#fuentes-lo-que-se-actualiza-solo","Fuentes: lo que se actualiza solo",[102],"En Fuentes tocá Agregar fuente y elegí el tipo. El sistema la importa en pocos minutos y la refresca solo; podés cambiar la frecuencia (cada hora, 6 horas, día o semana), Actualizar ahora, Pausar y Reanudar. Cada tarjeta muestra el estado: En cola, Al día, Con error o Pausada. Una fuente que falla varias veces seguidas se pausa sola. Si la borrás, también se quitan sus ítems importados (los escritos a mano no se tocan). Reglas comunes: solo direcciones públicas http(s), hasta 2 MiB por fuente y 10 fuentes por proyecto. No se leen páginas que pidan iniciar sesión, y se respeta el robots.txt del sitio.",{"id":804,"title":805,"titles":806,"content":807,"level":369},"\u002Fdocs\u002Fbot\u002Fknowledge#una-página-web","Una página web",[102,800],"Agregar fuente → Página web, alcance Página.Escribí la URL pública (por ejemplo, tu página de precios).Se lee el texto de la página, sin ejecutar JavaScript.",{"id":809,"title":810,"titles":811,"content":812,"level":369},"\u002Fdocs\u002Fbot\u002Fknowledge#una-sección-de-tu-sitio","Una sección de tu sitio",[102,800],"Para que el bot aprenda varias páginas de un mismo sitio, sin cargarlas una por una: Agregar fuente → Página web, alcance Sección del sitio.Escribí el prefijo, por ejemplo https:\u002F\u002Ftusitio.com\u002Fayuda.Elegí el máximo de páginas (50 por defecto, hasta 200). El sistema lee el sitemap.xml del dominio y toma solo las páginas del mismo sitio que empiezan con ese prefijo. En cada actualización suma las páginas nuevas, actualiza las que cambiaron y archiva las que desaparecieron. La tarjeta muestra \"N páginas importadas\" y Ver páginas lista cada una con su estado (Importada o Archivada). No hay un rastreador: si el sitio no publica sitemap.xml, la fuente queda con el aviso correspondiente y tenés que importar las páginas una por una.",{"id":814,"title":815,"titles":816,"content":817,"level":369},"\u002Fdocs\u002Fbot\u002Fknowledge#un-listado-hoja-de-cálculo-csv-json-o-rss","Un listado: hoja de cálculo, CSV, JSON o RSS",[102,800],"Sirve para productos, precios o novedades que ya llevás en una planilla, una tienda o un feed. Agregar fuente y elegí Hoja de cálculo, CSV, API JSON o RSS.Pegá el enlace. Para una hoja de Google: Archivo → Compartir → Publicar en la web o dejala visible para cualquiera con el enlace; la primera fila debe tener encabezados.En Mapeo de campos escribí qué columna alimenta cada campo: Nombre (obligatorio), Descripción, Precio, Categoría, Enlace y Clave estable. En JSON se escribe la ruta, por ejemplo productos[].nombre. Con RSS no hace falta mapeo.Tocá Ver vista previa: te muestra las primeras filas válidas y cuántas se omiten.Si se ve bien, Guardar fuente. Hasta 1000 filas por fuente. Si usás Clave estable (un código que no cambia, como un SKU), renombrar un producto lo actualiza; sin clave, renombrarlo crea un ítem nuevo y desactiva el viejo. Para una API que pide credencial podés cargar un encabezado Authorization o un parámetro en la URL: se guarda cifrada y no se vuelve a mostrar.",{"id":819,"title":820,"titles":821,"content":822,"level":223},"\u002Fdocs\u002Fbot\u002Fknowledge#si-algo-sale-mal","Si algo sale mal",[102],"La tarjeta de la fuente explica la causa: MensajeQué hacerNo encontramos esa página (404)Revisá la direcciónLa página pide iniciar sesiónSolo se leen páginas públicasEl sitio no respondióSe reintenta solo más tardeEl sitio no publica sitemap.xmlImportá las páginas una por unaEl sitemap no tiene páginas bajo esa direcciónRevisá el prefijoEl sitemap no es válidoRevisá el sitemap del sitioEl sitio no permite que la leamos (robots.txt)Es una decisión del sitioUna columna del mapeo no existeRevisá los nombres de columnaNo se encontró texto para importarLa página o el listado están vacíos; lo ya importado no se desactiva Después de agregar conocimiento, probalo en el Simulador: preguntale lo que preguntaría un cliente. Para integrar fuentes por API, mirá los endpoints \u002Fknowledge en Endpoints.",{"id":112,"title":111,"titles":824,"content":825,"level":217},[],"Cómo se organiza el día a día en Fiuit, con Hoy, Inbox y Trabajo, y cómo funcionan las etapas y las acciones de una tarea, como tomar, soltar y cerrar. En Fiuit todo lo que hay que hacer es una tarea: un turno, una mesa, una visita, una entrega. Una conversación puede crear una; también las creás a mano con el botón Nueva tarea o desde la API. El panel te lo muestra con tres destinos principales: Hoy, Inbox y Trabajo. El resto está en Más.",{"id":827,"title":828,"titles":829,"content":830,"level":223},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#hoy-inbox-y-trabajo","Hoy, Inbox y Trabajo",[111],"Hoy es tu panel del día. Muestra lo que necesita tu atención, lo que viene ahora, lo en curso, lo de más tarde y, plegado, lo completado. Quien es del equipo ve solo lo suyo (Mías); dueño y gerente alternan entre Mías y Todo.Inbox reúne las conversaciones que piden una persona. Ver El bot y la IA.Trabajo es el lugar donde ves todas las tareas. Se mira en dos ejes que se combinan.",{"id":832,"title":833,"titles":834,"content":835,"level":369},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#trabajo-conjunto-forma","Trabajo: conjunto × forma",[111,828],"Primero elegís qué trabajo ver (el conjunto): ConjuntoQué muestraSin asignarLo que necesita atención: sin responsable, sin horario o esperando confirmaciónHoyEl trabajo de hoy de todo el negocioPróximasLo que viene, agrupado por díaTodoTodo el trabajo, con orden y agrupación a elecciónMíasLo asignado a vos Después elegís cómo verlo (la forma): FormaCuándo apareceListaSiempreCalendarioSi hay recursos con agenda (por día, por profesional o por semana)MapaSi hay tareas con ubicación. Ver Mapa y direcciones \"Si no tiene nada, no se ve\": una forma solo aparece cuando tu negocio la necesita. Todas abren el mismo detalle de la tarea. Los filtros (buscar, prioridad, etiqueta, fechas) y el orden y la agrupación valen para todas las formas.",{"id":837,"title":838,"titles":839,"content":840,"level":369},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#atención-a-demanda","Atención a demanda",[111,828],"Hoy muestra una sola alerta prioritaria: conversaciones sin respuesta, tareas sin asignar, sin zona, dirección a revisar y por agendar, en ese orden y según tus permisos. «Responder» abre Inbox en Atención. «+N más» despliega los otros motivos con enlaces a listas filtradas. Los ceros se ocultan; una tarea puede contar en varios motivos. Sin asignar abarca el proyecto y no implica horario próximo.",{"id":842,"title":843,"titles":844,"content":845,"level":223},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#la-tarea-y-sus-etapas","La tarea y sus etapas",[111],"Cada tarea está en una etapa. Las etapas son el vocabulario de tu negocio: una barbería usa Confirmada → En curso → Completada; una entrega usa Sin asignar → Aceptada → En camino → Entregada. Detrás hay estados fijos (pre-reserva, confirmada, en curso, completada, cancelada, ausente, fallida), por eso los números y las estadísticas significan lo mismo en todos los rubros. El detalle de la tarea muestra el cliente, la fecha y el recurso, las notas, los datos del formulario, el origen (por ejemplo la conversación de WhatsApp de donde vino) y los comentarios y la actividad.",{"id":847,"title":848,"titles":849,"content":850,"level":369},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#formularios-por-servicio","Formularios por servicio",[111,843],"Un servicio puede pedir datos propios al crear la tarea: la dirección de entrega, el motivo de la consulta, el modelo del equipo. Esos datos se completan en la tarea y quedan guardados con ella. Se definen en el servicio (Servicios).",{"id":852,"title":853,"titles":854,"content":855,"level":223},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#siguiente-paso","Siguiente paso",[111],"Cada tarea muestra su siguiente paso: según la etapa, el rol y el servicio, el panel ofrece una salida principal grande (por ejemplo Iniciar o Completar), el resto en Más acciones y las herramientas de la etapa como botones secundarios. Debajo del botón principal ves lo que todavía falta para avanzar (por ejemplo Cobro o un dato del servicio). Todo sale del servidor: solo ves lo que tu rol puede hacer en esa etapa. Al elegir una salida se abre una sola hoja con los requisitos de la etapa destino: Lo obligatorio, a la vista: los datos que pide la etapa, la evidencia del servicio (firma o foto), la persona asignada, la ubicación y el cobro cuando hay saldo.Lo opcional, plegado en Agregar más datos (una observación, una propina).Cobro: Cobrado (todo el saldo), Parcial (el resto queda debiendo) o Queda debiendo. El saldo lo calcula el servidor. Si la seña ya cubre el total, no se pide nada. Todo se envía junto, en un solo paso: si algo falla, no queda nada a medias, y reintentar no duplica el cobro ni la etapa. Si falta algo, la hoja marca qué falta.",{"id":857,"title":858,"titles":859,"content":860,"level":369},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#reglas-de-cobro","Reglas de cobro",[111,853],"Completar exige lo obligatorio, incluido el cobro cuando la tarea tiene valor y el servicio lo pide.Una persona del equipo puede dejar deuda solo si el cliente tiene límite de crédito y el saldo entra en ese límite; si no, tiene que cobrar. El dueño y el gerente pueden dejarla siempre (queda auditado).No vino \u002F No estaba no genera deuda: lo debido queda en lo que ya se cobró (la seña no se devuelve ni se convierte en crédito).",{"id":862,"title":863,"titles":864,"content":865,"level":369},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#herramientas-de-la-etapa","Herramientas de la etapa",[111,853],"HerramientaQué haceTomarLa tarea queda asignada a quien la toma. Si otra persona llegó antes, avisa y no la asigna dos vecesAsignar \u002F ReasignarEl dueño o el gerente elige a quién se la daSoltarLa tarea vuelve a Sin asignar para que otra persona la tome (pide confirmación)Volver más tardeEn tareas sin horario, mueve el vencimiento a la fecha y hora que elijasCompartir seguimientoUn enlace para que el cliente vea el estado de su pedido. Lo comparte quien está asignado a la tarea Las herramientas nunca dan permisos extra: aparecen solo si tu rol puede usarlas. Reprogramar una tarea con horario sigue en Más acciones.",{"id":867,"title":868,"titles":869,"content":870,"level":369},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#tareas-sin-asignar-y-colas","Tareas sin asignar y colas",[111,853],"Hay trabajos que no tienen horario, como las entregas. Entran como Sin asignar, quien los puede hacer los toma y después sigue la secuencia. Una persona del equipo ve las tareas asignadas a ella y las que su grupo puede tomar, sin el teléfono ni el email del cliente hasta que la toma. Un repartidor ve primero solo la zona aproximada. Ejemplo del rubro de entregas: Llega un pedido: queda Sin asignar.Un repartidor toca Tomar: la tarea es suya. (O el gerente toca Asignar.)Si no puede, toca Soltar y vuelve a la cola.Toca En camino y, si quiere, Compartir seguimiento con el cliente.Cierra con Completar (con el cobro), o con No estaba o No quiere (más el motivo).",{"id":872,"title":873,"titles":874,"content":875,"level":369},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#cada-servicio-con-sus-etapas","Cada servicio con sus etapas",[111,853],"Las etapas vienen de la plantilla de tu rubro y cada servicio tiene las suyas: qué salidas ofrece cada etapa, qué pide para entrar y qué herramientas tiene. Hoy se ajustan por la API o el servidor MCP: ver API y MCP.",{"id":877,"title":878,"titles":879,"content":880,"level":223},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#escribirle-al-cliente-desde-la-tarea","Escribirle al cliente desde la tarea",[111],"Cada tarjeta y cada detalle de tarea trae un botón Mensaje para escribirle al cliente sin salir de lo que estás haciendo. Tocá Mensaje en la tarjeta o en el detalle de la tarea.Escribí tu texto o partí de una respuesta rápida y editala antes de enviar.Enviá. Fiuit elige el canal por vos: la conversación que ya tenés con ese cliente, o WhatsApp o email si todavía no hay ninguna. Todo queda en el Inbox, como cualquier conversación, y a mano tenés Llamar y Abrir conversación.",{"id":882,"title":883,"titles":884,"content":885,"level":223},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#evidencia-de-trabajo","Evidencia de trabajo",[111],"Una acción puede pedir la ubicación del momento (por ejemplo al marcar \"Llegué\") y la tarea admite adjuntos (foto, documento, audio, nota). Son privados: solo los ve quien tiene acceso a esa tarea, los enlaces de descarga vencen a los 60 segundos y se borran pasado un plazo (30 días por defecto). El dueño o el gerente pueden borrar una ubicación.",{"id":887,"title":888,"titles":889,"content":890,"level":223},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#qué-ve-cada-rol","Qué ve cada rol",[111],"RolHoyTrabajoClientesPropietario y gerenteTodo el negocioTodoSíEquipoLo suyo y lo que puede tomarLo suyo y lo que puede tomarNoLecturaSolo verSolo verNo Más detalles en Roles y permisos.",{"id":892,"title":893,"titles":894,"content":895,"level":223},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#automatizar-el-trabajo","Automatizar el trabajo",[111],"Al entrar en una etapa, la tarea puede avisar al cliente y al equipo (por email y Telegram) según lo que defina la etapa: ver Automatizaciones. Para esperas o condiciones, ver Flujos. El bot de clientes reserva servicios con horario; las tareas de cola las crea el equipo desde el panel o la API. Creación de entregas en cola por chat: próximamente.",{"id":116,"title":115,"titles":897,"content":898,"level":217},[],"La vista Mapa de Trabajo, las direcciones del cliente (con etiqueta y una predeterminada), el autocompletar, la ubicación compartida y la privacidad. Si tu negocio atiende en la dirección del cliente (entregas, visitas, servicio técnico), Fiuit guarda dónde es cada tarea y te la muestra en un mapa.",{"id":900,"title":901,"titles":902,"content":903,"level":223},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#la-vista-mapa","La vista Mapa",[115],"En Trabajo, la forma Mapa aparece cuando hay al menos una tarea con ubicación. Si no la necesitás, no se ve. Cada tarea es un marcador, con color, símbolo y nombre según su estado: pendiente, confirmada, en curso, completada o con problema. El color no es lo único que las distingue.Tocá un marcador para abrir la tarea.La lista lateral muestra las mismas tareas (útil con teclado o lector de pantalla). Las tareas sin ubicación se listan aparte.Se ajusta solo a los resultados y muestra hasta 500 tareas; si hay más, afiná los filtros. Los filtros y el conjunto (Sin asignar, Hoy, Próximas...) valen igual que en la lista.La leyenda cuenta las tareas por estado. El mapa usa Google Maps. Si Google no está disponible, se usa un mapa de respaldo y la vista sigue funcionando.",{"id":905,"title":906,"titles":907,"content":908,"level":369},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#modo-claro-y-oscuro","Modo claro y oscuro",[115,901],"Un selector flotante tiene tres opciones: Automático, Claro y Oscuro. Automático sigue el tema de tu panel. Se recuerda por navegador.",{"id":910,"title":911,"titles":912,"content":913,"level":223},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#dirección-con-autocompletar","Dirección con autocompletar",[115],"Al cargar la dirección de un cliente, o el destino de una tarea (Nueva tarea o la edición), aparece un buscador: Empezá a escribir calle y número (desde 3 caracteres).Elegí una sugerencia: se guardan la dirección completa (calle, número, barrio, ciudad, código postal, país) y el punto en el mapa.Se muestra un mapa chico con un pin: arrastralo o tocá el mapa para ajustar la ubicación exacta. Si preferís, cargá la dirección a mano y tocá Ubicar en el mapa: el sistema la busca y deja el pin para que lo muevas. Si el autocompletado no está disponible, avisa y lo que escribiste pasa a la carga manual: no perdés nada. Un servicio \"tiene destino\" cuando su formulario pide la dirección de entrega. Para ese servicio, el destino se carga con este mismo buscador.",{"id":915,"title":916,"titles":917,"content":918,"level":223},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#las-direcciones-del-cliente","Las direcciones del cliente",[115],"Un cliente puede tener varias direcciones, cada una con su etiqueta (casa, oficina, depósito…) y una predeterminada. Se administran desde la sección «Datos» de la ficha del cliente. Al crear o editar una tarea con destino en la dirección del cliente, el selector ofrece las direcciones guardadas con una opción Otra para cargar una nueva. Guardarla en el perfil es una decisión aparte: podés usarla solo para esa tarea.Cada tarea conserva su destino. Si después cambia la dirección del cliente o la de tu local, las tareas ya creadas siguen apuntando a donde estaban: la dirección queda registrada con la tarea.Cuando el servicio se hace en tu local, la tarea guarda una copia de la dirección del negocio de ese momento: el detalle de la tarea, la Mini App y los recordatorios muestran esa dirección, con acceso al mapa, aunque la cambies después.El bot ofrece solo las direcciones autorizadas y confirma cuál usar antes de reservar.",{"id":920,"title":921,"titles":922,"content":923,"level":223},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#ubicación-compartida-por-el-cliente","Ubicación compartida por el cliente",[115],"Un cliente puede mandar su ubicación por WhatsApp o Telegram (o desde el chat web, con consentimiento explícito). En el Inbox el mensaje se ve con un mapa chico, el nombre o dirección si el canal los trajo y un enlace Abrir en el mapa.Si el servicio pide destino, el bot puede guardar esa ubicación como destino de la tarea o como dirección del cliente. Antes te pregunta con SÍ\u002FNO en la conversación.En el chat web, el widget ofrece \"Usar mi ubicación\" solo cuando el bot la pidió, y el visitante tiene que aceptar de forma explícita.",{"id":925,"title":926,"titles":927,"content":928,"level":223},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#privacidad","Privacidad",[115],"La dirección y la ubicación son datos personales: no van a registros ni a la URL del panel.Un repartidor ve de una tarea sin tomar solo la zona aproximada. La dirección exacta aparece cuando la toma. Ver Trabajo y acciones.Google recibe lo que su mapa necesita para dibujarse. En la vista Mapa no recibe direcciones ni coordenadas de tus tareas. El autocompletado y \"Ubicar en el mapa\" sí le envían el texto de la dirección que buscás. Si tus clientes tienen requisitos especiales, mencionalo en tu aviso de privacidad.",{"id":930,"title":931,"titles":932,"content":933,"level":223},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#para-quien-administra-la-cuenta","Para quien administra la cuenta",[115],"El mapa de Google necesita una clave de navegador y tres APIs de Google Maps Platform habilitadas (Maps JavaScript, Places y Geocoding). Es una configuración de la plataforma, no del negocio: si el mapa o el autocompletado no aparecen, consultá con soporte.",{"id":120,"title":119,"titles":935,"content":936,"level":217},[],"Qué hacer automáticamente cuando pasa algo en tu negocio, con esperas, condiciones y avisos. Cómo cargar ejemplos, activarlos, pausarlos y ver su historial. Un flujo es lo que el sistema hace solo cuando pasa algo: cuando ocurre un evento, esperar un tiempo, mirar una condición y hacer algo (avisar al equipo, mandar un mensaje, ejecutar una acción). Es el paso siguiente a las reglas simples de recordatorios. Los flujos están en Automatización → Flujos.",{"id":938,"title":939,"titles":940,"content":941,"level":223},"\u002Fdocs\u002Fwork\u002Fflows#las-piezas","Las piezas",[119],"Disparador: cuándo empieza. Algunos de los eventos disponibles: se crea, se asigna, se modifica, se completa o se cancela una tarea; cambia su estado; una tarea vence;se ejecuta una acción (por ejemplo, alguien marca \"No estaba\");empieza, se resuelve o llega un mensaje a una conversación;se crea un cliente o queda inactivo;se agrega un adjunto o se registra una ubicación. Pasos: qué hace. PasoQué haceEsperarUna duración (por ejemplo 2 horas), hasta una fecha, hasta una hora del día, un tiempo antes o después del inicio o fin de la tarea, o hasta que ocurra un evento con un máximo de espera. Hasta 90 díasCondición\"Si se cumple esta condición\": sigue por la rama Si se cumple o Si no se cumple. Ver CondicionesAvisar al equipoUn aviso interno sobre una tarea, por Telegram, WhatsApp o email según cómo reciba avisos cada personaEnviar un mensaje al clienteUn mensaje en su conversaciónEjecutar una acciónUsa una acción de la tarea (por ejemplo Soltar entrega), con las mismas reglas que el panelDejar un comentarioUna nota en la tareaCrear, actualizar o asignar una tareaOperaciones sobre tareasCalcular datosPrepara valores para usar en pasos siguientes Un flujo tiene hasta 32 pasos, sin ciclos. Los flujos no saltan ninguna regla: cada paso lo vuelve a validar el sistema, con el rol del dueño o gerente que creó el flujo. Una espera se cancela sola si la tarea se cancela.",{"id":943,"title":944,"titles":945,"content":946,"level":223},"\u002Fdocs\u002Fwork\u002Fflows#empezar-con-ejemplos","Empezar con ejemplos",[119],"Tu plantilla de rubro trae flujos de ejemplo. En Flujos tocá Cargar ejemplos (solo el dueño). Quedan inactivos hasta que los actives, y volver a cargar no los duplica. RubroEjemploEntregasEntrega sin tomar por 2 h: cuando se crea una entrega, esperar 2 horas y, si sigue sin asignar, avisar al equipoEntregasEntrega aceptada que no sale en 30 min: si alguien acepta y no sale, la entrega vuelve a Sin asignarBarberíaTercera ausencia del cliente: al marcar una ausencia, si es la tercera, avisar para pedir seña la próxima vez",{"id":948,"title":949,"titles":950,"content":951,"level":223},"\u002Fdocs\u002Fwork\u002Fflows#ver-activar-y-pausar","Ver, activar y pausar",[119],"Cada flujo muestra su estado (Activo, Pausado o Borrador) y su última ejecución. Al abrirlo ves Qué hace en lenguaje simple: el disparador y los pasos, con las ramas. Tocá Activar y confirmá. Desde ese momento actúa solo cada vez que se cumple el disparador.Pausar deja de empezar ejecuciones nuevas; las que ya están en curso terminan su camino.En Historial de ejecuciones ves cada corrida con su estado (Completada, En curso, Esperando, Falló, Cancelada...), hasta cuándo espera y qué rama tomó. Un flujo Borrador permite editar la condición: Editar condición, Probar esta condición y Guardar como versión nueva. Para cambiar un flujo activo o uno más complejo, pedíselo a Wagy, el asistente (Primeros pasos), o usá la API. Antes de activar un flujo con condición, probala con Probar esta condición sobre una tarea real. No cambia nada: solo te dice si da verdadero o falso.",{"id":953,"title":954,"titles":955,"content":956,"level":223},"\u002Fdocs\u002Fwork\u002Fflows#flujos-y-reglas","Flujos y reglas",[119],"Las Reglas (pestaña al lado de Flujos) siguen siendo la forma más simple de mandar un recordatorio o una confirmación. Un flujo que viene de una regla clásica se administra en Reglas. Los flujos son para lo que necesita esperar, decidir o actuar sobre las tareas.",{"id":958,"title":959,"titles":960,"content":961,"level":223},"\u002Fdocs\u002Fwork\u002Fflows#para-desarrolladores","Para desarrolladores",[119],"Los flujos se gestionan por API (\u002Fv1\u002Fautomation-flows, solo dueño o gerente con sesión del panel). Ver Endpoints. Los eventos que los disparan son los mismos que reciben tus webhooks.",{"id":124,"title":123,"titles":963,"content":964,"level":217},[],"Cómo escribir una condición en un flujo, qué datos puede mirar, ejemplos listos por rubro y cómo probarla antes de activarla. Una condición decide por qué rama sigue un flujo. Se escribe como una frase corta que da verdadero o falso, por ejemplo \"el servicio cuesta más de 100 y el cliente es VIP\". Una condición solo mira datos: no cambia nada.",{"id":966,"title":967,"titles":968,"content":969,"level":223},"\u002Fdocs\u002Fwork\u002Fconditions#cómo-se-escribe","Cómo se escribe",[123],"QuéEjemploComparar== (igual), !=, \u003C, \u003C=, >, >=Combinar&& (y), || (o), ! (no)Texto\"entrega\" entre comillasEstá en una lista\"vip\" in customer.tagsContieneservice.name.contains(\"Corte\")Si \u002F entoncesworkItem.priority == \"urgent\" ? now.hour \u003C 22 : now.hour \u003C 18Un campocustomer.no_show_count, con punto Eso es todo el lenguaje: no hay bucles ni funciones propias. Las condiciones se validan al guardar el flujo y de nuevo al activarlo.",{"id":971,"title":972,"titles":973,"content":974,"level":223},"\u002Fdocs\u002Fwork\u002Fconditions#qué-datos-puede-mirar","Qué datos puede mirar",[123],"ObjetoQué traetriggerEl evento que empezó el flujo. Con una acción ejecutada: action_key (la acción), from_stage, to_stageworkItemLa tarea: status, stage, priority, tags, party_size, start_at, due_at, age_minutes (minutos desde que se creó), assigned (si tiene responsable)customername, locale (idioma), tags, no_show_count (ausencias reales)servicename, price_cents (el precio en centavos: 100,00 es 10000), deposit_cents, duration_minresourcename, kindnowLa hora de tu negocio: hour, minute, weekday (0 = lunes ... 6 = domingo)variablesValores que calculó un paso anterior Por privacidad, una condición no ve teléfonos, emails, documentos, direcciones ni notas del cliente. Si el evento no trae una tarea, workItem, customer y service llegan vacíos y la condición falla con un mensaje claro, no responde \"falso\" en silencio.",{"id":976,"title":977,"titles":978,"content":979,"level":223},"\u002Fdocs\u002Fwork\u002Fconditions#ejemplos","Ejemplos",[123],"VIP con un servicio caro: avisar al gerente service.price_cents > 10000 && \"vip\" in customer.tags \"No estaba\" antes de las 18 h (disparador: se ejecuta una acción) trigger.action_key == \"nao_estava\" && now.hour \u003C 18 Tercera ausencia: pedir seña la próxima vez trigger.action_key == \"ausencia\" && customer.no_show_count >= 3 Tarea sin tomar hace más de 2 horas (después de un paso Esperar de 2 h) !workItem.assigned && workItem.age_minutes > 120 Fuera del horario comercial (sábado, domingo o fuera de 9 a 18) now.weekday >= 5 || now.hour \u003C 9 || now.hour >= 18 Tarea urgente workItem.priority == \"urgent\" || \"urgente\" in workItem.tags Cliente que habla portugués customer.locale == \"pt\" Seña pendiente hace más de una hora workItem.stage == \"aguardando_sinal\" && workItem.age_minutes >= 60 Servicio largo de corte service.name.contains(\"Corte\") && service.duration_min >= 45 Las claves de acción y de etapa (ausencia, nao_estava, aguardando_sinal) son las de tu plantilla de rubro. Si cambiaste los nombres, usá los tuyos.",{"id":981,"title":982,"titles":983,"content":984,"level":223},"\u002Fdocs\u002Fwork\u002Fconditions#probar-una-condición","Probar una condición",[123],"En el detalle de un flujo, tocá Probar esta condición (o Probar condición): Escribí la condición.Elegí una tarea real de tu proyecto con el buscador.Si mira trigger.action_key, escribí la clave de la acción en Simular la acción.Tocá Probar. Te muestra Verdadero o Falso y, debajo, Lo que vio la condición: exactamente los datos con los que decidió. No se ejecuta nada.",{"id":986,"title":987,"titles":988,"content":989,"level":223},"\u002Fdocs\u002Fwork\u002Fconditions#errores-comunes","Errores comunes",[123],"Al guardar, el mensaje dice qué paso falló y por qué: ProblemaQué significaEl campo no existeUsaste un dato que no está disponible (por ejemplo customer.email)Tipos que no combinanComparaste texto con un número (customer.name > 5)No da verdadero o falsoLa condición tiene que ser una pregunta de sí o noFunción no permitidaSolo existe containsObjeto desconocidoSolo se pueden usar los objetos de la tabla de arribaDemasiado larga o costosaDividila en dos condiciones con otro paso en medio Una condición admite hasta 1024 caracteres y se evalúa en una fracción de segundo.",{"id":128,"title":127,"titles":991,"content":992,"level":217},[],"Agrupá a tu equipo por zona, con su área, sus días y horas de atención y un tope por franja, y dejá que cada tarea tome su zona sola. Una zona es un grupo de personas con un área y unos días y horas de atención. Sirve para entregas, visitas técnicas, rutas o cualquier trabajo que se hace en la dirección del cliente: por ejemplo, la Zona Norte atiende martes y jueves y la Zona Sur, miércoles y viernes.",{"id":994,"title":995,"titles":996,"content":997,"level":223},"\u002Fdocs\u002Fwork\u002Fzones#crear-una-zona","Crear una zona",[127],"En Equipo y recursos, abrí la pestaña Zonas y tocá Nueva zona. Cada zona tiene: Nombre.Área: barrios, ciudades o códigos postales, como etiquetas. Un código postal coincide por prefijo: 20 cubre todos los que empiezan con 20.Personas: las que atienden la zona. Una persona puede estar en varias zonas.Días y horas: por ejemplo martes y jueves de 9 a 18. Si lo dejás vacío, la zona no restringe los días.Tope por franja (opcional): cuántas tareas como máximo entran en cada franja horaria de la zona. También podés pedírselo a Wagy: \"Zona Norte, martes y jueves, Camila y Diego\". Wagy arma el plan, vos revisás el cambio y lo confirmás.",{"id":999,"title":1000,"titles":1001,"content":1002,"level":223},"\u002Fdocs\u002Fwork\u002Fzones#cómo-se-asigna-la-zona","Cómo se asigna la zona",[127],"Cada tarea con dirección busca su zona sola, comparando el código postal, el barrio y la ciudad sin tener en cuenta tildes ni mayúsculas. Si varias coinciden gana el código postal, después el barrio y después la ciudad. Si ninguna coincide, la tarea queda sin zona y aparece en Hoy → Necesita tu atención; al corregir la dirección se asigna sola. En Trabajo podés filtrar por zona o ver solo lo que está sin zona, y en el mapa cada tarea muestra su zona.",{"id":1004,"title":1005,"titles":1006,"content":1007,"level":223},"\u002Fdocs\u002Fwork\u002Fzones#horarios-y-bot","Horarios y bot",[127],"Cuando una entrega o visita tiene horario, solo se ofrecen los días y horas de la zona, cruzados con la disponibilidad de sus personas y con el tope por franja. El bot le pide al cliente su barrio, ciudad o código postal y le dice, por ejemplo: \"Para tu zona (Zona Norte) atendemos martes o jueves\".",{"id":1009,"title":1010,"titles":1011,"content":1012,"level":223},"\u002Fdocs\u002Fwork\u002Fzones#tareas-sin-tomar","Tareas sin tomar",[127],"Una tarea sin dueño de una zona se avisa, y se ofrece para Tomar, solo a las personas de esa zona. Quien administra (owner y manager) las ve todas y puede asignarlas a cualquiera. Antes la \"zona\" era un recurso con capacidad. Esos recursos siguen funcionando; el comando de migración los convierte en zonas sin perder ninguna tarea.",{"id":132,"title":131,"titles":1014,"content":1015,"level":217},[],"Cómo compartir un enlace privado donde cada cliente ve sus pedidos abiertos con la marca de tu negocio, qué ve y cómo revocarlo. El portal de seguimiento es una página pública, sin cuenta y de solo lectura, con el logo, el nombre y los colores de tu negocio. Tu cliente ve ahí sus pedidos abiertos y cómo van. Lo compartís vos (owner o manager) con el botón Compartir.",{"id":1017,"title":1018,"titles":1019,"content":1020,"level":223},"\u002Fdocs\u002Fwork\u002Ftracking-portal#compartir-el-enlace","Compartir el enlace",[131],"Abrí una tarea y tocá Compartir, o en la ficha del cliente abrí Más › Compartir seguimiento.Si el cliente no tiene enlace, Crear enlace. Hay un enlace por cliente: sirve para todos sus pedidos, también los que se creen después.Copiar enlace o Compartir… (la hoja del celular) y mandáselo por el chat del cliente.Opciones: Mostrar saldo (viene apagado) y Vigencia (7, 30, 90 o 180 días). Cambiarlas no cambia el enlace.Generar enlace nuevo deja inválido el anterior al instante; Revocar enlace lo corta sin crear otro. Las dos piden confirmación y quedan en la auditoría. Solo owner y manager comparten y revocan; staff y viewer no ven el botón.",{"id":1022,"title":1023,"titles":1024,"content":1025,"level":223},"\u002Fdocs\u002Fwork\u002Ftracking-portal#qué-ve-el-cliente","Qué ve el cliente",[131],"QuéDetalleMarcaLogo (o la inicial), nombre y paleta de tu negocio, en claro u oscuro.PedidosServicio, estado en lenguaje claro (Recibido, Agendado, En curso) y horario o «Horario todavía sin definir».HistorialPedidos terminados o cancelados en los últimos 30 días.SaldoSolo si activaste Mostrar saldo: lo que falta pagar en total y por pedido, calculado por el servidor con tus cobros. Nunca muestra teléfono, correo, dirección, notas, comentarios ni actividad del equipo, repartidor, costos ni datos de otros clientes.",{"id":1027,"title":1028,"titles":1029,"content":1030,"level":223},"\u002Fdocs\u002Fwork\u002Ftracking-portal#seguridad-y-privacidad","Seguridad y privacidad",[131],"El enlace es un token largo y aleatorio: no se puede adivinar. Un enlace inexistente, vencido o revocado muestra el mismo mensaje.La página no se indexa, no usa cookies ni scripts de terceros y no escribe nada.Quien tiene el enlace ve lo mismo que el cliente: mandalo solo por su chat y revocalo si se reenvía.Si publicás el saldo, mencionalo en tu aviso de privacidad.",{"id":141,"title":140,"titles":1032,"content":1033,"level":217},[],"Recibí avisos de trabajo en Telegram, tomá tareas con un toque y abrí tu jornada en la Mini App \"Mi día\". Telegram del equipo es la forma más rápida de que cada persona del negocio se entere de lo que le toca: una tarea asignada, un trabajo sin tomar, un recordatorio o el resumen del día. Se usa desde el celular, sin instalar nada más que Telegram. Hay un solo bot de Fiuit para todos los equipos. No es el bot de tu negocio: ese es el que conversa con tus clientes (Telegram de clientes). Los dos son independientes y no se mezclan.",{"id":1035,"title":1036,"titles":1037,"content":1038,"level":223},"\u002Fdocs\u002Fteam\u002Ftelegram-team#vincular-tu-telegram","Vincular tu Telegram",[140],"El vínculo es por persona, no por negocio: lo hacés una vez y vale para todos los negocios a los que tenés acceso. En el panel, abrí Mi cuenta (tu nombre, al pie del menú) y tocá Vincular Telegram.Tocá Abrir Telegram y, en el bot, Iniciar. El bot confirma que quedó vinculado.Para desvincular, escribí \u002Fsalir al bot o desvinculalo desde Mi cuenta. El enlace de vínculo es de un solo uso y vence a los 15 minutos. Si venció, generá otro. Si no ves la opción Vincular Telegram, el bot del equipo todavía no está activado en tu entorno: avisanos.",{"id":1040,"title":1041,"titles":1042,"content":1043,"level":223},"\u002Fdocs\u002Fteam\u002Ftelegram-team#qué-avisos-recibís","Qué avisos recibís",[140],"AvisoCuándo llegaTarea asignadaAlguien te asignó una tareaTrabajo sin tomarHay una tarea de cola que tu grupo puede tomarRecordatorioFalta poco para un turno (aviso previo del equipo)Reporte diarioResumen de tu jornadaCambiosUna tarea tuya se canceló o cambió Los avisos traen botones para actuar sin abrir el panel: Abrir abre la Mini App directamente en esa tarea.Tomar y Completar ejecutan la acción con tus permisos, igual que en el panel. Si otra persona tomó el trabajo antes, te avisa que ya está tomado.Los avisos nunca incluyen datos de otro negocio. Los recordatorios, el reporte diario y el aviso al equipo salen de tus flujos y reglas. Si activás uno, el equipo lo recibe por este canal.",{"id":1045,"title":1046,"titles":1047,"content":1048,"level":223},"\u002Fdocs\u002Fteam\u002Ftelegram-team#elegí-cómo-recibirlos","Elegí cómo recibirlos",[140],"En Mi cuenta → Preferencias de avisos definís: Canal preferido: automático, Telegram, WhatsApp o email. En automático, Telegram si lo tenés vinculado; si no, WhatsApp (con tu vínculo verificado) y, si tampoco, email.Qué silenciar: asignadas, sin tomar, recordatorios, reporte diario o cambios. Si Telegram no puede entregar un aviso (por ejemplo, bloqueaste el bot), el aviso cae al siguiente canal.",{"id":1050,"title":1051,"titles":1052,"content":1053,"level":223},"\u002Fdocs\u002Fteam\u002Ftelegram-team#comandos","Comandos",[140],"ComandoQué hace\u002FstartVincula tu cuenta (con el enlace de Mi cuenta)\u002FhoyTe muestra tu día, por negocio\u002FsalirDesvincula tu Telegram",{"id":1055,"title":1056,"titles":1057,"content":1058,"level":223},"\u002Fdocs\u002Fteam\u002Ftelegram-team#mini-app-mi-día","Mini App \"Mi día\"",[140],"El botón de menú del bot (a la izquierda del campo de texto) abre Mi día: el panel en formato compacto dentro de Telegram, sin pedirte contraseña. Muestra lo mismo que verías en el panel según tu rol: Hoy y Trabajo (con \"Mías\" por defecto para el personal) y un selector de negocio si tenés varios. La sesión dura 60 minutos y solo toca Hoy, Trabajo y las tareas. No da acceso a claves de API, equipo, canales ni webhooks.Se corta sola si desvinculás Telegram o si te dan de baja del negocio.",{"id":1060,"title":1061,"titles":1062,"content":1063,"level":223},"\u002Fdocs\u002Fteam\u002Ftelegram-team#grupo-del-equipo","Grupo del equipo",[140],"Además de los avisos personales, el negocio puede tener un grupo de Telegram del equipo donde se publican las tareas sin asignar con el botón Tomar. Gana el primero que toca: si dos tocan a la vez, una sola persona queda asignada y la otra ve que ya la tomaron. Un owner o manager con su Telegram ya vinculado agrega al bot del equipo al grupo.En el grupo escribe \u002Fvincular y toca Confirmar (si administra varios negocios, elige cuál). Solo quien lo pidió puede confirmar.Opcional, en un grupo con temas: dentro de un tema, \u002Ftema y elegí la zona o el grupo de recursos cuyas tareas van ahí. Las demás van al tema general. Comando del grupoQué hace\u002FvincularVincula el grupo al negocio (con confirmación)\u002FtemaElige qué zona o grupo publica en este tema\u002FdesvincularDeja de publicar tareas en el grupo Solo pueden Tomar las personas del negocio con su Telegram vinculado y permiso para tomar tareas (y, si son del personal, dentro de su grupo y zona). Al resto el bot no le responde.La publicación muestra solo el servicio, el horario y la zona: nunca el cliente, la dirección ni el teléfono. Cuando alguien la toma, el mensaje dice quién y pierde el botón.Hay un grupo por negocio y un negocio por grupo. Se ve y se desvincula en Equipo → Accesos; también se corta si sacás al bot del grupo.El bot publica como máximo 20 mensajes por minuto en el grupo; lo demás espera en cola.Al reemplazar el grupo o migrarlo a supergrupo, las tareas sin asignar se publican de nuevo en el grupo vinculado. Los botones de mensajes anteriores responden «Este grupo ya no está vinculado» y no asignan la tarea.",{"id":1065,"title":1066,"titles":1067,"content":1068,"level":223},"\u002Fdocs\u002Fteam\u002Ftelegram-team#límites-y-seguridad","Límites y seguridad",[140],"En privado, el bot solo habla con una persona; en el grupo del equipo solo lee sus comandos y botones.Telegram admite 1 mensaje por segundo por chat; si hay muchos avisos juntos, los siguientes esperan en cola y llegan igual.El vínculo y la Mini App se validan siempre en el servidor. Un enlace usado, vencido o de otra cuenta responde con el mismo mensaje neutro. Para qué ve y qué puede hacer cada persona, mirá Roles y permisos. Para desarrolladores: los endpoints GET\u002FDELETE \u002Fme\u002Ftelegram, POST \u002Fme\u002Ftelegram\u002Flink y GET\u002FPUT \u002Fme\u002Fnotification-preferences son de la cuenta del usuario (sesión de panel) y no se usan con claves de API.",{"id":145,"title":144,"titles":1070,"content":1071,"level":217},[],"Qué puede ver y hacer cada rol (dueño, gerente, personal y solo lectura), cómo invitar al equipo y cómo trabajar con varios proyectos. Cada persona entra a un negocio (un proyecto) con un rol. El rol decide qué pantallas ve y qué puede cambiar. Lo controla el servidor: ocultar un botón en el panel no es la única barrera.",{"id":1073,"title":1074,"titles":1075,"content":1076,"level":223},"\u002Fdocs\u002Fteam\u002Froles#los-cuatro-roles","Los cuatro roles",[144],"RolPara quiénQué haceDueño (owner)Quien administra la cuentaTodo, incluidas las claves de API, el equipo y los canalesGerente (manager)EncargadosOpera el negocio: catálogo, equipo, clientes, bot, flujos, canales y webhooks. No administra las claves de APIPersonal (staff)Quien atiende o reparteVe y trabaja lo suyo: sus tareas y lo que su grupo puede tomarSolo lectura (viewer)Socios, contadoresMira Hoy, Trabajo y conversaciones; no modifica nada",{"id":1078,"title":1079,"titles":1080,"content":1081,"level":223},"\u002Fdocs\u002Fteam\u002Froles#qué-ve-cada-uno-en-el-panel","Qué ve cada uno en el panel",[144],"SecciónDueñoGerentePersonalSolo lecturaHoy y TrabajoSíSíLo suyoSí (lectura)ConversacionesSíSíSolo las suyasSí (lectura)Catálogo, Equipo, ClientesSíSíNoNoBot y FlujosSíSíNoNoConfiguración, Canales, IA y usoSíSíNoNoWebhooksSíSíNoNoClaves de API (Desarrolladores)SíNoNoNo El personal busca clientes con una vista mínima: nombre, teléfono parcialmente oculto, etiquetas y ausencias, con un mínimo de caracteres y un tope de resultados. Un repartidor ve el destino exacto de una entrega solo después de tomarla; antes ve una zona aproximada.",{"id":1083,"title":1084,"titles":1085,"content":1086,"level":223},"\u002Fdocs\u002Fteam\u002Froles#invitar-al-equipo","Invitar al equipo",[144],"En Equipo podés invitar de dos maneras: Por mensaje (WhatsApp): solo para personal operativo, sin contraseña. Indicás nombre y número (con código de país) y le llega la invitación por el chat; al aceptarla, ese número queda vinculado. Mientras no acepte, aparece como Invitación pendiente (vence en 48 horas) y del número solo se ve el final.Por email: para dueño, gerente, personal o solo lectura. La persona acepta la invitación y crea su contraseña. A una persona del personal la asociás a uno o más recursos (su agenda, su vehículo): eso define qué tareas ve y cuáles puede tomar. Podés cambiar el rol o dar de baja a alguien cuando quieras; sus sesiones y su Telegram dejan de funcionar al instante.",{"id":1088,"title":1089,"titles":1090,"content":1091,"level":369},"\u002Fdocs\u002Fteam\u002Froles#enlaces-de-agenda-del-personal","Enlaces de agenda del personal",[144,1084],"Cada persona de personal con recursos tiene un enlace de agenda para abrir «Mi día» sin iniciar sesión. En Equipo → Accesos ves si hay uno activo, hasta cuándo vale y cuándo se usó por última vez. Desde ahí podés: Reenviar el de hoy: le llega por su chat el enlace vigente (si había otro, deja de valer). Hace falta que su contacto esté vinculado y que el canal esté conectado; si acaba de recibir uno, esperá un minuto.Revocar y cerrar sesiones: el enlace y las sesiones abiertas con él dejan de funcionar al instante. El enlace es de un solo uso y vale el día de la agenda; si ya se abrió en otro dispositivo, venció o lo revocaste, la persona ve un aviso claro y pide uno nuevo escribiendo «mi agenda» al chat del negocio. Wagy puede proponer la invitación por mensaje (nombre y WhatsApp) con el mismo flujo de confirmación.",{"id":1093,"title":1094,"titles":1095,"content":1096,"level":223},"\u002Fdocs\u002Fteam\u002Froles#varios-proyectos","Varios proyectos",[144],"Una cuenta puede tener varios proyectos (negocios o sedes), cada uno con su equipo, su agenda, sus canales y sus datos, completamente aislados. El número de proyectos depende del plan. Con más de un proyecto, el selector de proyecto del panel te deja cambiar de uno a otro.Solo el dueño de la cuenta puede crear un proyecto nuevo, a partir de un modelo por rubro (barbería, estética, clínica, restaurante o entregas).Tu rol puede ser distinto en cada proyecto.",{"id":1098,"title":1099,"titles":1100,"content":1101,"level":223},"\u002Fdocs\u002Fteam\u002Froles#soporte-de-plataforma","Soporte de plataforma",[144],"Cuando necesitás ayuda, el equipo de Fiuit puede entrar a tu proyecto de forma temporal: Siempre con un motivo escrito y por un máximo de 60 minutos.En modo lectura (ve lo que vería un gerente, sin cambiar nada) o asistencia (puede ajustar catálogo, horarios y configuración del negocio).Nunca puede ver ni cambiar claves de API, contraseñas, secretos de canales, facturación ni el equipo, ni enviar mensajes a tus clientes.Cada entrada y salida queda registrada y el dueño las ve en la actividad del negocio, con quién, en qué modo y por qué.",{"id":1103,"title":1104,"titles":1105,"content":1106,"level":223},"\u002Fdocs\u002Fteam\u002Froles#claves-de-api-y-permisos","Claves de API y permisos",[144],"Las claves de API no tienen rol: tienen scopes (permisos acotados, como slots:read o bookings:write) y las crea solo el dueño. Mirá Autenticación.",{"id":149,"title":148,"titles":1108,"content":1109,"level":217},[],"La campana del panel (con las Novedades de Fiuit), el push en el celular, qué avisos recibís y por dónde, el silencio y las reglas del proyecto. Las notificaciones te avisan de lo que necesita atención sin que tengas que mirar el panel todo el tiempo. Coinciden con lo que ves en Requiere atención del Inbox y en Hoy.",{"id":1111,"title":1112,"titles":1113,"content":1114,"level":223},"\u002Fdocs\u002Fteam\u002Fnotifications#la-campana","La campana",[148],"En el panel, la campana reúne en un solo lugar tus notificaciones y las Novedades de Fiuit (lo que va saliendo, en tu idioma), con un contador combinado de pendientes que se actualiza solo, sin recargar. Si no hay nada pendiente, ves la campana sola, sin número. Tocá la campana para ver la lista: cada aviso te lleva a lo que pide atención (la conversación, la tarea, el canal o la IA) y cada entrada de Novedades abre su detalle.En el celular, la campana abre como una hoja clara que se cierra con Escape o deslizando; las sugerencias de Wagy quedan al costado, sin tapar tus tarjetas.Con Marcar todas como leídas la dejás en cero. Las leídas se borran a los 14 días y todas a los 60. El historial completo de Novedades está en fiuit.com\u002Fnovedades.",{"id":1116,"title":1117,"titles":1118,"content":1119,"level":223},"\u002Fdocs\u002Fteam\u002Fnotifications#qué-avisos-hay","Qué avisos hay",[148],"AvisoCuándo llegaUna conversación necesita atenciónEl bot derivó o falló y nadie respondió todavíaTarea asignada a míAlguien te asignó una tareaTarea sin responsableHay una tarea que tu grupo o zona puede tomarCanal caído o con errorUn canal de mensajes se desconectóIA pausada o cuota agotadaSe pausó la IA del proyecto o se acabó la cuota del mesPosible spamUn canal pausado descartó muchos mensajes en un díaSugerencia de WagyWagy tiene algo que proponerte",{"id":1121,"title":1122,"titles":1123,"content":1124,"level":223},"\u002Fdocs\u002Fteam\u002Fnotifications#elegir-qué-recibís-y-por-dónde","Elegir qué recibís y por dónde",[148],"En Mi cuenta → Notificaciones elegís, para cada aviso, si lo querés en el panel, como push, por Telegram o por email. Ahí también definís: Horario de silencio: dentro de la franja no sale nada fuera del panel (ni push, ni Telegram, ni email). Las notificaciones siguen en la campana.Resumen diario por email: un email al día con lo que quedó sin leer. Viene apagado. Si tu entorno todavía no tiene el envío de email configurado, el resumen no sale hasta que lo tenga.",{"id":1126,"title":1127,"titles":1128,"content":1129,"level":223},"\u002Fdocs\u002Fteam\u002Fnotifications#push-en-el-celular-y-en-el-navegador","Push en el celular y en el navegador",[148],"En Mi cuenta → Notificaciones → Push en este dispositivo tocá Activar push y aceptá el permiso del navegador. Cada dispositivo se activa por separado. Si tu proyecto todavía no tiene el push disponible, la pantalla lo dice. En iPhone y iPad el push solo funciona si agregás el panel a la pantalla de inicio: abrilo en Safari, tocá Compartir → Agregar a pantalla de inicio, abrí Fiuit desde el ícono nuevo y activá el push desde ahí.",{"id":1131,"title":1132,"titles":1133,"content":1134,"level":223},"\u002Fdocs\u002Fteam\u002Fnotifications#reglas-del-proyecto-dueño","Reglas del proyecto (dueño)",[148],"En Configuración → Notificaciones el dueño decide quién recibe las alertas de canal caído y de spam (solo el dueño, dueño y encargados, o todo el equipo) y qué avisos están activos para todo el proyecto. Lo personal, como los canales y el silencio, lo elige cada persona en Mi cuenta.",{"id":153,"title":152,"titles":1136,"content":1137,"level":217},[],"Reglas de comisión por persona y por servicio o producto, propinas y reporte por período en CSV, calculado al vuelo. En Financiero > Comisiones ves lo que le corresponde a cada persona del equipo. Fiuit lo calcula solo, con los cobros reales que registrás (efectivo, transferencia, Pix, tarjeta, link de pago): nunca sobre lo vendido ni con números que se escriben a mano en el navegador.",{"id":1139,"title":1140,"titles":1141,"content":1142,"level":223},"\u002Fdocs\u002Fteam\u002Fcommissions#cómo-se-calcula","Cómo se calcula",[152],"Sobre lo cobrado. Si una tarea vale 100 y te pagan 60, la comisión es sobre 60. Cuando llega el resto, se suma la comisión del resto. Una tarea con deuda no genera comisión hasta que se cobra.Señas y descuentos. Una seña cobrada cuenta el día que se cobra (si la tarea se reprogramó, cuenta para quien hace la tarea vigente). Un descuento baja lo que se cobra y, por lo tanto, la comisión.Anulaciones y devoluciones restan el día en que ocurren (el día del cobro no cambia) y se valoran con la regla del cobro original: terminar o cambiar una regla después no deja comisión de un cobro anulado.De quién es la comisión: todo lo cobrado por una tarea es de quien hizo el trabajo, es decir, de quien tenía la tarea asignada (activo y con el recurso) al completarla, aunque otra persona haya registrado el cobro. Mientras la tarea siga abierta, se atribuye a quien la tiene asignada hoy. Si después esa persona deja el equipo o el recurso pasa a otra, la tarea sigue siendo suya; las anulaciones y devoluciones posteriores también le restan a ella.Seña retenida sin trabajo realizado: si la tarea termina en ausencia, cancelación o fallo (no_show, cancelled, failed), sus cobros no generan comisión ni aparecen como «sin persona asignada»: quedan como ingreso del negocio en Financiero y Caja. Una baja o reasignación posterior no cambia esa regla.Devolución parcial electrónica: por ahora la comisión sigue sobre el total hasta que la devolución es total.Varias personas en una tarea: lo cobrado se reparte en partes iguales.Propinas: van aparte, por medio de pago, y no generan comisión.Tareas sin persona asignada: lo cobrado se muestra aparte (solo owner y manager) y no genera comisión.",{"id":1144,"title":428,"titles":1145,"content":1146,"level":223},"\u002Fdocs\u002Fteam\u002Fcommissions#reglas",[152],"Una regla es un porcentaje de lo cobrado o un monto fijo (por tarea, o por unidad si es un producto). Se puede aplicar a todo el equipo o a una persona, a todo lo cobrado o a un servicio o producto, y descontar o no la comisión del medio de pago (por ejemplo, la tarifa de Mercado Pago). Cada regla tiene vigencia desde una fecha. Gana la regla más específica: persona + servicio o producto, después servicio o producto, después persona, después la general. Una regla no se edita: para cambiar una tasa, la terminás y creás otra. Owner y manager configuran las reglas; cada persona del equipo ve las que le aplican.",{"id":1148,"title":1149,"titles":1150,"content":1151,"level":223},"\u002Fdocs\u002Fteam\u002Fcommissions#el-día-de-cada-persona","El día de cada persona",[152],"Para cada persona ves lo cobrado por medio de pago, las propinas, la comisión, los ajustes y, si cobró en efectivo, la diferencia de caja del día. Owner y manager pueden ajustar la comisión de un día, con signo y motivo (queda en la auditoría). No hay cierre diario: los números se calculan al vuelo a partir de los cobros. Como cada tarea completada queda de quien la tenía al completarla, dar de baja a alguien o cambiarle los recursos no cambia el pasado.",{"id":1153,"title":1154,"titles":1155,"content":1156,"level":223},"\u002Fdocs\u002Fteam\u002Fcommissions#reporte-por-período","Reporte por período",[152],"En Período elegís las fechas y ves el total por persona, calculado al vuelo (cada tarea cuenta una vez). Exportar CSV baja una fila por persona y día, con importes en la unidad menor de la moneda: sirve de base para liquidar al equipo.",{"id":1158,"title":486,"titles":1159,"content":1160,"level":223},"\u002Fdocs\u002Fteam\u002Fcommissions#quién-ve-qué",[152],"RolVePuedeOwner y managerTodo el equipoReglas, ajustes, propinas, CSVStaffSolo lo suyoRegistrar sus propinas (si el negocio le permite cobrar) y bajar su CSVViewerNada de dinero— Wagy puede leerte las comisiones de un día o de un período; las reglas, los ajustes y las propinas se hacen en el panel. Por API y MCP están las mismas lecturas (scope commissions:read).",{"id":157,"title":156,"titles":1162,"content":1163,"level":217},[],"Creá tu primera reserva por API en cinco minutos con una clave de un negocio de prueba: servicios, horarios, pre-reserva y confirmación. Esta guía crea una reserva real, así que usá una clave de producción (wg_live_...) de un negocio que armaste para probar. Las claves wg_test_ son de solo lectura: permiten listar y leer, no crear ni modificar nada. Un sandbox para escrituras es Próximamente. Para probar el bot sin WhatsApp, usá el simulador del panel. URL base: https:\u002F\u002Fapi.fiuit.com\u002Fv1. Cada request necesita Authorization: Bearer \u003Cclave>.",{"id":1165,"title":1166,"titles":1167,"content":1168,"level":223},"\u002Fdocs\u002Fquickstart#_1-generá-una-clave","1. Generá una clave",[156],"En el panel, andá a Configuración → Desarrolladores, creá una clave de Producción y marcá los scopes slots:read, bookings:write y config:read. La clave se muestra una sola vez. export WAGEND_KEY=\"wg_live_xxxxxxxx_xxxxxxxxxxxxxxxxxxxx\"",{"id":1170,"title":1171,"titles":1172,"content":1173,"level":223},"\u002Fdocs\u002Fquickstart#_2-verificá-quién-sos","2. Verificá quién sos",[156],"curl https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fme -H \"Authorization: Bearer $WAGEND_KEY\" {\n  \"workspace\": { \"id\": \"ws_9f2c\", \"name\": \"Barbería Centro\", \"timezone\": \"America\u002FSao_Paulo\", \"locale\": \"es\", \"currency\": \"BRL\" },\n  \"scopes\": [\"slots:read\", \"bookings:write\", \"config:read\"],\n  \"mode\": \"live\"\n} El workspace siempre sale de la clave. Nunca enviás un id de workspace.",{"id":1175,"title":1176,"titles":1177,"content":1178,"level":223},"\u002Fdocs\u002Fquickstart#_3-listá-los-servicios","3. Listá los servicios",[156],"curl https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fservices -H \"Authorization: Bearer $WAGEND_KEY\" {\n  \"data\": [\n    { \"id\": \"svc_corte\", \"name\": \"Corte\", \"duration_min\": 30, \"price_cents\": 5000, \"currency\": \"BRL\",\n      \"requirements\": [{ \"resource_group_id\": \"grp_barbers\", \"units\": 1 }] }\n  ]\n}",{"id":1180,"title":1181,"titles":1182,"content":1183,"level":223},"\u002Fdocs\u002Fquickstart#_4-buscá-horarios-disponibles","4. Buscá horarios disponibles",[156],"curl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fslots?service_id=svc_corte&from=2026-10-15T08:00:00-03:00&to=2026-10-15T13:00:00-03:00\" \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" {\n  \"data\": [\n    { \"start\": \"2026-10-15T09:00:00-03:00\", \"end\": \"2026-10-15T09:30:00-03:00\", \"resource_ids\": [\"res_juan\"] },\n    { \"start\": \"2026-10-15T09:45:00-03:00\", \"end\": \"2026-10-15T10:15:00-03:00\", \"resource_ids\": [\"res_juan\"] }\n  ],\n  \"unavailable_reason\": null\n}",{"id":1185,"title":1186,"titles":1187,"content":1188,"level":223},"\u002Fdocs\u002Fquickstart#_5-pre-reservá-el-horario","5. Pre-reservá el horario",[156],"La pre-reserva (hold) guarda el horario por 10 minutos mientras juntás los datos del cliente. Enviá siempre un Idempotency-Key para que los reintentos sean seguros. curl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fholds \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"service_id\": \"svc_corte\", \"start\": \"2026-10-15T09:45:00-03:00\", \"resource_ids\": [\"res_juan\"] }' { \"id\": \"bkg_7Qx1\", \"status\": \"held\", \"expires_at\": \"2026-10-14T15:30:00-03:00\", \"start\": \"2026-10-15T09:45:00-03:00\" }",{"id":1190,"title":1191,"titles":1192,"content":1193,"level":223},"\u002Fdocs\u002Fquickstart#_6-confirmá","6. Confirmá",[156],"curl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fholds\u002Fbkg_7Qx1\u002Fconfirm \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"customer\": { \"name\": \"Carlos\", \"phone\": \"+5491155550000\", \"locale\": \"es\" } }' { \"id\": \"bkg_7Qx1\", \"status\": \"confirmed\", \"start\": \"2026-10-15T09:45:00-03:00\", \"source\": \"api\" } Si el servicio pide seña, el estado queda en pending_payment. El cobro en línea de la seña es próximamente.",{"id":1195,"title":1196,"titles":1197,"content":1198,"level":223},"\u002Fdocs\u002Fquickstart#el-mismo-flujo-en-javascript","El mismo flujo en JavaScript",[156],"const api = (path: string, init: RequestInit = {}) =>\n  fetch(`https:\u002F\u002Fapi.fiuit.com\u002Fv1${path}`, {\n    ...init,\n    headers: { Authorization: `Bearer ${process.env.WAGEND_KEY}`, 'Content-Type': 'application\u002Fjson', ...init.headers },\n  }).then((r) => r.json())\n\nconst { data: slots } = await api(`\u002Fslots?service_id=svc_corte&from=${from}&to=${to}`)\nconst hold = await api('\u002Fholds', {\n  method: 'POST',\n  headers: { 'Idempotency-Key': crypto.randomUUID() },\n  body: JSON.stringify({ service_id: 'svc_corte', start: slots[0].start }),\n})\nconst booking = await api(`\u002Fholds\u002F${hold.id}\u002Fconfirm`, {\n  method: 'POST',\n  headers: { 'Idempotency-Key': crypto.randomUUID() },\n  body: JSON.stringify({ customer: { name: 'Carlos', phone: '+5491155550000' } }),\n})",{"id":1200,"title":1201,"titles":1202,"content":1203,"level":223},"\u002Fdocs\u002Fquickstart#siguientes-pasos","Siguientes pasos",[156],"Preferís no armar el cliente a mano: usá los SDK de TypeScript y Python.Reaccioná a las reservas con webhooks.Mirá todos los endpoints en la referencia y más ejemplos en las recetas.Conectá un agente de IA con el servidor MCP. html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"id":166,"title":165,"titles":1205,"content":1206,"level":217},[],"Claves de API, scopes y qué rutas se pueden usar con una clave y cuáles son solo del panel.",{"id":1208,"title":1209,"titles":1210,"content":1211,"level":223},"\u002Fdocs\u002Fapi\u002Fauthentication#claves-de-api","Claves de API",[165],"Las claves las crea el dueño en Configuración → Desarrolladores. Se muestran una sola vez. Enviá tu clave como bearer token: GET \u002Fv1\u002Fme HTTP\u002F1.1\nHost: api.fiuit.com\nAuthorization: Bearer wg_live_xxxxxxxx_xxxxxxxxxxxxxxxxxxxx PrefijoModowg_live_Datos de producción y mensajes realeswg_test_Solo lectura: permite listar y leer, no crear ni modificar nada. Un sandbox para escrituras es Próximamente Las claves pertenecen a un proyecto (workspace). El proyecto siempre se toma de la clave: no hay id de workspace en paths ni en bodies. Las claves se guardan hasheadas.",{"id":1213,"title":1214,"titles":1215,"content":1216,"level":223},"\u002Fdocs\u002Fapi\u002Fauthentication#scopes","Scopes",[165],"ScopePermiteslots:readGET \u002Fslotsbookings:readLeer reservas y tareas (\u002Fbookings, \u002Fwork-items), historial de etapas, adjuntos, estadísticas del equipobookings:writePre-reservas, confirmar, cancelar, reprogramar, check-in, ausencia, completar, ejecutar acciones y editar prioridad, etiquetas y vencimiento de una tareacustomers:readLeer y buscar clientes, su historial, resumen y comentarioscustomers:writeCrear y editar clientesmessages:readLeer conversaciones y mensajesmessages:writeEnviar mensajes, cambiar el modo (bot o persona), resolver, marcar como leídoconfig:read \u002F config:writeServicios, recursos, grupos, horarios, automatizaciones por regla, conocimiento y botsettings:writeReemplazar y revertir etapas, acciones y formularios (\u002Fservices\u002F{id}\u002Fstages)webhooks:manageEndpoints de webhooks salientes Un request sin el scope necesario devuelve 403 con code: \"insufficient_scope\".",{"id":1218,"title":1219,"titles":1220,"content":1221,"level":223},"\u002Fdocs\u002Fapi\u002Fauthentication#qué-es-solo-del-panel","Qué es solo del panel",[165],"Estas áreas no aceptan claves de API: usan la sesión de una persona del equipo (con su rol) y están protegidas con CSRF. Si las llamás con una clave, la API responde que no están disponibles para ese tipo de credencial. Canales, pausas de canales y de la IA, estado del servicio.Flujos de automatización (\u002Fautomation-flows), asistente Wagy y su plan.Fuentes de conocimiento (\u002Fknowledge\u002Fsources) y política del bot por canal.Equipo, invitaciones, claves de API, proyectos y soporte de plataforma.Telegram del equipo y preferencias de avisos. El listado de endpoints marca cuáles son cuáles.",{"id":1223,"title":1224,"titles":1225,"content":1226,"level":223},"\u002Fdocs\u002Fapi\u002Fauthentication#rotación","Rotación",[165],"Creá una clave nueva, desplegala y después revocá la vieja en Configuración → Desarrolladores. Las claves revocadas devuelven 401 al instante. html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":170,"title":169,"titles":1228,"content":1229,"level":217},[],"Formatos, idempotencia, paginación, errores y límites de uso de la API v1.",{"id":1231,"title":1232,"titles":1233,"content":1234,"level":223},"\u002Fdocs\u002Fapi\u002Fconventions#lo-básico","Lo básico",[169],"URL base https:\u002F\u002Fapi.fiuit.com\u002Fv1. Los cambios incompatibles salen como una nueva versión; los cambios aditivos (campos nuevos) pueden llegar en cualquier momento, así que ignorá los campos que no conozcas.JSON de entrada y de salida (Content-Type: application\u002Fjson).Fechas en ISO 8601 con offset (2026-10-15T09:45:00-03:00). Se guardan en UTC.Montos en centavos enteros más currency (BRL, ARS, PYG, USD).Los IDs son strings opacos. Los campos sin valor llegan como null explícito.El contrato legible por máquina es packages\u002Fopenapi\u002Fopenapi.yaml (OpenAPI 3.1) y el historial de cambios resume lo nuevo.",{"id":1236,"title":1237,"titles":1238,"content":1239,"level":223},"\u002Fdocs\u002Fapi\u002Fconventions#idempotencia","Idempotencia",[169],"POST \u002Fholds, POST \u002Fholds\u002F{id}\u002Fconfirm, POST \u002Fbookings, POST \u002Fbookings\u002F{id}\u002Freschedule y POST \u002Fbookings\u002F{id}\u002Factions\u002F{key} llevan el header Idempotency-Key (por ejemplo un UUID). Repetir un request con la misma clave dentro de 24 horas devuelve la respuesta original. Reusar la clave con otro body devuelve 422 con code: \"idempotency_conflict\". POST \u002Fcustomers acepta Idempotency-Key de forma opcional. POST \u002Fwebhook-endpoints no lo admite, porque su respuesta contiene el secreto.",{"id":1241,"title":1242,"titles":1243,"content":1244,"level":223},"\u002Fdocs\u002Fapi\u002Fconventions#paginación","Paginación",[169],"Los endpoints de listado usan cursores: curl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings?limit=50\" -H \"Authorization: Bearer $WAGEND_KEY\"\n# → { \"data\": [...], \"next_cursor\": \"eyJpZCI6...\" }\ncurl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings?limit=50&cursor=eyJpZCI6...\" -H \"Authorization: Bearer $WAGEND_KEY\" Cuando next_cursor es null, no hay más páginas.",{"id":1246,"title":1247,"titles":1248,"content":1249,"level":223},"\u002Fdocs\u002Fapi\u002Fconventions#errores","Errores",[169],"Los errores siguen la RFC 9457 (application\u002Fproblem+json): {\n  \"type\": \"https:\u002F\u002Ffiuit.com\u002Fdocs\u002Fapi\u002Fconventions#errors\",\n  \"title\": \"Slot no longer available\",\n  \"status\": 409,\n  \"code\": \"slot_taken\",\n  \"alternatives\": [{ \"start\": \"2026-10-15T10:15:00-03:00\", \"end\": \"2026-10-15T10:45:00-03:00\" }]\n} codeEstadoCuándovalidation_error422Falló la validación del body o de los parámetrosinvalid_api_key401Clave ausente, inválida o revocadaidempotency_key_required400Falta el header Idempotency-Key en una operación que lo exigeversion_conflict409Alguien editó antes el mismo recurso (versión desactualizada)insufficient_scope403La clave no tiene el scopenot_found404Id desconocido (o de otro proyecto)slot_taken409Otra persona tomó el horarioalready_claimed409Otra persona del equipo tomó antes la tarea de colacustomer_exists409Ya hay un cliente con ese teléfonoinvalid_transition409Por ejemplo confirmar una reserva canceladahold_expired410La pre-reserva venció antes de confirmaridempotency_conflict422Misma clave, distinto bodyrate_limited429Demasiados requests Cada respuesta de error trae code: usalo para decidir qué hacer, no el texto del title.",{"id":1251,"title":1252,"titles":1253,"content":1254,"level":223},"\u002Fdocs\u002Fapi\u002Fconventions#límites-de-uso","Límites de uso",[169],"Los límites aplican por clave y por proyecto (un cubo con ráfaga de 120 requests y recarga de 2 por segundo). Cada respuesta trae RateLimit-Limit, RateLimit-Remaining y RateLimit-Reset. Ante un 429, esperá Retry-After segundos. html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":174,"title":173,"titles":1256,"content":1257,"level":217},[],"Los endpoints de la API v1 agrupados por tema, con el scope que pide cada uno, y qué áreas son solo del panel. El contrato legible por máquina está en el repositorio, en packages\u002Fopenapi\u002Fopenapi.yaml (OpenAPI 3.1). Esta página resume lo que podés usar con una clave de API. Las áreas marcadas como \"solo panel\" usan la sesión de una persona del equipo (ver Autenticación).",{"id":1259,"title":1260,"titles":1261,"content":1262,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#agenda-horarios-y-reservas","Agenda: horarios y reservas",[173],"MétodoPathScopeDescripciónGET\u002Fslotsslots:readHorarios disponibles para un servicioPOST\u002Fholdsbookings:writeCrear pre-reserva de 10 minutosPOST\u002Fholds\u002F{id}\u002Fconfirmbookings:writeConfirmar (o pending_payment si pide seña)DELETE\u002Fholds\u002F{id}bookings:writeLiberar pre-reservaPOST\u002Fbookingsbookings:writePre-reserva y confirmación en una llamadaGET\u002Fbookingsbookings:readListar (from, to, status, resource_id, customer_id)GET \u002F PATCH\u002Fbookings\u002F{id}bookings:read \u002F writeLeer, actualizar notas o datos de ingresoPOST\u002Fbookings\u002F{id}\u002Fcancel, \u002Freschedule, \u002Fcheck-in, \u002Fno-show, \u002Fcomplete, \u002Ffailbookings:writeCambiar el estado",{"id":1264,"title":1265,"titles":1266,"content":1267,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#trabajo-tareas-y-acciones","Trabajo: tareas y acciones",[173],"Una reserva es una tarea con etapas. Las tareas sin horario (por ejemplo entregas) viven en la cola de un grupo hasta que alguien las toma. Ver Trabajo y acciones. MétodoPathScopeDescripciónGET\u002Fwork-itemsbookings:readConsulta unificada: filtros por view (inbox, today, upcoming), status, stage, unassigned, priority, tag, origin, q, rango de fechas y caja geográficaPATCH\u002Fwork-items\u002F{id}bookings:writeCambiar prioridad, etiquetas o vencimiento (con expected_version opcional)POST\u002Fbookings\u002F{id}\u002Factions\u002F{key}bookings:writeEjecutar una acción de la etapa (tomar, soltar, completar, \"no estaba\"…) con Idempotency-KeyGET\u002Fbookings\u002F{id}\u002Fstage-historybookings:readHistorial de etapasGET\u002Fbookings\u002F{id}\u002Fcomments, \u002Ftimelinebookings:readComentarios y línea de tiempoGET\u002Fbookings\u002F{id}\u002Fattachments, \u002Flocation-eventsbookings:readEvidencia de trabajoGET\u002Fconversations\u002F{id}\u002Fwork-itemsbookings:readTareas creadas desde una conversaciónGET\u002Fteam\u002Foverview, \u002Fresources\u002F{id}\u002Fstatsbookings:readOcupación y estadísticas del equipo",{"id":1269,"title":1270,"titles":1271,"content":1272,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#catálogo-y-etapas","Catálogo y etapas",[173],"MétodoPathScopeGET \u002F POST\u002Fservices, \u002Fresources, \u002Fresource-groups, \u002Fschedulesconfig:read \u002F config:writeGET \u002F PATCH \u002F DELETE\u002Fservices\u002F{id}, \u002Fresources\u002F{id}, \u002Fresource-groups\u002F{id}, \u002Fschedules\u002F{id}config:read \u002F config:writePOST \u002F DELETE\u002Fschedules\u002F{id}\u002Foverrides, \u002Fschedules\u002F{id}\u002Foverrides\u002F{date}config:writeGET\u002Fschedule-overridesconfig:readGET\u002Fservices\u002F{id}\u002Fstages, \u002Fservices\u002F{id}\u002Fstages\u002Fversions, \u002Fservices\u002F{id}\u002Fstages\u002Fversions\u002F{version}config:readPUT\u002Fservices\u002F{id}\u002Fstagessettings:writePOST\u002Fservices\u002F{id}\u002Fstages\u002Fvalidatesettings:writeGET\u002Fstage-templates, \u002Fbase-statesconfig:readPOST\u002Fservices\u002F{id}\u002Fstages\u002Fversions\u002F{version}\u002Frevertsettings:write",{"id":1274,"title":1275,"titles":1276,"content":1277,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#clientes","Clientes",[173],"MétodoPathScopeDescripciónGET\u002Fcustomerscustomers:readListar y buscar (q: nombre, email, empresa, etiqueta o teléfono; phone, tag)POST\u002Fcustomerscustomers:writeAlta manual. El teléfono es único: si ya existe, 409 customer_existsGET \u002F PATCH\u002Fcustomers\u002F{id}customers:read \u002F writeLeer o editar (incluye dirección con formatted, lat y lng)GET\u002Fcustomers\u002F{id}\u002Fbookings, \u002Fsummary, \u002Ftimeline, \u002Fcommentscustomers:readHistorial, resumen en vivo, línea de tiempo y comentarios Un cliente puede tener varias identidades (WhatsApp, Telegram, WebChat) en identities[].",{"id":1279,"title":1280,"titles":1281,"content":1282,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#conversaciones","Conversaciones",[173],"MétodoPathScopeGET\u002Fconversations, \u002Fconversations\u002F{id}, \u002Fconversations\u002F{id}\u002Fmessagesmessages:readPOST\u002Fconversations\u002F{id}\u002Fmessagesmessages:write (responde 409 channel_paused si el canal está pausado)POST\u002Fconversations\u002F{id}\u002Fmode, \u002Fread, \u002Fresolvemessages:write",{"id":1284,"title":93,"titles":1285,"content":1286,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#bot-y-conocimiento",[173],"MétodoPathScopeGET \u002F PUT\u002Fbotconfig:read \u002F config:writeGET \u002F POST\u002Fknowledge, \u002Fknowledge\u002Ffilesconfig:read \u002F config:writePOST\u002Fknowledge\u002Fsearchconfig:readPATCH \u002F DELETE\u002Fknowledge\u002F{id}config:writeGET \u002F POST \u002F PATCH\u002Fautomations, \u002Fautomations\u002F{id}config:read \u002F config:write",{"id":1288,"title":1289,"titles":1290,"content":1291,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#webhooks-salientes","Webhooks salientes",[173],"MétodoPathScopeGET \u002F POST\u002Fwebhook-endpointswebhooks:manageGET \u002F PATCH \u002F DELETE\u002Fwebhook-endpoints\u002F{id}webhooks:managePOST\u002Fwebhook-endpoints\u002F{id}\u002Frotate-secret, \u002Fping, \u002Fdeliveries\u002F{delivery_id}\u002Fresendwebhooks:manageGET\u002Fwebhook-endpoints\u002F{id}\u002Fdeliverieswebhooks:manage Detalle en Webhooks.",{"id":1293,"title":1294,"titles":1295,"content":1296,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#plataforma","Plataforma",[173],"MétodoPathScopeGET\u002Fmecualquiera",{"id":1298,"title":1299,"titles":1300,"content":1301,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#solo-panel-no-aceptan-claves-de-api","Solo panel (no aceptan claves de API)",[173],"ÁreaRutasCanales y pausas\u002Fchannels, \u002Fchannels\u002Fwhatsapp, \u002Fchannels\u002Ftelegram, \u002Fchannels\u002Fservice-status, \u002Fchannels\u002Fpauses, \u002Fchannels\u002F{channel}\u002Fpause y \u002Fresume; ver Pausas y EstadoPolítica del bot por canal\u002Fbot\u002Fchannel-policies (ver WebChat)Fuentes de conocimiento\u002Fknowledge\u002Fsources (ver Conocimiento)Flujos\u002Fautomation-flows (ver Flujos)IA del proyecto\u002Fai\u002Fusage, \u002Fai\u002Fpause, \u002Fai\u002Fresume, \u002Fai\u002Fspam-guard, \u002Fai\u002FnoticesWagy\u002Fassistant\u002F*, el asistente de configuración del panelEquipo y cuenta\u002Fteam\u002F*, \u002Fapi-keys, \u002Fworkspaces, \u002Fme\u002Ftelegram, \u002Fme\u002Fnotification-preferencesWebChat\u002Fwebchat-site (gestión) y \u002Fpublic\u002Fwebchat\u002F* (públicos, con la clave publicable del widget)",{"id":1303,"title":1304,"titles":1305,"content":1306,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#ejemplo-slots","Ejemplo: slots",[173],"GET \u002Fv1\u002Fslots?service_id=svc_laser&from=2026-10-20T09:00:00-03:00&to=2026-10-20T20:00:00-03:00&around=2026-10-20T18:00:00-03:00 {\n  \"data\": [\n    { \"start\": \"2026-10-20T17:45:00-03:00\", \"end\": \"2026-10-20T18:30:00-03:00\", \"resource_ids\": [\"res_ana\", \"res_laser1\", \"res_room2\"] },\n    { \"start\": \"2026-10-20T18:45:00-03:00\", \"end\": \"2026-10-20T19:30:00-03:00\", \"resource_ids\": [\"res_carla\", \"res_laser1\", \"res_room1\"] }\n  ],\n  \"unavailable_reason\": null\n}",{"id":1308,"title":1309,"titles":1310,"content":1311,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#ejemplo-objeto-de-reserva","Ejemplo: objeto de reserva",[173],"{\n  \"id\": \"bkg_7Qx1\",\n  \"status\": \"confirmed\",\n  \"stage\": \"confirmed\",\n  \"service_id\": \"svc_laser\",\n  \"start\": \"2026-10-20T17:45:00-03:00\",\n  \"end\": \"2026-10-20T18:30:00-03:00\",\n  \"party_size\": 1,\n  \"customer\": { \"id\": \"cus_31\", \"name\": \"Marina\", \"phone\": \"+5521988887777\", \"locale\": \"pt\" },\n  \"allocations\": [\n    { \"resource_id\": \"res_ana\", \"start\": \"2026-10-20T17:45:00-03:00\", \"end\": \"2026-10-20T18:40:00-03:00\" },\n    { \"resource_id\": \"res_laser1\", \"start\": \"2026-10-20T17:45:00-03:00\", \"end\": \"2026-10-20T18:40:00-03:00\" },\n    { \"resource_id\": \"res_room2\", \"start\": \"2026-10-20T17:45:00-03:00\", \"end\": \"2026-10-20T18:40:00-03:00\" }\n  ],\n  \"priority\": \"normal\",\n  \"tags\": [],\n  \"source\": \"whatsapp\",\n  \"created_at\": \"2026-10-19T11:02:13-03:00\"\n} Las asignaciones incluyen el buffer (acá, 10 minutos después del servicio). En las tareas con cola, start y end vienen en null hasta que alguien las toma.",{"id":1313,"title":1314,"titles":1315,"content":1316,"level":223},"\u002Fdocs\u002Fapi\u002Fendpoints#cambios-recientes","Cambios recientes",[173],"Estas son las novedades de la API, todas aditivas. El historial completo vive en el repositorio (docs\u002Fapi\u002FCHANGELOG.md). Clientes: alta manual, datos ampliados, dirección con formatted, lat y lng, e identities[] multicanal.Tareas y acciones: consulta unificada GET \u002Fwork-items, ejecutor de acciones con efectos (tomar, soltar, resultados) y 409 already_claimed.Mensajes con ubicación: WhatsApp, Telegram y WebChat guardan la ubicación compartida en la conversación.Pausas: al pausar un canal, enviar un mensaje responde 409 channel_paused.Conocimiento: fuentes de tipo sitio con max_pages y errores por causa. Las confirmaciones conservan título y cuerpo en los tres idiomas. La API admite hasta 42 etapas para preservar las identidades anteriores y las canónicas del sistema. Las canónicas aisladas no añaden acciones ni permisos; las salidas configuradas conservan la validación del grafo. Validar, guardar y restaurar aceptan esas configuraciones migradas. html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"id":178,"title":177,"titles":1318,"content":1319,"level":217},[],"Avisos firmados de lo que pasa con tus reservas, con reintentos automáticos, log de entregas y ejemplos para verificar la firma.",{"id":1321,"title":1322,"titles":1323,"content":1324,"level":223},"\u002Fdocs\u002Fapi\u002Fwebhooks#eventos","Eventos",[177],"Se pueden suscribir estos eventos: EventoCuándobooking.createdSe creó una pre-reserva o reservabooking.confirmedSe confirmó una reservabooking.cancelledReserva cancelada o pre-reserva liberadabooking.rescheduledSe movió de horario (el payload trae el id viejo y el nuevo)booking.no_showMarcada como ausenciabooking.completedAtención completadabooking.scheduledHorario fijado en la misma tareabooking.unscheduledHorario quitado de la tareabooking.reassignedCambió el conjunto de co-responsables; data.booking.resource_ids trae todos los recursos posteriores y previous_resource_ids los anteriores.action.executedAcción de tarea aplicada por el servidorpayment.paidProveedor actualizó el cobro a pagadopayment.recordedCobro manual registradopayment.voidedCobro manual anuladomessage.receivedMensaje entrante persistido (IDs y tipo, sin texto)conversation.handoffConversación pasada a modo humano booking.reassigned: Solo se emite si había al menos un recurso asignado y el conjunto cambia. Incluye soltar la asignación (conjunto nuevo vacío); excluye la asignación inicial y repetir el mismo recurso. Se deduplica por reserva y secuencia persistida de cambios reales de recursos, independiente de la versión: A→B→A→B emite tres eventos. Reintentar el mismo PATCH o repetir el conjunto actual no agrega eventos ni incrementa la secuencia. Los tipos inexistentes responden 422 (invalid_webhook) con unsupported_events y la lista supported_events. webhook.ping es solo una prueba, no un tipo de suscripción. booking.cancelled no incluye el vencimiento automático de holds (booking.expired, evento interno). Creá endpoints desde Configuración → Webhooks en el panel o con POST \u002Fv1\u002Fwebhook-endpoints (url y events). El secreto de firma (whsec_…) se muestra una sola vez. curl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fwebhook-endpoints \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"url\": \"https:\u002F\u002Fexample.com\u002Fwagend\", \"events\": [\"booking.confirmed\", \"booking.cancelled\"] }'",{"id":1326,"title":1327,"titles":1328,"content":1329,"level":223},"\u002Fdocs\u002Fapi\u002Fwebhooks#payload","Payload",[177],"El sobre conserva data.booking para reservas; los cobros usan data.payment (ID del cobro), mensajes data.message (ID del mensaje), derivaciones data.conversation (ID de conversación) y acciones data.action (con workitem_id, action_key y efectos). No se incluye el texto del mensaje. {\n  \"id\": \"evt_3f6c1d9e0b7a4c2f8e5d1a9b7c3e6f20\",\n  \"type\": \"booking.confirmed\",\n  \"created_at\": \"2026-10-14T15:21:07-03:00\",\n  \"workspace_id\": \"b3a6c8e2-5f1d-4c7a-9e0b-2d8f4a1c6e53\",\n  \"data\": { \"booking\": { \"id\": \"6d1f0c4a-7b2e-4a58-9c3d-0e5f8a2b1c47\", \"status\": \"confirmed\", \"start_at\": \"2026-10-15T12:45:00+00:00\" } }\n} La entrega es al menos una vez: usá el id para ignorar duplicados.",{"id":1331,"title":1332,"titles":1333,"content":1334,"level":223},"\u002Fdocs\u002Fapi\u002Fwebhooks#verificar-la-firma","Verificar la firma",[177],"Cada request trae el header: Wagend-Signature: t=1791040867,v1=5c2b9f...e81 v1 es HMAC-SHA256(secreto, t + \".\" + body_crudo) en hexadecimal. Rechazá requests de más de 5 minutos y calculá la firma sobre el cuerpo crudo, sin volver a serializar el JSON. import crypto from 'node:crypto'\n\nexport function verifyWagend(rawBody: string, header: string, secret: string) {\n  const parts = Object.fromEntries(header.split(',').map((p) => p.split('=') as [string, string]))\n  const age = Math.abs(Date.now() \u002F 1000 - Number(parts.t))\n  if (!parts.t || !parts.v1 || age > 300) return false\n  const expected = crypto.createHmac('sha256', secret).update(`${parts.t}.${rawBody}`).digest('hex')\n  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1))\n} import hashlib, hmac, time\n\ndef verify_wagend(raw_body: bytes, header: str, secret: str) -> bool:\n    parts = dict(p.split(\"=\", 1) for p in header.split(\",\"))\n    if abs(time.time() - int(parts.get(\"t\", \"0\"))) > 300:\n        return False\n    signed = f\"{parts['t']}.\".encode() + raw_body\n    expected = hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest()\n    return hmac.compare_digest(expected, parts.get(\"v1\", \"\"))",{"id":1336,"title":1337,"titles":1338,"content":1339,"level":223},"\u002Fdocs\u002Fapi\u002Fwebhooks#reintentos","Reintentos",[177],"Respondé con cualquier 2xx en menos de 10 segundos. Si no, reintentamos a los 1 min, 5 min, 30 min, 2 h y 12 h. Cada intento se ve en el log de entregas, donde también podés reenviar a mano.",{"id":1341,"title":1342,"titles":1343,"content":1344,"level":223},"\u002Fdocs\u002Fapi\u002Fwebhooks#seguridad-y-límites","Seguridad y límites",[177],"La URL debe ser https y resolver a una dirección pública: rechazamos localhost, redes privadas, link-local y direcciones de metadatos de nube (al registrar y en cada entrega). No seguimos redirecciones (un 3xx cuenta como fallo).Headers extra: Wagend-Event (tipo) y Wagend-Delivery (id de la entrega). Cada intento se firma con un timestamp nuevo.Hasta 10 endpoints por workspace. Tras 10 fallos consecutivos el endpoint se desactiva (reactivalo con PATCH \u002Fv1\u002Fwebhook-endpoints\u002F{id} y {\"active\": true}).POST \u002Fv1\u002Fwebhook-endpoints\u002F{id}\u002Fping envía un evento de prueba webhook.ping; POST \u002Fv1\u002Fwebhook-endpoints\u002F{id}\u002Frotate-secret genera un secreto nuevo (se muestra una sola vez; el anterior deja de valer al instante).Con API key usá el scope webhooks:manage. El log está en GET \u002Fv1\u002Fwebhook-endpoints\u002F{id}\u002Fdeliveries y el reenvío en POST …\u002Fdeliveries\u002F{delivery_id}\u002Fresend. html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"id":182,"title":181,"titles":1346,"content":1347,"level":217},[],"Clientes tipados generados desde el contrato OpenAPI: cómo usarlos hoy desde el repositorio, con ejemplos de reserva, errores, paginación e idempotencia. Fiuit tiene dos SDK que se generan a partir del contrato packages\u002Fopenapi\u002Fopenapi.yaml, así que sus tipos siempre siguen la API. Los SDK todavía no están publicados en npm ni en PyPI (Próximamente). Hoy se usan desde el repositorio, como se explica abajo. Si preferís no depender de ellos, la API REST funciona con cualquier cliente HTTP.",{"id":1349,"title":1350,"titles":1351,"content":1352,"level":223},"\u002Fdocs\u002Fapi\u002Fsdks#typescript","TypeScript",[181],"El cliente (packages\u002Fsdk-ts) es un envoltorio liviano sobre fetch con tipos de todas las rutas.",{"id":1354,"title":1355,"titles":1356,"content":1357,"level":369},"\u002Fdocs\u002Fapi\u002Fsdks#instalar-desde-el-repositorio","Instalar desde el repositorio",[181,1350],"cd packages\u002Fsdk-ts\nnpm ci\nnpm run build          # genera dist\u002F En tu proyecto, instalalo desde esa carpeta: npm install \u002Fruta\u002Fa\u002Fwagendapp\u002Fpackages\u002Fsdk-ts",{"id":1359,"title":1360,"titles":1361,"content":1362,"level":369},"\u002Fdocs\u002Fapi\u002Fsdks#reservar-un-horario","Reservar un horario",[181,1350],"import { createWagendClient, WagendError } from \"@wagend\u002Fsdk\";\n\nconst api = createWagendClient({\n  baseUrl: \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\",\n  apiKey: process.env.WAGEND_API_KEY!, \u002F\u002F wg_live_xxx\n});\n\ntry {\n  const { data: services } = await api.GET(\"\u002Fservices\");\n  const serviceId = services!.data![0].id!;\n\n  const { data: slots } = await api.GET(\"\u002Fslots\", {\n    params: { query: { service_id: serviceId, from: \"2026-10-15T08:00:00-03:00\", to: \"2026-10-15T13:00:00-03:00\" } },\n  });\n  const slot = slots!.data[0];\n\n  \u002F\u002F Pre-reserva de 10 minutos\n  const { data: hold } = await api.POST(\"\u002Fholds\", {\n    params: { header: { \"Idempotency-Key\": crypto.randomUUID() } },\n    body: { service_id: serviceId, start: slot.start, party_size: 1, resource_ids: slot.resource_ids },\n  });\n\n  \u002F\u002F Confirmación con los datos del cliente\n  const { data: booking } = await api.POST(\"\u002Fholds\u002F{id}\u002Fconfirm\", {\n    params: { path: { id: hold!.id! }, header: { \"Idempotency-Key\": crypto.randomUUID() } },\n    body: { customer: { name: \"Carlos\", phone: \"+5491155550000\", locale: \"es\" } },\n  });\n  console.log(booking!.status); \u002F\u002F \"confirmed\"\n} catch (err) {\n  if (err instanceof WagendError) {\n    console.error(err.status, err.code, err.retryAfter);\n  } else {\n    throw err;\n  }\n} Autenticación: el cliente agrega Authorization: Bearer solo.Idempotencia: en toda escritura agrega una Idempotency-Key si no pasás una. Para reintentar una operación, pasá vos la misma clave en los dos intentos (vale 24 horas). El tipo de TypeScript la declara en params.header para las rutas que la exigen.Errores: toda respuesta que no sea 2xx lanza WagendError con .status, .code, .problem (RFC 9457) y .retryAfter (segundos, en 429).",{"id":1364,"title":1242,"titles":1365,"content":1366,"level":369},"\u002Fdocs\u002Fapi\u002Fsdks#paginación",[181,1350],"let cursor: string | undefined;\ndo {\n  const { data: page } = await api.GET(\"\u002Fbookings\", { params: { query: { limit: 50, cursor } } });\n  for (const booking of page?.data ?? []) console.log(booking.id);\n  cursor = page?.next_cursor ?? undefined;\n} while (cursor);",{"id":1368,"title":1369,"titles":1370,"content":1371,"level":369},"\u002Fdocs\u002Fapi\u002Fsdks#clientes-y-acciones","Clientes y acciones",[181,1350],"\u002F\u002F Buscar y crear clientes (scopes customers:read y customers:write)\nconst { data: found } = await api.GET(\"\u002Fcustomers\", { params: { query: { q: \"carlos\" } } });\nawait api.POST(\"\u002Fcustomers\", { body: { name: \"Ana\", phone: \"+5491155551111\", tags: [\"vip\"] } });\n\n\u002F\u002F Ejecutar una acción de la etapa, por ejemplo asignar una entrega a un repartidor (scope bookings:write).\n\u002F\u002F \"atribuir\" es la clave de esa acción en el modelo de entregas.\nawait api.POST(\"\u002Fbookings\u002F{id}\u002Factions\u002F{key}\", {\n  params: { path: { id: taskId, key: \"atribuir\" }, header: { \"Idempotency-Key\": crypto.randomUUID() } },\n  body: { data: {}, resource_id: courierResourceId },\n}); Las claves de acción (key) las define la configuración de etapas de tu negocio: consultalas con available_actions.",{"id":1373,"title":1374,"titles":1375,"content":1376,"level":223},"\u002Fdocs\u002Fapi\u002Fsdks#python","Python",[181],"El cliente (packages\u002Fsdk-py) usa httpx y modelos Pydantic v2 generados.",{"id":1378,"title":1355,"titles":1379,"content":1380,"level":369},"\u002Fdocs\u002Fapi\u002Fsdks#instalar-desde-el-repositorio-1",[181,1374],"pip install \u002Fruta\u002Fa\u002Fwagendapp\u002Fpackages\u002Fsdk-py\n# o, con uv:\nuv pip install \u002Fruta\u002Fa\u002Fwagendapp\u002Fpackages\u002Fsdk-py",{"id":1382,"title":1360,"titles":1383,"content":1384,"level":369},"\u002Fdocs\u002Fapi\u002Fsdks#reservar-un-horario-1",[181,1374],"from datetime import UTC, datetime\nfrom wagend import Fiuit, WagendError\n\nwith Fiuit(\"https:\u002F\u002Fapi.fiuit.com\u002Fv1\", \"wg_live_xxx\") as api:\n    try:\n        service = api.list_services()[0]\n        slots = api.list_slots(\n            str(service.id), datetime(2026, 10, 15, 8, tzinfo=UTC), datetime(2026, 10, 15, 13, tzinfo=UTC)\n        )\n\n        hold = api.request(\n            \"POST\", \"\u002Fholds\",\n            json={\"service_id\": str(service.id), \"start\": slots[0].start.isoformat(), \"party_size\": 1},\n            idempotency_key=\"reserva-carlos-2026-10-15\",\n        )\n        booking = api.request(\n            \"POST\", f\"\u002Fholds\u002F{hold['id']}\u002Fconfirm\",\n            json={\"customer\": {\"name\": \"Carlos\", \"phone\": \"+5491155550000\"}},\n        )\n        print(booking[\"status\"])\n    except WagendError as err:\n        print(err.status, err.code, err.retry_after) list_services() y list_slots() devuelven modelos tipados. Para el resto de las rutas usá api.request(método, ruta, params=…, json=…); podés validar la respuesta con wagend.models.Idempotencia: las escrituras llevan Idempotency-Key (se genera una si no pasás idempotency_key). Reintentá con la misma clave.Errores: WagendError con .status, .code, .problem y .retry_after (en 429).Paginación: api.paginate(\"\u002Fbookings\", params={\"limit\": 50}) recorre todas las páginas. for booking in api.paginate(\"\u002Fbookings\", params={\"limit\": 50}):\n    print(booking[\"id\"])",{"id":1386,"title":1252,"titles":1387,"content":1388,"level":223},"\u002Fdocs\u002Fapi\u002Fsdks#límites-de-uso",[181],"El límite es por clave y por proyecto. Ante un 429, esperá retry_after \u002F retryAfter segundos antes de reintentar. Ver Convenciones.",{"id":1390,"title":1391,"titles":1392,"content":1393,"level":223},"\u002Fdocs\u002Fapi\u002Fsdks#regenerar-los-sdk","Regenerar los SDK",[181],"Si cambia el contrato, make sdk regenera los dos desde openapi.yaml y make sdk-check falla si quedaron desactualizados. html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"id":186,"title":185,"titles":1395,"content":1396,"level":217},[],"Conectá Claude, ChatGPT o tu propio agente al servidor MCP de Fiuit para buscar horarios, reservar y operar el negocio con tu clave de API. Fiuit incluye un servidor MCP (Model Context Protocol) para que los agentes de IA usen el mismo motor que el bot de WhatsApp: mismas pre-reservas, misma validación y mismo registro de auditoría. El servidor es un cliente fino de la API: cada herramienta llama a la API con tu misma clave, así que el MCP nunca da más permisos que la clave. El servidor está en el repositorio (packages\u002Fmcp) y hoy lo corrés vos. El servidor alojado en mcp.fiuit.com todavía no está desplegado: es Próximamente. La autenticación con OAuth también.",{"id":1398,"title":1399,"titles":1400,"content":1401,"level":223},"\u002Fdocs\u002Fmcp#correr-el-servidor","Correr el servidor",[185],"Necesitás Python 3.12+ y uv. cd packages\u002Fmcp\nuv sync\nWAGEND_API_URL=https:\u002F\u002Fapi.fiuit.com MCP_PORT=8700 uv run python -m wagend_mcp\n# escucha en http:\u002F\u002F127.0.0.1:8700\u002F (Streamable HTTP) Variables: VariablePara quéWAGEND_API_URLURL de la API (por defecto https:\u002F\u002Fapi.fiuit.com)MCP_TOOLSETSConjuntos a exponer: booking, admin, tasks, payments, customers, inbox, finance (por defecto los siete)MCP_HOST, MCP_PORTDónde escucha (por defecto 127.0.0.1:8700)MCP_ALLOWED_HOSTSHosts permitidos (protección contra DNS rebinding)",{"id":1403,"title":1404,"titles":1405,"content":1406,"level":223},"\u002Fdocs\u002Fmcp#conectar-un-cliente","Conectar un cliente",[185],"La autenticación es una clave de API en el header Authorization. Sin una clave con formato válido, el servidor responde 401 antes de entrar al protocolo. Con Claude Code: claude mcp add --transport http wagend http:\u002F\u002F127.0.0.1:8700\u002F \\\n  --header \"Authorization: Bearer wg_live_xxx\" O con la configuración JSON de cualquier cliente que soporte HTTP: {\n  \"mcpServers\": {\n    \"wagend\": {\n      \"type\": \"http\",\n      \"url\": \"http:\u002F\u002F127.0.0.1:8700\u002F\",\n      \"headers\": { \"Authorization\": \"Bearer wg_live_xxx\" }\n    }\n  }\n} Para probarlo sin un agente: npx @modelcontextprotocol\u002Finspector (transporte Streamable HTTP, la misma URL y el header).",{"id":1408,"title":1409,"titles":1410,"content":1411,"level":223},"\u002Fdocs\u002Fmcp#herramientas","Herramientas",[185],"Las herramientas de tareas y cobros solo aparecen en la lista si la clave tiene el scope que necesitan (una clave sin permisos de cobros no las ve ni puede usarlas). En el resto, cada una funciona solo si la clave tiene el scope; si no, devuelve el error 403 de la API. Las escrituras quedan auditadas con actor mcp. Reservas (booking): para asistentes que reservan en nombre de un cliente. HerramientaScopeHacelist_servicesconfig:readServicios con duración y preciofind_slotsslots:readHorarios disponibles de un servicio entre dos fechashold_slotbookings:writePre-reserva de 10 minutosconfirm_bookingbookings:writeConfirma una pre-reserva con los datos del clientecancel_booking, reschedule_bookingbookings:writeGestiona una reserva existenteget_bookingbookings:readDetalle de una reserva Administración (admin): para que el dueño opere el negocio desde su asistente de IA. HerramientaScopeHacelist_resourcesconfig:readEquipo, salas, máquinas y gruposlist_todaybookings:readReservas del díablock_timeconfig:write y bookings:readCierra días completos de un recurso (máx. 31). No cancela reservas existentes: las devuelve para que una persona decidacreate_service, update_serviceconfig:writeCrea o cambia un servicio, con su formulario de reservaupdate_scheduleconfig:writeCambia el horario semanal o la zona horariaget_statsbookings:readReservas, ocupación y ausencias por recursoget_service_stages, list_service_stage_versions, get_service_stage_versionconfig:readEtapas, salidas y requisitos por servicio; historial de versionesvalidate_service_stagessettings:writeValida sin escribirupdate_service_stagessettings:writeCrea una versión tras la vista previa y confirmaciónrevert_service_stagesconfig:read + settings:writeCrea otra versión a partir de la elegida; conserva el historialget_stage_templates, get_base_statesconfig:readPlantillas copiables y estados fijos del motor Tareas (tasks): tareas con y sin horario, el \"por agendar\" y la cola. HerramientaScopeHacelist_tasksbookings:read (y payments:read_balance si pedís saldo)Lista tareas por estado, por agendar (scheduling_state=pending), sin asignar (unassigned=true), cola, origen (origin=conversation es el pedido por chat) y, opcionalmente, con su saldo y filtro por estado de pago de la páginacreate_taskbookings:writeCrea una tarea con horario, de cola o por agendar sin horario (schedule_later=true)schedule_taskbookings:writeDa horario a una tarea sin horario, o cambia el que tiene; la API valida disponibilidadassign_taskbookings:writeAsigna personas o recursos a una tarea Cobros (payments): cobros manuales y saldos. Los saldos los calcula siempre la API; el MCP no suma ni resta. HerramientaScopeHacerecord_paymentpayments:recordRegistra un cobro manual (efectivo, transferencia u otro), opcionalmente repartido entre tareasvoid_paymentpayments:voidAnula un cobro, con motivo obligatorioapply_refund_due_to_accountpayments:adjust«Usar para otra deuda»: un pago tardío separado «a devolver» (refund_due) pasa al saldo del cliente y cubre sus deudas más antiguas. Exige confirm=true; la API lo rechaza con un reclamo abierto en Mercado Pagoget_task_balancepayments:read_balanceSaldo de una tarea y, si querés, su historial de cobrosget_customer_accountcustomer_balance:read (y customer_account:read para el detalle)Cuenta corriente del cliente: saldo, pagos a cuenta y deudas; con include_movements=true, desglose por tarea y cobrosget_commissionscommissions:readComisiones del equipo calculadas por la API sobre lo cobrado: con day, el día por persona (cobrado por método, propinas, comisión, ajustes y caja); sin day, el reporte entre start y end. Solo lectura | list_prepaid_plans | prepaid:read | Paquetes (N sesiones con vencimiento) y planes de club (N por mes) del catálogo, con precio, valor por unidad y cupo por día\u002Ffranja |\n| get_customer_plans | prepaid:read | Paquetes y club de un cliente: unidades que le quedan, reservadas, vencimiento y cuota adeudada |\n| sell_prepaid_plan | prepaid:sell y payments:record | Vende un plan cobrado en mano (efectivo, transferencia u otro). Exige confirm=true |\n| renew_prepaid_plan | prepaid:sell y payments:record | Registra el pago del mes de un club cobrado en mano. Exige confirm=true |\n| cancel_prepaid_plan | prepaid:sell (reembolso: también payments:void y payments:record) | Cancela y libera las sesiones de tareas futuras; con refund=true devuelve lo no consumido del período vigente de un plan cobrado en mano (lo vencido se pierde). Exige confirm=true |\n| extend_prepaid_plan | prepaid:sell | Extiende a mano el vencimiento de un paquete o club (o reabre un paquete vencido). Al vencer, lo no usado se pierde. Exige confirm=true |\n| remove_task_plan | prepaid:sell | Quita el plan de una tarea: libera la unidad y la tarea vuelve a su valor normal. Hace falta antes de cambiarle el cliente o el servicio. Exige confirm=true | record_payment y void_payment mueven dinero: exigen confirm=true y, sin él, no ejecutan la operación monetaria (el protocolo puede consultar GET \u002Fme). Pasá siempre idempotency_key para reintentar sin cobrar dos veces; los límites de monto y la detección de duplicados son los de la API. received_by es la membresía de quien recibió el dinero: con una clave de API es obligatorio. La preparación sin confirm devuelve idempotency_key; la confirmación exige esa clave o una del agente (1-128 caracteres). Reutilizala con el mismo destino y payload en todos los reintentos, incluso si se pierde la respuesta. Una operación nueva requiere otra clave, aunque el cobro sea idéntico. Por defecto, list_tasks omite contactos, dirección exacta, coordenadas, notas y formulario. include_sensitive=true solicita el detalle y exige además customers:read. Los movimientos de get_customer_account y el historial de get_task_balance omiten nombres de receptores, notas y motivos; el mismo parámetro exige además payments:read. Las claves mode=test solo ven herramientas de lectura. Las escrituras de configuración, de tareas y de cobros exigen confirm=true. Sin él, la herramienta no ejecuta la escritura (puede consultar datos para la vista previa): devuelve confirmation_required con lo que enviaría, para que el agente se lo muestre a una persona y repita con la confirmación.",{"id":1413,"title":1414,"titles":1415,"content":1416,"level":223},"\u002Fdocs\u002Fmcp#ejemplos-de-pedidos","Ejemplos de pedidos",[185],"\"Reservame un corte con Juan mañana a la mañana, a nombre de Carlos.\"\"Bloqueá la máquina de láser el lunes que viene por mantenimiento y decime qué reservas quedan afectadas.\"\"¿Cuántas ausencias tuvimos este mes?\"\"Mostrame las tareas sin asignar y dales horario mañana a las 10.\"\"Registrá un cobro en efectivo de 50.000 a Ana por su última tarea y decime el saldo.\"",{"id":1418,"title":1419,"titles":1420,"content":1421,"level":223},"\u002Fdocs\u002Fmcp#docs-para-llms","Docs para LLMs",[185],"\u002Fllms.txt lista todas las páginas de la documentación.\u002Fllms-full.txt contiene la documentación completa en Markdown. Etapas por servicio: las herramientas de un servicio requieren service_id. update_service_stages valida antes de previsualizar; confirm=true crea versión. revert_service_stages crea otra versión (lectura config:read y escritura settings:write). validate_service_stages, get_stage_templates y get_base_states completan la configuración. MCP incorpora get_work_item_next_steps, move_work_item_stage y use_work_item_tool. Las escrituras requieren confirm=true e Idempotency-Key. complete_task se elimina. Cobro electrónico pendiente F4-29. get_work_item_stage_history (scope bookings:read) lee el historial inmutable de etapas (máximo 100). Los scopes: lectura bookings:read; mover y usar herramientas bookings:write (más payments:record si hay cobro); editar etapas del servicio settings:write. Un 403 (permiso o scope), 409 (stage_conflict, already_claimed) o 422 (stage_requirements_missing) llega tal cual al agente; un reintento con la misma idempotency_key y cuerpo repite el resultado sin duplicar. Wagy explica la capacidad vigente y el panel incluye Siguiente paso y el editor de etapas. Los efectos habilitados se encolan vía outbox; esto no acredita entrega al cliente. Las confirmaciones conservan título y cuerpo en los tres idiomas. La API admite hasta 42 etapas para preservar las identidades anteriores y las canónicas del sistema. Las canónicas aisladas no añaden acciones ni permisos; las salidas configuradas conservan la validación del grafo. Validar, guardar y restaurar aceptan esas configuraciones migradas. update_service admite payment_requirement: required|optional|off: muestra una propuesta y con confirm=true aplica el mismo PATCH del catálogo (config:write). Cambiar la regla crea una versión auditada y actualiza payment en todas las etapas completed; conserva otros requisitos. Con payments_enabled=false explícito no exige resolver cobro ni borra saldos (cambio respecto de F3-177).",{"id":1423,"title":1424,"titles":1425,"content":1426,"level":223},"\u002Fdocs\u002Fmcp#mercado-pago","Mercado Pago",[185],"Brasil y Argentina conectan solo con OAuth. Chile, Uruguay, Colombia, México y Perú conectan solo con token desde Pagos, sin comisión Fiuit. Paraguay no ofrece Mercado Pago. Las cuentas existentes se conservan. Con cuenta de producción y servicio con seña, BRL\u002FARS generan un link de pago que vence antes que la reserva temporal. En Brasil, Pix se paga dentro de Mercado Pago. El portal muestra el link y el chat lo envía por la conversación disponible. La reserva queda esperando seña hasta verificar el pago. El prepago aplicado cubre o reduce la seña. Un pago tardío exige revisión del equipo: no reconfirma ni devuelve dinero automáticamente. Un intento rechazado o cancelado permite volver a intentar el checkout. Si un pago tardío deja dinero sin aplicar en revisión, la reserva pendiente vence y libera el horario; el recibo y el aviso se conservan. La conciliación detecta pagos adicionales también cuando llegan juntos en la búsqueda de Mercado Pago. Un cobro tardío, devuelto o con contracargo sin seña aplicada conserva su recibo y revisión al liberar el horario. Un snapshot local cancelado no prueba ausencia de dinero: exige consulta final. La gracia de 24 horas por pérdida de credenciales solo libera una reserva sin cobertura aplicada ni enlaces reemplazados sin verificar. La disponibilidad de MP incluye country (país de cobro según moneda del negocio) aun sin cuenta; Pix solo BR. Sin nuevas herramientas, scopes ni acciones de reembolso. Antes de vencer una reserva, el worker concilia todos sus enlaces electrónicos pendientes de verificación, incluidos los reemplazados y cancelados por cambio de importe, aunque su reintento esté pospuesto. Si alguna consulta falla o falta acceso a un enlace reemplazado, conserva el horario. Los recibos ya verificados conservan su estado financiero. Un pago a tiempo del enlace anterior se aplica aunque sea parcial: reduce el pendiente y genera un enlace por la diferencia. La reserva permanece esperando seña y conserva el horario; el enlace por diferencia conserva el vencimiento original y nunca pasa de dos horas antes del turno. Al agotarse ese plazo queda en revisión, sin más links ni avisos al cliente; owner\u002Fmanager recibe un aviso al retener el parcial. Confirmar exige cubrir el total. La falta posterior de credenciales no elimina la cobertura aplicada. El equipo debe completar el cobro o resolver la reserva; no hay devolución automática. Checkout Pro recibe solo contacto y descripción conocidos. El descriptor se normaliza a letras y números ASCII, sin acentos ni símbolos, con hasta 13 caracteres. El retorno abre el portal privado del cliente mediante su enlace existente; si no existe uno vigente o fue revocado, vuelve a \u002Fpayment-return, una página neutra sin datos del cliente. El retorno nunca crea ni revoca portales. El token queda en el fragmento y no confirma ningún pago. El receptor exige HTTPS público y rechaza .test, .example, .invalid y .localhost. Los tests habilitan explícitamente sus dominios reservados; producción no lo hace. Un POST de creación ambiguo libera automáticamente el lugar tras siete días de búsquedas vacías exitosas, con aviso al negocio y auditoría. Error, pago observado o pérdida de credenciales reinicia esa ventana; no se deduce ausencia de dinero sin acceso. Owner\u002Fmanager puede elegir «Liberar el lugar» junto a la revisión: cancelación auditada y confirmada que conserva los cobros, sin devolución. Usa tasks:work y payments:accounts_configure en sesión de panel; no hay tool de liberación ni API key autorizada para ese motivo.",{"id":1428,"title":1429,"titles":1430,"content":1431,"level":223},"\u002Fdocs\u002Fmcp#evaluaciones-después-del-servicio","Evaluaciones después del servicio",[185],"get_feedback(kind, identifier) (bookings:read): booking, service, customer, resource; 0–100. get_feedback_settings (config:read). El dueño puede activar evaluaciones al completar una tarea: formulario configurable, enlace de un solo uso, marca de la empresa e indicadores de satisfacción con muestra mínima. Los comentarios respetan permisos de privacidad. Una puntuación baja entra en atención y genera aviso por email y Telegram, según preferencias y disponibilidad. Apagado por defecto; el envío depende del canal y de su ventana. La entrega puede repetir el mismo enlace después de una caída del worker; la respuesta sigue siendo única. F3-143 incorpora estado de admisión en lecturas de conversaciones de la API. El Inbox sigue excluido del MCP: bloquear\u002Fliberar contactos exige sesión owner\u002Fmanager en el panel (contacts:moderate). No hay una tool externa de moderación ni desafío anti-bot en esta entrega inicial. La política de Telegram se configura en el panel o mediante propuestas confirmadas de Wagy. WebChat puede exigir Turnstile al abrir sesión. Son superficies públicas\u002Fpanel, sin scopes de API key: MCP no abre sesiones WebChat ni modera contactos. La revisión con una seña electrónica ya aplicada no dispara consultas finales repetidas. Los cobros restantes se concilian con reintentos acotados; los webhooks verificados siguen procesándose. Una creación ambigua usa espera exponencial hasta un día entre consultas durante la ventana de siete días de búsquedas vacías exitosas; la liberación ocurre en la siguiente consulta, como máximo un día después de cumplir la ventana. Errores, pagos observados o credenciales perdidas reinician la evidencia vacía. Los turnos guiados, deshacer y reiniciar la entrevista de alta requieren sesión owner y CSRF del panel; no son herramientas MCP. La API pública de setup está pendiente (F3-220). confirm_booking aplica las guardas vigentes del core: un hold pendiente cuyo servicio fue retirado devuelve 409 service_inactive. Una confirmación ya comprometida conserva su replay. Turnos, deshacer y reiniciar la entrevista requieren sesión owner y CSRF; siguen fuera de MCP. Etapas por servicio: las herramientas de un servicio requieren service_id. update_service_stages valida antes de previsualizar; confirm=true crea versión. revert_service_stages crea otra versión (lectura config:read y escritura settings:write). validate_service_stages, get_stage_templates y get_base_states completan la configuración. El ejecutor nuevo y sus herramientas operativas siguen pendientes. Las confirmaciones conservan título y cuerpo en los tres idiomas. La API admite hasta 42 etapas para preservar las identidades anteriores y las canónicas del sistema. Las canónicas aisladas no añaden acciones ni permisos; las salidas configuradas conservan la validación del grafo. Validar, guardar y restaurar aceptan esas configuraciones migradas. Los formularios y efectos que convergen en una etapa se conservan completos al migrar: hasta 1024 campos escalares y 512 efectos por etapa, con configuración total de hasta 256 KiB. Validar, guardar sin cambios y restaurar aceptan esas uniones. Soltar desde una etapa confirmada cuenta como camino a pendiente y vencimiento al validar el grafo, sin añadir salidas ni permisos. El ejecutor nuevo y el disparo uniforme de efectos siguen pendientes. La revisión y fusión de identidad de clientes (F3-154) solo está disponible para sesiones owner\u002Fmanager con CSRF en el panel. MCP no ofrece fusión por contactos declarados; coincidencias no verifican identidad. Códigos y fusión con cobros siguen pendientes. Las reglas de reconfirmación y alerta por falta de respuesta (F3-75) se configuran por la API de automatizaciones y siguen excluidas de MCP. Solo avisan tras una solicitud enviada sin respuesta. No hay una tool MCP para responder reconfirmaciones ni liberar horarios por silencio. CSV de productos (F3-153): export_products_csv(template=false), preview_products_csv(csv) y confirm_products_import(import_id, confirm=false) en toolset admin; scope products:write, incluso para exportar. La vista previa no cambia productos. Confirmar exige confirm=true, es atómico e idempotente por ID (resultado retenido 7 días); una vista previa vence en 30 minutos y cambios de catálogo\u002Fmoneda requieren repetir. Máximo 1 MiB \u002F 2000 filas; UTF-8, precios con regla única (PYG\u002FCLP enteros; BRL «1,500» ambiguo). Wagy dirige el archivo al panel; no confirma CSV por chat.",{"id":1433,"title":1434,"titles":1435,"content":1436,"level":223},"\u002Fdocs\u002Fmcp#operaciones-del-negocio-f4-45","Operaciones del negocio (F4-45)",[185],"El servidor del repositorio agrega 76 herramientas: clientes\u002Fdirecciones (customers), Inbox (inbox),\nfinanzas solo lectura (finance), transiciones de tarea (tasks) y catálogo, horarios, automatizaciones\ny conocimiento JSON (admin). Los siete conjuntos se habilitan por defecto. tools\u002Flist publica cada herramienta con su scope y los esquemas de path (IDs de ruta), query\n(filtros) y body (comando JSON). No tenés que pasar una URL ni un proyecto. Las nuevas escrituras\nmuestran el envío previsto y una clave; repetí con confirm=true e idempotency_key estable. La API\nvalida permisos, requisitos y disponibilidad al confirmar; la vista previa no garantiza éxito. Área \u002F ejemplosScope baselist_customers, get_customer, direcciones, resumen e historialcustomers:readcreate_customer, update_customer, guardar\u002Fborrar direccióncustomers:writelist_conversations, list_conversation_messages, contadoresmessages:readsend_conversation_message, modo, resolver, leído, intención y abrir conversaciónmessages:writemove_work_item_stage, use_work_item_tool, quitar horario, metadata e ítemsbookings:writeHistorial, comentarios, adjuntos y ubicación de tareabookings:readDetalle de producto \u002F categorías y sugerenciasproducts:read \u002F products:writeHorarios, zonas, recursos, automatizaciones y conocimientoconfig:read \u002F config:writeResumen, informes, deuda, cuentas, clientes y previsión financierosfinance:analyzeDisponibilidad\u002Fmovimientos financieros; caja; configuración de cajapayments:read; cash:read; cash:configure Clientes omiten nombres, contactos, documentos y direcciones por defecto; las otras vistas sensibles\nomiten texto libre y contactos. include_sensitive=true exige el scope de lectura que indica cada\nherramienta, además del scope base; para mensajes y comentarios habilita su contenido. Las finanzas\nconservan importes, advertencias y estimaciones de la API. Una acción que cobre necesita además el\npermiso financiero que exige el core: bookings:write no basta para cobrar. Las exclusiones bajan de 134 a 58. No hay equivalencia completa con el panel: 26 rutas aún no\nadmiten API key (comentarios de escritura, resúmenes de conversación y otras; seguimiento F4-47).\nTambién quedan fuera sesión\u002Fcampana personal, SSE, simulador, secretos\u002Fwebhooks, transferencias\nbinarias\u002FCSV masivo y nuevas escrituras de dinero. Consultá el catálogo con tu clave para saber qué\npodés usar. La respuesta de un mensaje puede quedar pending: eso no confirma entrega al cliente.",{"id":1438,"title":1439,"titles":1440,"content":1441,"level":369},"\u002Fdocs\u002Fmcp#avisos-al-cliente-y-bitácora","Avisos al cliente y bitácora",[185,1434],"Configurá avisos por servicio para pedidos sin horario, asignación, cambios de datos y progreso. Comienzan apagados. Consultá intentos enviados, omitidos, diferidos o fallidos en Configuración, Actividad y la ficha del cliente. La bitácora conserva 90 días sin copiar mensajes ni datos de contacto; enviado no confirma entrega. Wagy y MCP consultan los mismos resultados. list_customer_notice_deliveries, get_customer_notice_policies: config:read. update_customer_notice_policy: config:write, confirm=true. PUT y revert conservan la regla de cobro vigente del catálogo en todas las etapas completed. Volver a guardar payment_requirement repara versiones divergentes; una restauración histórica no cambia el cobro. La revisión de una reserva vencida con enlaces reemplazados comparte la espera creciente de toda la reserva, hasta un día. Cada consulta final lee todas las preferencias pendientes de resolución; un error impide liberar y reinicia la evidencia vacía. Los webhooks verificados siguen activos. El enlace vence 15 minutos antes que la reserva; si el plazo es corto, el margen es la mitad del tiempo disponible, con un mínimo de 5 minutos. La página y el chat muestran la hora del enlace. La reserva conserva su propio plazo para verificar aprobaciones demoradas. Un estado local expired no bloquea un pago verificado y aprobado a tiempo: cubre la seña si la reserva sigue pendiente; si ya está cerrada o el pago llegó tarde, conserva el dinero y solicita revisión, sin reabrir ni devolver automáticamente. Si el enlace viviría menos de 5 minutos (con el margen mínimo, menos de 10 minutos hasta el plazo de la reserva), no se crea: queda el cobro manual. Un pago tardío con el lugar ya liberado queda separado «a devolver» (refund_due) en la tarea, en la cuenta del cliente y en el Financiero, con un aviso al equipo por cada pago: no se descuenta de otras deudas del cliente hasta que llega la devolución de Mercado Pago o el equipo (owner\u002Fmanager) lo pasa al saldo con «Usar para otra deuda» (auditado). Con un reclamo abierto en Mercado Pago (in_mediation) no se marca «a devolver»: no devolver hasta que se resuelva. Nada es automático. Las unidades reservadas también se pierden al vencer: la tarea vuelve al precio normal y el equipo recibe un aviso. Un fallo de consumo devuelve prepaid_consumption_failed y conserva la tarea sin completar. Primero quitá el plan para ajustar el importe o el cobro; las notas internas sí se editan. Si la ventana vence durante el envío, se intenta otro canal utilizable del mismo cliente. La marca no-se-pudo-avisar tiene un lugar reservado además de las veinte etiquetas de negocio, sin reemplazarlas. Reconfirmaciones y pedidos de reseña conservan su conversación y no cambian de canal.",{"id":1443,"title":392,"titles":1444,"content":1445,"level":223},"\u002Fdocs\u002Fmcp#pausar-y-duplicar",[185],"Pausar deja de ofrecer el servicio para pedidos nuevos en bot, reserva pública, Wagy y MCP. Las tareas ya agendadas siguen su curso normal. Reactivar vuelve a ofrecerlo. Pausar y desactivar son la misma acción. En el detalle abrí ⋯ → Duplicar o Pausar. En escritorio también hay un menú en la lista. Wagy propone ambas acciones y espera la confirmación del plan. MCP permite pausar con update_service(active=false, confirm=true); duplicar aún no tiene herramienta MCP. API: POST \u002Fv1\u002Fservices\u002F{id}\u002Fduplicate, Idempotency-Key, config:write; settings:write para copiar etapas. html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":190,"title":189,"titles":1447,"content":1448,"level":217},[],"Recetas de API (clientes, tareas, acciones, webhooks) y cómo modelar una barbería, estética, clínica, restaurante y entregas.",{"id":1450,"title":1451,"titles":1452,"content":1453,"level":223},"\u002Fdocs\u002Frecipes#recetas-de-api","Recetas de API",[189],"Todas usan $WAGEND_KEY como en el inicio rápido.",{"id":1455,"title":1456,"titles":1457,"content":1458,"level":369},"\u002Fdocs\u002Frecipes#crear-un-cliente-y-reservarle-de-una-vez","Crear un cliente y reservarle de una vez",[189,1451],"Necesita customers:write y bookings:write. El teléfono es el identificador único del cliente: si ya existe, la API responde 409 customer_exists. curl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fcustomers \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"name\": \"Marina\", \"phone\": \"+5521988887777\", \"locale\": \"pt\", \"tags\": [\"vip\"],\n        \"address\": { \"street\": \"Rua das Flores\", \"number\": \"120\", \"city\": \"Rio de Janeiro\", \"formatted\": \"Rua das Flores 120, Rio de Janeiro\" } }'\n\ncurl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"service_id\": \"svc_corte\", \"start\": \"2026-10-15T09:45:00-03:00\",\n        \"customer\": { \"name\": \"Marina\", \"phone\": \"+5521988887777\" } }' POST \u002Fbookings hace la pre-reserva y la confirmación en una sola llamada.",{"id":1460,"title":1461,"titles":1462,"content":1463,"level":369},"\u002Fdocs\u002Frecipes#leer-lo-que-toca-hoy","Leer lo que toca hoy",[189,1451],"Necesita bookings:read. GET \u002Fwork-items es la misma consulta que usa la pantalla Hoy. curl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fwork-items?view=today&limit=50\" \\\n  -H \"Authorization: Bearer $WAGEND_KEY\"\n\n# Solo lo que nadie tomó todavía\ncurl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fwork-items?unassigned=true&limit=50\" \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" Cada tarea trae su stage y sus available_actions.",{"id":1465,"title":1466,"titles":1467,"content":1468,"level":369},"\u002Fdocs\u002Frecipes#asignar-y-cerrar-una-entrega-con-acciones","Asignar y cerrar una entrega con acciones",[189,1451],"Necesita bookings:write. Las acciones llevan el nombre que les da la configuración de etapas del negocio (con el modelo de entregas: atribuir, soltar, iniciar, concluir, nao_estava). Consultalas en available_actions de la tarea. # Asignar la entrega a un repartidor (resource_id es el recurso del repartidor)\ncurl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings\u002F$TASK_ID\u002Factions\u002Fatribuir \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"data\": {}, \"resource_id\": \"'$COURIER_ID'\" }'\n\n# Cerrarla como completada\ncurl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings\u002F$TASK_ID\u002Factions\u002Fconcluir \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"data\": {} }' Si dos personas toman la misma tarea a la vez, gana una y la otra recibe 409 already_claimed. La acción \"Aceptar entrega\" (aceitar) es para el personal desde el panel o Telegram: toma la tarea con el recurso de quien la ejecuta.",{"id":1470,"title":1471,"titles":1472,"content":1473,"level":369},"\u002Fdocs\u002Frecipes#recibir-avisos-por-webhook","Recibir avisos por webhook",[189,1451],"Registrá un endpoint (ver Webhooks) y verificá la firma antes de procesar. Ejemplo mínimo con Express: import express from 'express'\nimport { verifyWagend } from '.\u002Fverify' \u002F\u002F la función de la página de Webhooks\n\nconst app = express()\napp.post('\u002Fwagend', express.raw({ type: 'application\u002Fjson' }), (req, res) => {\n  const raw = req.body.toString('utf8')\n  if (!verifyWagend(raw, req.header('Wagend-Signature') ?? '', process.env.WAGEND_WEBHOOK_SECRET!)) {\n    return res.sendStatus(400)\n  }\n  const event = JSON.parse(raw)\n  if (event.type === 'booking.confirmed') console.log('Nueva reserva', event.data.booking.id)\n  res.sendStatus(200) \u002F\u002F respondé 2xx rápido; los duplicados se descartan por event.id\n})\napp.listen(3000)",{"id":1475,"title":1476,"titles":1477,"content":1478,"level":223},"\u002Fdocs\u002Frecipes#modelos-por-negocio","Modelos por negocio",[189],"Cada receta corresponde a un modelo listo que elegís en el onboarding.",{"id":1480,"title":1481,"titles":1482,"content":1483,"level":223},"\u002Fdocs\u002Frecipes#barbería","Barbería",[189],"Cada barbero es un recurso staff exclusive con su propio horario. Un grupo, customer_choice con round_robin como alternativa. {\n  \"name\": \"Corte\",\n  \"duration_min\": 30,\n  \"step_min\": 15,\n  \"buffer_after_min\": 5,\n  \"price_cents\": 5000,\n  \"requirements\": [{ \"resource_group_id\": \"grp_barbers\", \"units\": 1 }]\n}",{"id":1485,"title":1486,"titles":1487,"content":1488,"level":223},"\u002Fdocs\u002Frecipes#estética","Estética",[189],"Profesionales, máquinas y cabinas son recursos separados. El servicio pide los tres al mismo tiempo, así que el más escaso (casi siempre la máquina) limita la agenda. {\n  \"name\": \"Depilación láser\",\n  \"duration_min\": 45,\n  \"buffer_after_min\": 10,\n  \"price_cents\": 18000,\n  \"deposit_cents\": 5000,\n  \"requirements\": [\n    { \"resource_group_id\": \"grp_professionals\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_lasers\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_rooms\", \"units\": 1 }\n  ]\n}",{"id":1490,"title":1491,"titles":1492,"content":1493,"level":223},"\u002Fdocs\u002Frecipes#clínica","Clínica",[189],"Médico más consultorio, por sede (un workspace por sede). Los datos de salud son sensibles: el asistente nunca pregunta síntomas y el formulario pide solo lo necesario para reservar. {\n  \"name\": \"Consulta\",\n  \"duration_min\": 30,\n  \"buffer_after_min\": 10,\n  \"intake_form\": { \"type\": \"object\", \"properties\": { \"obra_social\": { \"type\": \"string\" } } },\n  \"requirements\": [\n    { \"resource_group_id\": \"grp_doctors\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_offices\", \"units\": 1 }\n  ]\n}",{"id":1495,"title":1496,"titles":1497,"content":1498,"level":223},"\u002Fdocs\u002Frecipes#restaurante","Restaurante",[189],"El salón es un recurso pooled con 40 unidades (cubiertos) por turno. La duración crece con el tamaño del grupo, y los grupos grandes pagan seña. {\n  \"name\": \"Mesa\",\n  \"step_min\": 30,\n  \"duration_by_units\": [\n    { \"max_units\": 2, \"duration_min\": 90 },\n    { \"max_units\": 4, \"duration_min\": 120 },\n    { \"max_units\": 20, \"duration_min\": 150 }\n  ],\n  \"requirements\": [{ \"resource_group_id\": \"grp_dining_room\", \"units\": \"party_size\" }]\n} El modo mesas (mesas puntuales con tamaño mínimo y máximo, y combinaciones) está en el roadmap.",{"id":1500,"title":1501,"titles":1502,"content":1503,"level":223},"\u002Fdocs\u002Frecipes#entregas","Entregas",[189],"Cada zona es un recurso pooled con capacidad por ventana de 2 horas. La zona se elige por código postal, y una regla de corte cierra las ventanas del mismo día al mediodía. {\n  \"name\": \"Entrega\",\n  \"window_mode\": true,\n  \"duration_min\": 120,\n  \"cutoff_rule\": { \"same_day_until\": \"12:00\" },\n  \"intake_form\": { \"type\": \"object\", \"required\": [\"address\", \"postal_code\"] },\n  \"requirements\": [{ \"resource_group_id\": \"grp_zones\", \"units\": 1, \"select_by\": \"postal_code\" }]\n}",{"id":1505,"title":1506,"titles":1507,"content":1508,"level":223},"\u002Fdocs\u002Frecipes#wagy-configurá-tu-negocio-con-wagy","Wagy · Configurá tu negocio con Wagy",[189],"Podés omitir la entrevista y retomar desde el checklist. El equipo y los horarios se revisan en una propuesta antes de confirmar. Los servicios y productos sugeridos quedan como borradores privados hasta completar sus datos y confirmarlos. Si Wagy no puede sugerir, cargalos manualmente. La entrevista usa ranuras compartidas con el formulario: el hito «Armar mi negocio» reúne rubro, equipo, horarios y catálogo revisado en una confirmación. El rubro instala solo vocabulario, etapas y ejemplos inactivos; no crea personas, horarios ni precios de plantilla. Tu plan informa el máximo de recursos antes de proponer. Si hay más de 25 cambios, confirmás Base y luego Catálogo; podés deshacerlos en orden inverso, dentro de 24 horas si nadie los modificó. Los borradores incompletos siguen privados. No envía invitaciones de acceso. Para cambiar alguien existente, usá Equipo por su identidad. Después de confirmar la base, los nombres escritos se proponen en orden para los recursos anónimos intactos de esa plantilla. Si hay más nombres, se crean los recursos que faltan; si hay menos, quedan los anónimos restantes. Recursos editados, vinculados a usuarios o con asignaciones se conservan, y la confirmación vuelve a comprobarlo. El botón de retoma aparece únicamente mientras esa fase está pendiente. Renombrar o reordenar un servicio o producto conserva el origen y el estado de su precio sugerido. Solo editar el control del importe lo confirma. Retomar la configuración reutiliza los horarios personales sin cambios; editar el horario general conserva las excepciones de cada persona. html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"id":199,"title":198,"titles":1510,"content":1511,"level":217},[],"Respuestas rápidas sobre pre-reservas, señas, horarios ocupados, cancelaciones y ausencias. Esta página junta las dudas más comunes sobre cómo se comporta una reserva. Cada respuesta dice qué pasa, por qué y dónde lo ves.",{"id":1513,"title":1514,"titles":1515,"content":1516,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-el-cliente-tarda-en-confirmar","¿Qué pasa si el cliente tarda en confirmar?",[198],"El horario queda guardado por 10 minutos (15 si el servicio pide seña) y después se libera solo. Así otro cliente puede tomarlo y no quedan horarios bloqueados por una conversación abandonada. Lo ves en Trabajo, donde la pre-reserva vencida deja de ocupar el calendario.",{"id":1518,"title":1519,"titles":1520,"content":1521,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-el-horario-se-ocupó-mientras-decidía","¿Qué pasa si el horario se ocupó mientras decidía?",[198],"El sistema no confirma la reserva y propone horarios alternativos. Es la garantía de cero sobreturnos: nadie puede quedarse con un horario que ya tiene dueño. El bot y el chat web le ofrecen al cliente las otras opciones.",{"id":1523,"title":1524,"titles":1525,"content":1526,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-dos-clientes-reservan-a-la-vez","¿Qué pasa si dos clientes reservan a la vez?",[198],"Gana el primero y el segundo recibe alternativas. Si una reserva usa varios recursos y uno de ellos está ocupado, no se reserva ninguno: la reserva se escribe completa o no se escribe.",{"id":1528,"title":1529,"titles":1530,"content":1531,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-el-servicio-pide-seña","¿Qué pasa si el servicio pide seña?",[198],"Al confirmar, la reserva queda esperando la seña y el horario sigue bloqueado. Cuando el proveedor de pagos confirma el cobro, la reserva pasa a confirmada. Mientras tanto la ves en el calendario con el estado de espera. Ver Reservas y pre-reservas.",{"id":1533,"title":1534,"titles":1535,"content":1536,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-reprogramo-una-reserva","¿Qué pasa si reprogramo una reserva?",[198],"Se crea una reserva nueva y se cancela la anterior, enlazadas entre sí. Los recordatorios pendientes se mueven solos al nuevo horario, así que el cliente no recibe avisos del horario viejo.",{"id":1538,"title":1539,"titles":1540,"content":1541,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-cancelo-una-reserva","¿Qué pasa si cancelo una reserva?",[198],"El horario se libera al instante y se cancelan los recordatorios pendientes. El cliente puede recibir el aviso de cancelación si lo tenés activado en Configuración → Avisos al cliente.",{"id":1543,"title":1544,"titles":1545,"content":1546,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-un-cliente-no-se-presenta","¿Qué pasa si un cliente no se presenta?",[198],"Nada automático. El sistema puede sugerir la ausencia, pero la marca una persona del equipo: así nunca se registra una ausencia por error.",{"id":1548,"title":1549,"titles":1550,"content":1551,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-paga-tarde-y-el-lugar-ya-se-liberó","¿Qué pasa si paga tarde y el lugar ya se liberó?",[198],"El dinero queda separado como a devolver en la tarea, la cuenta del cliente y Financiero; no compensa otras deudas. El equipo recibe un aviso por cada pago. Dueño o gerente puede devolver desde Mercado Pago o confirmar Usar para otra deuda. No se reabre ni se devuelve automáticamente.",{"id":1553,"title":1554,"titles":1555,"content":1556,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-si-hay-un-reclamo-abierto-en-mercado-pago","¿Qué pasa si hay un reclamo abierto en Mercado Pago?",[198],"Queda Reclamo abierto: no se pide devolver hasta que se resuelva ni se permite usarlo para otra deuda. Si se resuelve a favor del negocio vuelve a quedar a devolver; si se devuelve al cliente no queda importe pendiente.",{"id":1558,"title":1559,"titles":1560,"content":1561,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#cuándo-vence-el-enlace-y-qué-pasa-si-el-aviso-llega-después","¿Cuándo vence el enlace y qué pasa si el aviso llega después?",[198],"Vence 15 minutos antes que la reserva; con plazos cortos, el margen es la mitad del tiempo disponible y al menos cinco minutos. Sin cinco minutos de vida útil no se crea y queda cobro manual. Un pago verificado aprobado a tiempo aún puede cubrir una reserva pendiente después de vencer el enlace; una reserva cerrada queda en revisión. El recibo conserva ambos plazos.",{"id":1563,"title":1564,"titles":1565,"content":1566,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#dónde-paga-el-cliente-y-volver-de-mercado-pago-confirma-la-reserva","¿Dónde paga el cliente y volver de Mercado Pago confirma la reserva?",[198],"La seña electrónica está disponible en reales y pesos argentinos con Checkout Pro alojado; Pix se paga dentro de Mercado Pago, sin pedir CPF ni tarjeta en Fiuit. Brasil y Argentina conectan por autorización; otros países admitidos usan token y Paraguay no tiene Mercado Pago. Volver abre el portal privado existente o una página neutra; nunca confirma el pago. Pix dentro de ese checkout no tiene un vencimiento separado fijado por Fiuit.",{"id":1568,"title":1569,"titles":1570,"content":1571,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-con-un-pago-parcial-o-un-enlace-incierto","¿Qué pasa con un pago parcial o un enlace incierto?",[198],"Un parcial aprobado a tiempo reduce la seña y puede crear un enlace por la diferencia, sin extender el plazo original ni pasar las dos horas antes del turno. La cobertura aplicada conserva el lugar en revisión. Si no se sabe si se creó el enlace, sólo siete días de consultas vacías exitosas permiten liberar en la siguiente consulta, hasta un día después. Un error o falta de acceso reinicia la evidencia. Dueño o gerente puede confirmar Liberar el lugar desde la tarea: conserva dinero y no devuelve.",{"id":1573,"title":1574,"titles":1575,"content":1576,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#las-señas-retenidas-pagan-comisión-y-cómo-se-atribuye-el-trabajo","¿Las señas retenidas pagan comisión y cómo se atribuye el trabajo?",[198],"Las señas retenidas por ausencia, cancelación o fallo son ingreso del negocio, sin comisión ni cobros sin atribuir. Las demás comisiones se calculan sobre lo cobrado y pertenecen a quien tenía asignada la tarea al completarla; abierta, a quien la tiene hoy. Entre varias personas se reparte por igual. Las propinas quedan aparte. En Financiero → Comisiones, el reporte se calcula al vuelo sin cierre diario; cada tarea cuenta una vez y staff ve sólo lo suyo. Una seña nunca aplicada no cubre el importe ni genera comisión para su tarea original, incluso al devolverla o pasarla a crédito libre. Las tareas vencidas tampoco generan comisión.",{"id":1578,"title":1579,"titles":1580,"content":1581,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qué-pasa-con-la-comisión-si-devuelvo-un-cobro","¿Qué pasa con la comisión si devuelvo un cobro?",[198],"La reversión resta a la misma persona y usa la regla del cobro original, aunque terminó o cambió. Un reembolso parcial electrónico sin detalle de devolución todavía no se descuenta hasta la devolución total: ese caso sigue pendiente. Lo ves en Financiero → Comisiones.",{"id":1583,"title":1584,"titles":1585,"content":1586,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#cómo-se-muestran-los-importes","¿Cómo se muestran los importes?",[198],"Cada proyecto usa el símbolo local de su moneda en todos los idiomas, con sus decimales habituales: reales con R$, guaraníes con ₲ y dólares con US$. El código de moneda queda donde se comparan monedas. Cambia la presentación, no los importes.",{"id":203,"title":202,"titles":1588,"content":1589,"level":217},[],"Respuestas rápidas sobre avisos al cliente, horario de silencio, topes de envío, spam y pausas de canal. Qué pasa con los mensajes que salen y entran por tus canales, y dónde lo ves.",{"id":1591,"title":1592,"titles":1593,"content":1594,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-activo-una-regla-recomendada","¿Qué pasa si activo una regla recomendada?",[202],"Las reglas recomendadas se instalan apagadas. Ninguna regla le escribe a un cliente hasta que la activás con su interruptor en Automatización → Reglas. Cada regla muestra sus últimos envíos con el estado y el motivo si falló.",{"id":1596,"title":1597,"titles":1598,"content":1599,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-un-aviso-tendría-que-salir-de-noche","¿Qué pasa si un aviso tendría que salir de noche?",[202],"Entre las 21:00 y las 08:00 (hora del negocio) no sale nada a clientes: el envío se difiere a la mañana, no se pierde. Antes de salir, el sistema vuelve a revisar la tarea: si se canceló o reprogramó, el aviso viejo se descarta.",{"id":1601,"title":1602,"titles":1603,"content":1604,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-mando-muchos-avisos-juntos","¿Qué pasa si mando muchos avisos juntos?",[202],"Hay un tope de 30 envíos automáticos por hora por proyecto. Los que sobran se escalonan solos para cuidar la línea de WhatsApp.",{"id":1606,"title":1607,"titles":1608,"content":1609,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-un-cliente-pidió-no-recibir-promociones","¿Qué pasa si un cliente pidió no recibir promociones?",[202],"Activá en su ficha No enviar mensajes automáticos de promoción. Eso frena promociones como la reactivación, pero los recordatorios de turnos siguen saliendo, porque son operativos.",{"id":1611,"title":1612,"titles":1613,"content":1614,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-edito-una-tarea-varias-veces-seguidas","¿Qué pasa si edito una tarea varias veces seguidas?",[202],"Si tenés activo el aviso de datos modificados, las ediciones consecutivas se agrupan y el cliente recibe un solo aviso 60 segundos después de la última. Los avisos por servicio comienzan apagados y los configurás en Configuración → Avisos al cliente, donde también ves la bitácora de lo enviado y lo omitido.",{"id":1616,"title":1617,"titles":1618,"content":1619,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-un-contacto-manda-demasiados-mensajes","¿Qué pasa si un contacto manda demasiados mensajes?",[202],"Si un mismo contacto manda más de 15 mensajes en 5 minutos (o 60 en una hora), el bot deja de responderle durante 30 minutos. Los mensajes siguen llegando al Inbox, marcados como posible spam, y podés tocar Reactivar bot antes de tiempo.",{"id":1621,"title":1622,"titles":1623,"content":1624,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-la-ia-gasta-demasiado-de-golpe","¿Qué pasa si la IA gasta demasiado de golpe?",[202],"Si el proyecto supera 300 llamadas a la IA en 10 minutos, la IA se pausa sola y te avisamos. No se reactiva sola, porque podría ser un bucle o un ataque: la reanudás vos en Configuración → Uso de IA cuando revisaste qué pasó.",{"id":1626,"title":1627,"titles":1628,"content":1629,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-diferencia-hay-entre-pausar-el-bot-y-pausar-el-canal","¿Qué diferencia hay entre pausar el bot y pausar el canal?",[202],"Pausar bot guarda los mensajes y los deja en el Inbox para atenderlos a mano, sin gasto de IA. Pausar canal descarta todo lo que llega, pensado para spam o abuso. Ver Pausas y Estado.",{"id":1631,"title":1632,"titles":1633,"content":1634,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-vence-la-ventana-de-instagram-o-ya-hay-veinte-etiquetas","¿Qué pasa si vence la ventana de Instagram o ya hay veinte etiquetas?",[202],"Después de las 24 horas del último mensaje del cliente, incluso si vencen al enviar, el aviso intenta otro canal utilizable del mismo cliente. Sin alternativa, queda No se pudo avisar en la atención de Hoy y en la bitácora: la marca adicional no desplaza las veinte etiquetas del negocio. El equipo la quita tras avisar por su cuenta. Reconfirmaciones SÍ\u002FNO conservan su canal; las reseñas se cancelan sin marcar la tarea. Instagram no admite que el negocio abra una conversación en frío.",{"id":1636,"title":1637,"titles":1638,"content":1639,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#desconectar-instagram-elimina-los-datos","¿Desconectar Instagram elimina los datos?",[202],"Sólo el dueño conecta o desconecta, autorizando en el mismo navegador y proyecto. Desconectar libera la cuenta y conserva el historial; no elimina datos. Una revocación se detecta al enviar, consultar o renovar. La eliminación mediante callback todavía está pendiente; seguí las instrucciones de privacidad.",{"id":1641,"title":1642,"titles":1643,"content":1644,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qué-pasa-si-cambio-el-grupo-del-equipo-o-se-convierte-en-supergrupo","¿Qué pasa si cambio el grupo del equipo o se convierte en supergrupo?",[202],"Se republican las tareas sin asignar en el grupo nuevo y los botones viejos dicen este grupo ya no está vinculado, sin asignar. También se ofrecen tareas libres anteriores al primer vínculo. Tareas asignadas, cerradas, de prueba o sin acción autorizada no se ofrecen. Lo gestionás en Equipo → Accesos. Telegram no garantiza evitar una publicación duplicada si se corta la conexión justo después de enviarla.",{"id":207,"title":206,"titles":1646,"content":1647,"level":217},[],"Respuestas rápidas sobre lo que el bot hace y no hace, cuándo pasa la conversación a una persona y qué pasa con la IA.",{"id":1649,"title":1650,"titles":1651,"content":1652,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#qué-pasa-si-el-cliente-pide-hablar-con-una-persona","¿Qué pasa si el cliente pide hablar con una persona?",[206],"La conversación pasa al Inbox con el estado «Pide una persona» y el bot deja de contestar. Lo mismo ocurre si algo falla. Lo ves en Requiere atención y llega como notificación.",{"id":1654,"title":1655,"titles":1656,"content":1657,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#qué-pasa-si-escribo-yo-en-una-conversación","¿Qué pasa si escribo yo en una conversación?",[206],"Al responder vos, el bot se pausa en esa conversación. Podés devolverla a mano; si pasan 15 minutos sin actividad tuya, el bot retoma solo.",{"id":1659,"title":1660,"titles":1661,"content":1662,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#qué-pasa-si-el-cliente-pregunta-un-precio-o-un-horario-que-el-bot-no-conoce","¿Qué pasa si el cliente pregunta un precio o un horario que el bot no conoce?",[206],"El bot no inventa: horarios, precios y direcciones salen siempre del sistema. Si falta información, le conviene cargarla en la base de conocimiento o la conversación pasa a una persona.",{"id":1664,"title":1665,"titles":1666,"content":1667,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#qué-pasa-si-el-cliente-confirma-con-datos-nuevos","¿Qué pasa si el cliente confirma con datos nuevos?",[206],"Un «sí» enviado junto con datos nuevos no confirma: el bot arma un resumen actualizado y espera otro «sí» posterior. La confirmación siempre es explícita, y cancelar o pedir una persona interrumpe la propuesta.",{"id":1669,"title":1670,"titles":1671,"content":1672,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#qué-pasa-si-el-cliente-manda-varios-mensajes-seguidos","¿Qué pasa si el cliente manda varios mensajes seguidos?",[206],"El bot espera unos segundos de silencio (3, o 5 mientras recoge datos, con un máximo de 12) y responde a todos juntos. Elegís el modo en Automatización → Bot.",{"id":1674,"title":1675,"titles":1676,"content":1677,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#qué-pasa-si-se-acaba-la-cuota-de-ia-del-mes","¿Qué pasa si se acaba la cuota de IA del mes?",[206],"Las funciones con IA se pausan, el bot responde un mensaje fijo y pasa la conversación al Inbox. Calendario, tareas y clientes siguen funcionando. Ves el consumo en Configuración → Uso de IA, con aviso al llegar al 80 %.",{"id":1679,"title":1680,"titles":1681,"content":1682,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#qué-pasa-si-un-cliente-intenta-darle-instrucciones-al-bot","¿Qué pasa si un cliente intenta darle instrucciones al bot?",[206],"Las ignora. El bot no sigue instrucciones escondidas en un mensaje o un archivo, no usa herramientas de administración con un cliente y no ve datos de otro negocio. Ver El bot y la IA.",{"id":1684,"title":1685,"titles":1686,"content":1687,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#qué-pasa-si-el-cliente-mezcla-su-pedido-con-un-tema-ajeno","¿Qué pasa si el cliente mezcla su pedido con un tema ajeno?",[206],"El bot atiende lo del negocio e ignora lo ajeno. Si todo es ajeno, responde un texto fijo con los temas que atiende y cómo pedir una persona; ese rechazo por sí solo no avisa al equipo. Pedir una persona interrumpe cualquier carrito o resumen y lleva al Inbox.",{"id":211,"title":210,"titles":1689,"content":1690,"level":217},[],"Respuestas rápidas sobre tomar y soltar tareas, resultados, permisos del equipo y evidencia de trabajo.",{"id":1692,"title":1693,"titles":1694,"content":1695,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#cuántos-productos-puede-tener-un-pedido","¿Cuántos productos puede tener un pedido?",[210],"Hasta 72 productos (líneas) por pedido. Es un límite del motor de reservas para que cada pedido se guarde y se cobre con el importe exacto. Lo configurás en el servicio, en los límites de productos del formulario.",{"id":1697,"title":1698,"titles":1699,"content":1700,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-si-dos-personas-tocan-tomar-a-la-vez","¿Qué pasa si dos personas tocan «Tomar» a la vez?",[210],"Se la queda la primera y la segunda recibe un aviso. Una tarea nunca se asigna dos veces. La ves asignada en Trabajo y en Hoy de quien la tomó.",{"id":1702,"title":1703,"titles":1704,"content":1705,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-si-quien-tomó-la-tarea-no-puede-hacerla","¿Qué pasa si quien tomó la tarea no puede hacerla?",[210],"Puede soltarla, siempre que no haya empezado: vuelve a Sin asignar para que otra persona la tome.",{"id":1707,"title":1708,"titles":1709,"content":1710,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-si-el-cliente-no-estaba-o-no-quiere-el-pedido","¿Qué pasa si el cliente no estaba o no quiere el pedido?",[210],"Se cierra la tarea con el resultado ausente («no estaba») o rechazada («no quiere»), con un motivo opcional. Queda registrado en la tarea.",{"id":1712,"title":1713,"titles":1714,"content":1715,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-si-una-acción-falla-a-mitad-de-camino","¿Qué pasa si una acción falla a mitad de camino?",[210],"No queda nada a medias: todo lo que hace una acción ocurre junto o no ocurre.",{"id":1717,"title":1718,"titles":1719,"content":1720,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-si-una-persona-del-equipo-intenta-asignar-tareas","¿Qué pasa si una persona del equipo intenta asignar tareas?",[210],"No puede, aunque el botón existiera: una acción nunca da permisos extra. Solo el dueño y el gerente asignan. Ver Roles y permisos.",{"id":1722,"title":1723,"titles":1724,"content":1725,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-datos-del-cliente-ve-el-equipo","¿Qué datos del cliente ve el equipo?",[210],"Una persona del equipo ve las tareas asignadas a ella y las que su grupo puede tomar, pero sin el teléfono ni el email del cliente hasta que la toma. En entregas, antes de tomar solo se ve la zona aproximada.",{"id":1727,"title":1728,"titles":1729,"content":1730,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-con-las-fotos-y-ubicaciones-que-sube-el-equipo","¿Qué pasa con las fotos y ubicaciones que sube el equipo?",[210],"Son privadas: solo las ve quien tiene acceso a esa tarea, los enlaces de descarga vencen a los 60 segundos y se borran a los 30 días por defecto. El dueño o el gerente pueden borrar una ubicación.",{"id":1732,"title":1733,"titles":1734,"content":1735,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-qué-no-veo-una-pestaña-o-un-filtro","¿Por qué no veo una pestaña o un filtro?",[210],"Porque «si no tiene nada, no se ve»: el calendario solo aparece si hay recursos con agenda, el mapa si hay tareas con ubicación, y Mías si tenés agenda propia. Ver Trabajo y acciones.",{"id":1737,"title":1738,"titles":1739,"content":1740,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-si-pauso-o-duplico-un-servicio","¿Qué pasa si pauso o duplico un servicio?",[210],"Siempre podés pausarlo: deja de ofrecerse para nuevos pedidos y las tareas existentes siguen, incluidas reprogramación, ventana, reasignación, completar y cancelar con los mismos controles. Pausar y desactivar son lo mismo. Duplicar crea una copia pausada con horario independiente, sin tareas ni historia; grupos y productos siguen en el catálogo. Las etapas vigentes empiezan en versión uno; sin permiso de edición usa las etapas base y avisa. La copia no conserva el vínculo administrado con el modelo de negocio. Revisá y reactivá en Servicios.",{"id":1742,"title":1743,"titles":1744,"content":1745,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-con-las-unidades-vencidas-o-un-consumo-fallido-del-paquete","¿Qué pasa con las unidades vencidas o un consumo fallido del paquete?",[210],"Lo vencido se pierde, incluidas las unidades reservadas: la tarea vuelve al valor anterior y se avisa al equipo. Antes de completar se valida el vencimiento aunque el proceso automático se demore. Si falla consumir, no se completa ni se cobra; conserva estado y reserva para reintentar. Dueño o gerente puede Extender vencimiento manualmente con motivo en la ficha del cliente.",{"id":1747,"title":1748,"titles":1749,"content":1750,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#puedo-editar-o-reabrir-una-tarea-cubierta-por-un-plan","¿Puedo editar o reabrir una tarea cubierta por un plan?",[210],"No cambia cliente, servicio ni importe y no admite ajustes de cobro; las notas internas sí. Primero Quitar plan en la ficha del cliente. Reabrir una cancelada la deja a precio normal. Reabrir una completada devuelve la unidad y su asignación de cobro; si sigue vigente queda reservada y completar de nuevo consume una sola unidad.",{"id":1752,"title":1753,"titles":1754,"content":1755,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#cómo-se-cobra-o-cancela-un-paquete-o-club","¿Cómo se cobra o cancela un paquete o club?",[210],"El cobro es manual, sin tarjeta recurrente ni Pix Automático por ahora. En la ficha del cliente registrás venta, renovación o cancelación. Cancelar libera reservas y detiene renovaciones; devolver es opcional y sólo devuelve lo no usado del período vigente cobrado a mano. Lo vencido no se devuelve. Si la caja de ese efectivo ya está cerrada, la devolución se bloquea.",{"id":1757,"title":1758,"titles":1759,"content":1760,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qué-pasa-si-no-se-descargan-los-estilos-del-panel","¿Qué pasa si no se descargan los estilos del panel?",[210],"Permanece la pantalla de carga con los colores de tu tema; no se muestra el panel sin estilos. A los ocho segundos ofrece Recargar. Si la descarga termina después, continúa; con movimiento reducido conserva la misma protección.",{"id":1762,"title":1763,"titles":1764,"content":1765,"level":223},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-qué-cambian-las-novedades-entre-el-panel-y-el-sitio","¿Por qué cambian las Novedades entre el panel y el sitio?",[210],"El panel agrupa cambios por entrega y explica dónde están, cómo usarlos y quién tiene permiso. El sitio explica el beneficio para el negocio. Ambos vienen de la misma actualización.",{"id":1767,"title":202,"badge":1768,"body":1769,"description":1924,"extension":1925,"meta":1926,"navigation":1927,"path":203,"rawbody":1928,"seo":1929,"stem":204,"updated":1930,"__hash__":1931},"docs_es\u002Fdocs\u002F13.que-pasa-si\u002F02.avisos-y-canales.md",null,{"type":1770,"value":1771,"toc":1910},"minimark",[1772,1776,1780,1792,1795,1802,1805,1812,1815,1826,1829,1840,1843,1850,1853,1864,1867,1881,1884,1891,1894,1896,1899],[1773,1774,1775],"p",{},"Qué pasa con los mensajes que salen y entran por tus canales, y dónde lo ves.",[1777,1778,1592],"h2",{"id":1779},"qué-pasa-si-activo-una-regla-recomendada",[1773,1781,1782,1783,1787,1788,1791],{},"Las reglas recomendadas se instalan ",[1784,1785,1786],"strong",{},"apagadas",". Ninguna regla le escribe a un cliente hasta que la activás con su interruptor en ",[1784,1789,1790],{},"Automatización → Reglas",". Cada regla muestra sus últimos envíos con el estado y el motivo si falló.",[1777,1793,1597],{"id":1794},"qué-pasa-si-un-aviso-tendría-que-salir-de-noche",[1773,1796,1797,1798,1801],{},"Entre las 21:00 y las 08:00 (hora del negocio) no sale nada a clientes: el envío se ",[1784,1799,1800],{},"difiere"," a la mañana, no se pierde. Antes de salir, el sistema vuelve a revisar la tarea: si se canceló o reprogramó, el aviso viejo se descarta.",[1777,1803,1602],{"id":1804},"qué-pasa-si-mando-muchos-avisos-juntos",[1773,1806,1807,1808,1811],{},"Hay un tope de ",[1784,1809,1810],{},"30 envíos automáticos por hora"," por proyecto. Los que sobran se escalonan solos para cuidar la línea de WhatsApp.",[1777,1813,1607],{"id":1814},"qué-pasa-si-un-cliente-pidió-no-recibir-promociones",[1773,1816,1817,1818,1821,1822,1825],{},"Activá en su ficha ",[1784,1819,1820],{},"No enviar mensajes automáticos de promoción",". Eso frena promociones como la reactivación, pero los ",[1784,1823,1824],{},"recordatorios de turnos siguen saliendo",", porque son operativos.",[1777,1827,1612],{"id":1828},"qué-pasa-si-edito-una-tarea-varias-veces-seguidas",[1773,1830,1831,1832,1835,1836,1839],{},"Si tenés activo el aviso de datos modificados, las ediciones consecutivas se agrupan y el cliente recibe ",[1784,1833,1834],{},"un solo aviso"," 60 segundos después de la última. Los avisos por servicio comienzan apagados y los configurás en ",[1784,1837,1838],{},"Configuración → Avisos al cliente",", donde también ves la bitácora de lo enviado y lo omitido.",[1777,1841,1617],{"id":1842},"qué-pasa-si-un-contacto-manda-demasiados-mensajes",[1773,1844,1845,1846,1849],{},"Si un mismo contacto manda más de 15 mensajes en 5 minutos (o 60 en una hora), el bot deja de responderle durante 30 minutos. Los mensajes siguen llegando al Inbox, marcados como posible spam, y podés tocar ",[1784,1847,1848],{},"Reactivar bot"," antes de tiempo.",[1777,1851,1622],{"id":1852},"qué-pasa-si-la-ia-gasta-demasiado-de-golpe",[1773,1854,1855,1856,1859,1860,1863],{},"Si el proyecto supera 300 llamadas a la IA en 10 minutos, la IA se pausa sola y te avisamos. ",[1784,1857,1858],{},"No se reactiva sola",", porque podría ser un bucle o un ataque: la reanudás vos en ",[1784,1861,1862],{},"Configuración → Uso de IA"," cuando revisaste qué pasó.",[1777,1865,1627],{"id":1866},"qué-diferencia-hay-entre-pausar-el-bot-y-pausar-el-canal",[1773,1868,1869,1872,1873,1876,1877,1880],{},[1784,1870,1871],{},"Pausar bot"," guarda los mensajes y los deja en el Inbox para atenderlos a mano, sin gasto de IA. ",[1784,1874,1875],{},"Pausar canal"," descarta todo lo que llega, pensado para spam o abuso. Ver ",[1878,1879,77],"a",{"href":78},".",[1777,1882,1632],{"id":1883},"qué-pasa-si-vence-la-ventana-de-instagram-o-ya-hay-veinte-etiquetas",[1773,1885,1886,1887,1890],{},"Después de las 24 horas del último mensaje del cliente, incluso si vencen al enviar, el aviso intenta otro canal utilizable del mismo cliente. Sin alternativa, queda ",[1784,1888,1889],{},"No se pudo avisar"," en la atención de Hoy y en la bitácora: la marca adicional no desplaza las veinte etiquetas del negocio. El equipo la quita tras avisar por su cuenta. Reconfirmaciones SÍ\u002FNO conservan su canal; las reseñas se cancelan sin marcar la tarea. Instagram no admite que el negocio abra una conversación en frío.",[1777,1892,1637],{"id":1893},"desconectar-instagram-elimina-los-datos",[1773,1895,1639],{},[1777,1897,1642],{"id":1898},"qué-pasa-si-cambio-el-grupo-del-equipo-o-se-convierte-en-supergrupo",[1773,1900,1901,1902,1905,1906,1909],{},"Se republican las tareas sin asignar en el grupo nuevo y los botones viejos dicen ",[1784,1903,1904],{},"este grupo ya no está vinculado",", sin asignar. También se ofrecen tareas libres anteriores al primer vínculo. Tareas asignadas, cerradas, de prueba o sin acción autorizada no se ofrecen. Lo gestionás en ",[1784,1907,1908],{},"Equipo → Accesos",". Telegram no garantiza evitar una publicación duplicada si se corta la conexión justo después de enviarla.",{"title":1911,"searchDepth":223,"depth":369,"links":1912},"",[1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923],{"id":1779,"depth":223,"text":1592},{"id":1794,"depth":223,"text":1597},{"id":1804,"depth":223,"text":1602},{"id":1814,"depth":223,"text":1607},{"id":1828,"depth":223,"text":1612},{"id":1842,"depth":223,"text":1617},{"id":1852,"depth":223,"text":1622},{"id":1866,"depth":223,"text":1627},{"id":1883,"depth":223,"text":1632},{"id":1893,"depth":223,"text":1637},{"id":1898,"depth":223,"text":1642},"Respuestas rápidas sobre avisos al cliente, horario de silencio, topes de envío, spam y pausas de canal.","md",{},true,"---\ntitle: ¿Qué pasa si…? Avisos y canales\ndescription: Respuestas rápidas sobre avisos al cliente, horario de silencio, topes de envío, spam y pausas de canal.\nupdated: \"2026-10-08\"\n---\n\n\nQué pasa con los mensajes que salen y entran por tus canales, y dónde lo ves.\n\n## ¿Qué pasa si activo una regla recomendada?\n\nLas reglas recomendadas se instalan **apagadas**. Ninguna regla le escribe a un cliente hasta que la activás con su interruptor en **Automatización → Reglas**. Cada regla muestra sus últimos envíos con el estado y el motivo si falló.\n\n## ¿Qué pasa si un aviso tendría que salir de noche?\n\nEntre las 21:00 y las 08:00 (hora del negocio) no sale nada a clientes: el envío se **difiere** a la mañana, no se pierde. Antes de salir, el sistema vuelve a revisar la tarea: si se canceló o reprogramó, el aviso viejo se descarta.\n\n## ¿Qué pasa si mando muchos avisos juntos?\n\nHay un tope de **30 envíos automáticos por hora** por proyecto. Los que sobran se escalonan solos para cuidar la línea de WhatsApp.\n\n## ¿Qué pasa si un cliente pidió no recibir promociones?\n\nActivá en su ficha **No enviar mensajes automáticos de promoción**. Eso frena promociones como la reactivación, pero los **recordatorios de turnos siguen saliendo**, porque son operativos.\n\n## ¿Qué pasa si edito una tarea varias veces seguidas?\n\nSi tenés activo el aviso de datos modificados, las ediciones consecutivas se agrupan y el cliente recibe **un solo aviso** 60 segundos después de la última. Los avisos por servicio comienzan apagados y los configurás en **Configuración → Avisos al cliente**, donde también ves la bitácora de lo enviado y lo omitido.\n\n## ¿Qué pasa si un contacto manda demasiados mensajes?\n\nSi un mismo contacto manda más de 15 mensajes en 5 minutos (o 60 en una hora), el bot deja de responderle durante 30 minutos. Los mensajes siguen llegando al Inbox, marcados como posible spam, y podés tocar **Reactivar bot** antes de tiempo.\n\n## ¿Qué pasa si la IA gasta demasiado de golpe?\n\nSi el proyecto supera 300 llamadas a la IA en 10 minutos, la IA se pausa sola y te avisamos. **No se reactiva sola**, porque podría ser un bucle o un ataque: la reanudás vos en **Configuración → Uso de IA** cuando revisaste qué pasó.\n\n## ¿Qué diferencia hay entre pausar el bot y pausar el canal?\n\n**Pausar bot** guarda los mensajes y los deja en el Inbox para atenderlos a mano, sin gasto de IA. **Pausar canal** descarta todo lo que llega, pensado para spam o abuso. Ver [Pausas y Estado](\u002Fdocs\u002Fchannels\u002Fpauses-and-status).\n\n## ¿Qué pasa si vence la ventana de Instagram o ya hay veinte etiquetas?\n\nDespués de las 24 horas del último mensaje del cliente, incluso si vencen al enviar, el aviso intenta otro canal utilizable del mismo cliente. Sin alternativa, queda **No se pudo avisar** en la atención de Hoy y en la bitácora: la marca adicional no desplaza las veinte etiquetas del negocio. El equipo la quita tras avisar por su cuenta. Reconfirmaciones SÍ\u002FNO conservan su canal; las reseñas se cancelan sin marcar la tarea. Instagram no admite que el negocio abra una conversación en frío.\n\n## ¿Desconectar Instagram elimina los datos?\n\nSólo el dueño conecta o desconecta, autorizando en el mismo navegador y proyecto. Desconectar libera la cuenta y conserva el historial; no elimina datos. Una revocación se detecta al enviar, consultar o renovar. La eliminación mediante callback todavía está pendiente; seguí las instrucciones de privacidad.\n\n## ¿Qué pasa si cambio el grupo del equipo o se convierte en supergrupo?\n\nSe republican las tareas sin asignar en el grupo nuevo y los botones viejos dicen **este grupo ya no está vinculado**, sin asignar. También se ofrecen tareas libres anteriores al primer vínculo. Tareas asignadas, cerradas, de prueba o sin acción autorizada no se ofrecen. Lo gestionás en **Equipo → Accesos**. Telegram no garantiza evitar una publicación duplicada si se corta la conexión justo después de enviarla.\n",{"title":202,"description":1924},"2026-10-08","VjHFRYPIVbuti1boHWzZlr9XPkM2D4r3njYvaW7Ds28",[1933,1935],{"title":198,"path":199,"stem":200,"description":1934,"children":-1},"Respuestas rápidas sobre pre-reservas, señas, horarios ocupados, cancelaciones y ausencias.",{"title":206,"path":207,"stem":208,"description":1647,"children":-1},1791496698785]