---
name: agentes
description: "Create, configure, supervise and talk to a line agent or tagger («agente») that works inside Frepi, with one JSON document (frepi.agent/v1). A chat bot in the owner's own AI is configurar-bot. Spanish triggers: agente, etiquetador, crear agente, configurar, horario, línea, equipo, rutina, por aprobar, hablar con."
license: "Proprietary. Free to use with a Frepi account. See LICENSE."
metadata:
  author: "frepi-ai"
  version: "7"
---

# Agentes

Un agente de línea («agente») atiende los chats de WhatsApp de una o varias líneas del workspace. Todo lo que
la página «Agentes» configura de ella cabe en **un documento JSON estricto**, `frepi.agent/v1`. Este skill dice
cómo leerlo, cambiarlo y aplicarlo, cómo revisar lo que ella pide aprobar y cómo hablarle.

Los nombres de las herramientas son los de MCP (`bi_…`). En el copiloto de Frepi son los mismos sin `bi_`
(`agent_config_get`, `agent_config_apply`…).

Referencias: [esquema](references/esquema.md) (el JSON Schema completo), [ejemplos](references/ejemplos.md)
(cuatro documentos) y [apis](references/apis.md) (las APIs del workspace y el acceso de cada agente). Cárgalas con `bi_get_skill(name="agentes", reference="esquema")`. El nombre anterior de este skill,
`agente-de-linea`, sigue funcionando. Para un etiquetador ve a la sección 5.

## Antes de empezar

- **¿Agente o bot?** Un agente trabaja **dentro de Frepi**, con el modelo de Frepi, y se configura con este skill. Un
  **bot de chats** corre en el asistente de IA del propio dueño o en un script suyo y se configura con
  `bi_get_skill(name="configurar-bot")`. Si la persona dice «bot» o «agente» y no está claro cuál quiere, pregúntale
  antes de seguir.
- **Las herramientas.** Tienen que estar `bi_agent_config_get` y `bi_agent_config_apply` (en el copiloto,
  `agent_config_get` y `agent_config_apply`). Si no están, para aquí: dile a la persona que recargue el conector de
  Frepi en su cliente de IA y que empiece de nuevo. No hagas el trabajo con otras herramientas.
- **Un flujo chatbot que contesta antes que ella** (botones, formulario y reglas que califican y le pasan solo a quien
  califica) va en la sección `flows` de este documento (sección 1). Su receta, el JSON del flujo y cómo se prueba están
  en `bi_get_skill(name="flujo-chatbot")`: léela antes de escribir uno.
- **Crear un agente (o rehacer su trabajo, sus líneas o su equipo) empieza con la entrevista** de la sección 3. Cambiar
  un solo campo que la persona ya nombró no necesita entrevista.

## 1. Qué es el documento

Un documento = un agente. Cada sección es un bloque de la página:

| Sección | Bloque de la página | Qué dice |
| --- | --- | --- |
| `agent` (obligatoria) | Encabezado | Nombre, cargo, «Quién es», modelo (`null` = el del workspace), si habla con clientes |
| `instructions` | Instrucciones | «Siempre», «Metas», etiquetas que pone, campos que escribe |
| `approval` | Aprobación | Modo (`draft` = «Pedir aprobación», `supervised`, `autonomous`), pausa, presupuesto de mensajes pagos |
| `initiative` | Iniciativa | «Escribe primero», revisión, retenciones, tope mensual |
| `advanced` | Avanzado | Su horario propio, lo que lee (voz, imágenes, documentos), con quién trabaja |
| `team` | Equipo | Quién le da órdenes (`takesOrders`), su jefe directo (`isManager`), avisos |
| `sources` | Herramientas | Contactos que consulta, sus APIs del formato anterior (`apis`) y su acceso a las APIs del workspace (`apiAccess`, ausente = no se toca; ver la referencia `apis`). La clave de una API nunca va aquí |
| `lines` | Líneas | Por línea: «Responde», horario, traspaso, «Con quién habla», «Y nunca con», espera, `campaigns`, `rules` |
| `flows` | Flujos chatbot | Los flujos que contestan antes que ella, en orden: cada uno con sus líneas, su documento `frepi.flow/v1` y sus casos de prueba |
| `routines` | Rutinas | Lo que hace a una hora fija o cada cierto tiempo en horario laboral (`every`), a quién y por qué línea |
| `authorizations` | Autorizaciones | «Cambiar precios» |

- **Sección ausente o `null` = no se toca.** Sección presente = el estado completo de esa sección: lo que dejes
  fuera (una línea, una rutina, una persona del equipo, una API) se quita.
- Dentro de una sección todos los campos son obligatorios, salvo los opcionales del esquema
  (`lines[].campaigns`, `lines[].rules`, `team[].description`…: ausente = no se toca).
- Ids que nunca inventas: `meta` (`agentId`, `etag`), `routines[].id`, `sources.apis[].id` y
  `lines[].rules.topics[].id`. Uno nuevo va con `"id": null`; Frepi le da el suyo.
- `routines[].every`: `{"min": 15, "from": "08:00", "to": "18:00"}` = cada 15 minutos de 08:00 a 18:00 (las dos
  puntas cuentan), en sus días y solo mientras la línea está en su horario; `min` es 5, 10, 15, 30, 60, 120 o 240.
  Ausente = no se toca; `null` = una vez al día a la hora `at`. Necesita `initiative.creditCapMonthly` (puede ir en
  el mismo documento), y un agente tiene hasta 5. Cambiar una rutina (frase, días, hora, `every`) la edita: guarda su
  id y sus vueltas.
- Referencias: una línea es `"+<dígitos>"` o su UUID (como las escribe `choices.lines`); una persona del equipo es
  su email en minúsculas; un contacto es su id o un teléfono con código de país; una etiqueta es su `tagId`.
- Con «Seguimientos prometidos» activos (`agent_follow_ups`), una promesa a un cliente queda como tarea y sale a su
  hora por la puerta proactiva; sin ellos, no despierta sola para escribirle a quien dejó de responder.

### Flujos chatbot (`flows`)

Una **primera pasada barata** (botones, formulario, reglas) que atiende antes que ella y le pasa solo a quien califica.
La lista `flows` es el orden: entra el primero cuya entrada se cumple. Cada flujo:
`{"id": null, "on": false, "lines": ["<line>"], "document": {…frepi.flow/v1…}, "cases": […], "changeNote": "…",
"activateVersion": 4}`. La receta y el JSON del flujo están en `bi_get_skill(name="flujo-chatbot")`.

- **Solo en un agente de línea** (a un etiquetador se la rechazan). Ausente = no se toca; presente = la lista completa,
  y un flujo que dejas fuera se quita (sus versiones quedan guardadas).
- `id`: `null` en uno nuevo; en uno existente, el que exportó `bi_agent_config_get` (que trae aparte el bloque `flows`:
  estado, versiones pendientes, conteos). `lines`: líneas en que ella contesta. `on`: `true` solo si ya está activo.
- `document` distinto de la última versión escribe una versión nueva (`changeNote`, 1 a 200). `activateVersion` pone en
  vivo una pendiente. `cases` es la lista completa de casos del flujo (hasta 30).
- **Probar:** `bi_agent_test(persona_id, mode="flow", flow_id, cases?)`.
- **Activar es de una persona** (regla 5): por MCP un flujo nuevo va apagado y el cambio de uno vivo queda como versión
  pendiente. Necesita los flujos activos en el workspace (`agent_doc_flows_off`).

### «Cuándo habla» de una línea (`lines[].rules`)

Solo existe cuando el workspace tiene las reglas por tema activas (si no, `agent_doc_field_unavailable`).

- `shared`: «¿Es una línea compartida?». `false` = nadie más escribe desde ese número: no hay espera, ni «lo
  atiende el equipo», ni se aparta. Si la persona dice que nadie más escribe desde ese número, pon `false` y
  `personFirstSeconds: 0`. Pasarla de `true` a `false` le devuelve a ella los chats que un vendedor tenía apartados
  en esa línea: en el copiloto escribe el documento como siempre (la persona lo confirma en la tarjeta); por MCP es
  un cambio de una persona (regla 5). Volver a compartirla y poner una espera (`personFirstSeconds`) va bien en el
  mismo documento.
- `base`: en horario (`inHours`: `answer` contesta / `team` lo atiende el equipo), fuera de horario (`offHours`:
  `silent`, `answer`, `hold` = deja el `holdingText`, `at_open` = contesta al abrir el horario el último mensaje de
  cada chat si nadie del equipo escribió después, no más de 24 h), y el modo de aprobación de la línea
  (`approvalMode`: `null` = el de ella, `draft` = «Pedir aprobación» en esta línea). La espera en horario es
  `lines[].personFirstSeconds`.
- `topics`: hasta 10 temas en orden. Cada uno cambia solo lo que dice en `overrides` (lo que falta = «Igual que la
  línea»): `schedule` (su propio horario: entonces sin `offHours` ni `holdingText`), `inHours`,
  `personFirstSeconds`, `offHours`, `holdingText`, `pauseMinutes`, `audience` (`only` / `except` con etiquetas y
  contactos).

Para leer las reglas sin el resto: `bi_get_line_rules`. Qué tema tuvo cada mensaje y qué regla lo tomó es un
dato del workspace: `bi_query` sobre `public_marts.ai_persona_topics_v1`. Los conteos de hoy por tema y por
resultado (contestó, esperó, equipo, mensaje de espera, reglas de la línea) están en `bi_list_agent_work`
(`today.topics`).

### «Enviar campañas» de una línea (`lines[].campaigns`)

`{"on": true, "maxPerDay": 100}`: ella puede lanzar campañas por esa línea, hasta 100 destinatarios por día.
Cualquier cambio (encenderla, apagarla o cambiar el máximo) lo hace una persona en el copiloto o en la página. Por
MCP deja `campaigns` como está: si la cambias, la respuesta es `campaigns_needs_person`.

## 2. Reglas que no se negocian

1. **Antes de cambiar, lee.** `bi_agent_config_get(persona_id)` y edita ESE documento en su sitio. Nunca escribas
   uno de memoria.
2. **No quites lo que no quieres quitar.** Copia cada campo y cada elemento de las listas que tocas.
3. **Nunca pongas una clave o una contraseña en el documento.** La clave de una API la pega la persona en Frepi;
   las `notes` de `bi_agent_config_get` dicen cuál falta.
4. **Lee la tarjeta a la persona y espera su «sí»** antes de la segunda llamada con `confirmation_token`.
5. **Por MCP los controles solo se aprietan.** Un modo más suelto, reanudarla, «Cambiar precios», quitar a alguien
   de «Y nunca con», quitar o subir un «Pide aprobación si…», apagar «Confirma con el cliente», ampliar «Con quién
   habla», quitar el borrador de una línea, dejar de compartir una línea (`shared` a `false`), activar, reanudar, sumar
   una línea o reordenar un flujo vivo (`flows`), o que alguien nuevo le dé órdenes: todo eso lo hace una persona en el copiloto o en la página. «Enviar campañas» no se toca por MCP
   en ningún sentido (ni encenderla, ni apagarla, ni su máximo). En el copiloto de Frepi sí escribes el documento
   con esos cambios: la persona que te lo pide los confirma en la tarjeta.
6. **Una línea en la que contesta otro agente se toma primero en la página** (`line_has_replier`).

## 3. Recetas

### Crear un agente: la entrevista

Pregunta **una cosa a la vez**, en el idioma de la persona, y no escribas el documento con dudas. Si trae una
especificación, úsala para lo que ya responde y pregunta el resto: **todo lo que diga «por definir» se pregunta**,
nunca queda en el valor por defecto sin decirlo. Primero `bi_agent_config_get()` sin `persona_id` (trae `choices`).

1. **El trabajo.** Qué hace, qué no hace nunca, su tono y cómo se presenta. Los números que son ajustes (minutos,
   horario) van en sus campos, no en «Quién es» ni en «Siempre»: si cambian en la página, el texto queda mal.
2. **Las líneas, y quién más escribe en cada una** (desde el celular o Frepi). Nadie: `shared: false` y
   `personFirstSeconds: 0`. Alguien: cuánto espera a una persona (`personFirstSeconds`, en segundos: 0, 120, 300,
   600, 900 o 1200) y cuánto se aparta cuando una persona escribe (`handoff.sellerPause`: ese chat o la línea, de 5
   min a 24 h, o `null` = hasta que se la devuelvan). `shared` y `offHours` van en `lines[].rules` («Cuándo habla»).
3. **«Con quién habla», en cada línea.** ¿Con todos, o **solo** con ciertos contactos o etiquetas
   (`handoff.audienceMode: "only"`, `allowedTagIds`, `allowedContacts`)? En el celular de un vendedor también escriben
   su familia y sus amigos: propón «Solo con» la etiqueta de sus clientes, si existe.
4. **«Y nunca con», en cada línea** (`blockedTagIds`, `blockedContacts`): familia, proveedores, compañeros, amigos. La
   lista roja gana siempre, también sobre «Solo con». No termines sin las preguntas 3 y 4 en cada línea.
5. **Horario** de cada línea (`schedule`, festivos) y qué hace fuera de él (`offHours`: callada, contesta, mensaje de
   espera, o contesta al abrir). Con «siempre» contesta a cualquier hora: dilo así.
6. **A quién le pasa los chats y quién recibe sus informes** (`team`): alguien que «Da órdenes» y un «Jefe directo»
   (el modo «Supervisado» le deja un informe diario); los dos son usuarios de Frepi. Alguien sin usuario entra con
   nombre y teléfono (`kind: "person"`) solo en la lista: no es jefe directo ni da órdenes todavía.
7. **Modo de aprobación**, una frase cada uno, y que la persona elija: «Pedir aprobación» (cada respuesta y acción
   espera a quien da órdenes), «Supervisado» (actúa en sus límites y deja un informe diario al jefe directo),
   «Autónomo» (igual, con el informe archivado como leído). **Por MCP** el agente nace en «Supervisado» y sin nadie
   que «Da órdenes» ni «Jefe directo» (regla 5): aplícalo así y dile a la persona que ponga el equipo y, si quiere,
   «Pedir aprobación» o «Autónomo» en el copiloto o en la página. En el copiloto todo va en el mismo documento.
8. **Sus APIs** (`sources`): qué lee y qué escribe. Una API que solo lee (`GET`) no registra un pedido ni abre un
   caso: si el trabajo lo promete, díselo. La ruta solo lleva dos marcadores: `{telefono}` (Frepi pone el teléfono del
   chat) y `{pedido}` (el número que da el cliente), por ejemplo `/ordenes?order_number={pedido}`; una ruta sin
   marcadores trae siempre la misma respuesta. Frepi solo le deja ver los registros del cliente del chat, así que no
   escribas en «Siempre» que lo identifique por correo o nombre. La clave la pega la persona en Frepi («Probar conexión»).
   Si `bi_workspace_api_list` responde, usa una API del workspace y dale acceso en `sources.apiAccess` (referencia `apis`).
9. **Qué registra:** campos (`instructions.allowedFields`) y etiquetas (`tagRules`), para que un caso, un motivo o un
   pedido en curso quede como dato. Un campo nuevo se crea con `bi_get_skill(name="etiquetas-y-campos")`.
10. **Qué lee:** notas de voz, imágenes, documentos (`advanced.media`).
11. **¿Un flujo chatbot que califica antes que ella?** Si hay una regla clara para calificar (edad, tipo de cliente, un
    monto) y mucha gente que no compra, un flujo atiende primero con botones y reglas y a ella le llega solo quien
    califica. Si la persona dice que sí, sigue `bi_get_skill(name="flujo-chatbot")` y pon el flujo en `flows`
    (apagado: lo activa una persona).

Después: escribe el documento desde un ejemplo de [ejemplos](references/ejemplos.md), sin `meta`, con referencias de
`choices`; `bi_agent_config_apply(document)` → lee la tarjeta → con su «sí», la misma llamada con
`confirmation_token`. **Vuelve a leerlo** con `bi_agent_config_get(persona_id)` y dile cada `note` (una API sin su
clave: ese trabajo no sale) y lo que quedó sin decidir.

### Cambiar un campo

1. `bi_list_line_agents` → el `persona_id`.
2. `bi_agent_config_get(persona_id)` → el documento (con `meta`).
3. Cambia solo ese valor. No toques `meta`.
4. `bi_agent_config_apply` con el documento entero → tarjeta → «sí» → confirmar.

`agent_doc_no_changes` = nada era distinto: dile a la persona que ya estaba así. Una persona del equipo escrita
`"#<id>"` perdió su acceso: el próximo cambio del equipo la quita (la tarjeta dice «persona sin acceso · se quita»).

### Cambiar «Cuándo habla» de una línea

1. `bi_agent_config_get(persona_id)`; en `lines[]` busca la línea y su `rules`.
2. Cambia la base o los temas en su sitio. Un tema que sigue guarda su `id`; uno nuevo va con `"id": null`; uno
   que quitas sale de la lista.
3. Aplica como arriba. Si la línea pasa a `"approvalMode": "draft"`, alguien del equipo debe dar órdenes
   (`no_manager`): agrégalo en el mismo documento.

### Revisar lo que pide aprobar

1. `bi_agent_approvals_list(persona_id)`.
2. Resume cada una: el tipo, a quién va y el texto bajo `content`.
3. `bi_agent_approval_decide(approval_id, decision)` → tarjeta → «sí» → confirmar. Por MCP la decisión queda registrada como hecha por MCP.
4. Lee el resultado.

Por MCP, una con `personRequired: true` (nació de un turno no confiable) solo se puede rechazar aquí: dile a la
persona que la apruebe en el copiloto o en «Agentes › {nombre} › Por aprobar». `text` (una versión editada) solo
va en una regla aprendida.

### Hablar con ella

1. `bi_agent_talk(persona_id, text)` → tarjeta → «sí» → confirmar.
2. `bi_agent_thread_get(persona_id, after_message_id, wait_seconds=20)` hasta que `pending` sea `false`.

Lo que ella pida desde ese mensaje espera a una persona en Frepi.

### Tareas y seguimientos

Se leen y se escriben con `chatbot_list_tasks`, `chatbot_create_task` y `chatbot_update_task`, siempre con
`owner="agent:<persona_id>"`, y se consultan en `public_marts.ai_tasks_v1`. Receta y ejemplos:
`bi_get_skill(name="agentes", reference="tareas")`.

### Copiar un agente a otro workspace

1. Exporta el documento.
2. Borra `meta`, cada `id` (rutinas, APIs, temas), `advanced.peers`, `advanced.media.files`,
   `initiative.outreach.templateIds` y los `tagId`.
3. Cambia las referencias por las de `choices` del otro workspace.
4. Aplica.

## 4. Errores

| Código | Qué hacer |
| --- | --- |
| `agent_doc_no_changes` | Nada que hacer: dile a la persona que ya está así. |
| `agent_doc_invalid` | Corrige las rutas de `details.errors`: quita la clave que no existe y pon el pedido en un campo que sí existe (un tono o una forma de hablar va como frase en `instructions.always`). Reenvía el documento leído entero, con su `meta`. Nunca agregues claves. |
| `agent_doc_too_large` | Aplica por secciones. |
| `agent_doc_conflict` | Vuelve a leerla con `bi_agent_config_get` y rehaz el cambio en el documento nuevo. |
| `agent_doc_name_taken` | Ya existe un agente con ese nombre (`details.personaId`): cámbialo a él, o usa otro nombre. |
| `agent_doc_ref_unknown` | Toma la referencia de `choices` o del documento exportado (`details.path`). |
| `agent_doc_ref_ambiguous` | Ese número lo tienen varias líneas: usa el UUID de la línea. |
| `agent_doc_duplicate` | La misma clave está dos veces en la lista: deja una. |
| `agent_doc_field_unavailable` | Ese campo no está activo en este workspace (`details.reason`): quítalo y díselo a la persona. |
| `agent_doc_flow_invalid` | Corrige cada ruta de `details.problems` (`flows[i].document…`; un `flows[i].id` que no es de ella; `flows[i].lines` fuera de sus líneas) y reenvía el documento. Nada se guardó. Los códigos están en `flujo-chatbot`. |
| `agent_doc_flows_off` | Los flujos no están activos en este workspace: quita la sección `flows` y díselo a la persona. |
| `agent_doc_person_required` | Aplica el resto sin esas rutas (`details.paths`; p. ej. `/lines/0/rules/shared` al dejar de compartir una línea); dile a la persona que las cambie en el copiloto o en la página. |
| `approval_person_required` | Recházala, o dile a la persona que la apruebe en el copiloto o en «Por aprobar». |
| `line_has_replier` | Otro agente contesta en esa línea (`details.personaId`): quítasela primero en la página. |
| `no_manager` | Agrega a alguien que «Da órdenes», o no pongas el borrador. |
| `cap_required` / `heartbeat_required` | «Escribe primero» necesita un tope mensual y una revisión; una rutina con `every`, un tope mensual. |
| `routine_cadence_limit` | Ya tiene 5 rutinas con `every`: quita una o pásala a una hora fija (`"every": null`). |
| `persona_on_number` | Otro agente ya contesta en ese número. |
| `line_not_coexistence` | Solo las líneas de coexistencia llevan agente. |
| `routine_target_invalid` | El destino de la rutina debe ser uno de `sources.contacts`. |
| `rules_conflict` | Alguien cambió las reglas de esa línea: vuelve a leerla. |
| `rules_invalid` | Revisa los temas: hasta 10, sin repetir, hasta 3 ejemplos; un tema con horario propio no lleva `offHours` ni `holdingText`; `hold` necesita su texto. |
| `line_not_shared` | En una línea no compartida no hay espera, ni equipo, ni se aparta. Para volver a compartirla con espera, pon `shared: true` y `personFirstSeconds` en el mismo documento. |
| `api_form_mismatch` / `api_has_no_actions` | Una API con documento va en `bi_workspace_api_apply` y su acceso en `sources.apiAccess`; `act` solo con escrituras. Referencia `apis`. |
| `campaigns_needs_person` | «Enviar campañas» solo la cambia una persona: aplica el resto sin `campaigns` (deja el valor exportado) y dile a la persona que lo cambie en el copiloto o en la página. |
| `campaigns_day_cap_required` | Para encender «Enviar campañas» pon `maxPerDay`. |
| `campaigns_invalid` | `maxPerDay` es un número entero de 1 a 1.000.000, y uno guardado no se borra. |
| `cell_not_ready` | Avísale al soporte de Frepi. |
| `CHAT_FILTER_REQUIRED` | Pasa `owner="agent:<persona_id>"` (`details.owner_hint`). |
| `BOT_CANNOT_TASK_AGENT` | Una llamada de un bot no toca las tareas de un agente: quita `chat_filter_id`. |
| `TASK_SENDING` | Su mensaje está saliendo ahora: espera un momento y vuelve a leer la tarea. |
| `TASK_WRITES_FIRST_OFF` | El agente o la línea no escriben primero: dile a la persona que lo active, o no pidas el seguimiento. |
| `contact_unknown` | Ese cliente no le ha escrito a esa línea: un seguimiento es solo para quien ya escribió. |
| `TASK_INVALID` / `TASK_NOT_FOUND` / `TASK_LIMIT` | Las tareas: lee `error` (y `details.reason`); la tarea no es de ese agente o no la alcanzas; ya hay demasiadas abiertas. |

Si la transición pide un orden que un documento no puede cumplir, el error trae su ruta: aplícalo en dos pasos.

## 5. Etiquetadores (taggers)

Un etiquetador es un agente que **no habla con clientes**: revisa las conversaciones cerradas de sus líneas y pone
valores en los campos que maneja (ver el skill `etiquetas-y-campos`). Es el mismo documento con
`agent.type = "tagger"` (`frepi.agent/v1.2`; sin `type` es un agente de línea, y un documento v1 sigue valiendo).
Se lee y se aplica igual que el de una línea (reglas 1 a 4 de la sección 2).

Secciones:

- `agent`: como siempre, con `"type": "tagger"` y `"talksToCustomers": false`.
- `instructions.text`: su manual, qué significa cada etiqueta y cómo decidir. Solo lleva `text` (ni `always`, ni
  `goals`, ni `tagRules`, ni `allowedFields`).
- `fields`: los campos que maneja, cada uno con su `key` y, si tiene opciones, `labels` con las claves que puede
  poner (ausente = todas).
- `reads`: `lines`, las líneas que revisa.
- `review`: cuándo revisa. `cut` es `silence` (`gap` «se cierra tras» y `every` «revisa las que se cerraron») o
  `period` (`period` y `weekStart`); `timezone`; y `creditCapMonthly`, el tope de créditos del mes: sin él no se
  enciende.

Un etiquetador no lleva `approval`, `initiative`, `advanced`, `sources`, `lines`, `routines` ni `authorizations`, y
un agente de línea no lleva `fields`, `reads` ni `review`. Los valores exactos están en el esquema.

```json
{"kind":"frepi.agent/v1","agent":{"type":"tagger","name":"Clasificador de ventas","job":"Etiqueta el embudo","about":"","model":null,"talksToCustomers":false},"instructions":{"text":"Nuevo: aún no pidió precio. Cotizó: ya recibió una cotización."},"fields":[{"key":"embudo","labels":["nuevo","cotizo"]}],"reads":{"lines":["7f0c2c1e-3b52-4c1d-9a4e-5d6f8a9b0c1d"]},"review":{"cut":"silence","gap":"1d","every":"day","timezone":"America/Bogota","creditCapMonthly":50}}
```
