> ## Documentation Index
> Fetch the complete documentation index at: https://help.treble.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuraciones avanzadas

> Qué se puede personalizar cuando un campo tiene que llenarse en el momento exacto en que se crea el registro, y qué límites tiene hoy esa personalización.

Esta página explica la herramienta que resuelve el problema más difícil de la integración: **los campos que Salesforce exige en el momento mismo de la creación**.

Si todavía no te has topado con eso, probablemente no la necesites.

<div class="hr" />

## Los dos momentos en que Treble escribe

Es la distinción de la que salen casi todas las limitaciones.

| Momento | Qué pasa | Qué lo controla |
| - | - | - |
| **Creación** | Treble no encuentra el registro de la persona y lo crea | Los campos obligatorios que Treble detecta automáticamente, más las reglas avanzadas de esta página |
| **Actualización** | El registro ya existe y Treble escribe un campo | Los bloques de tu flujo |

Los bloques que configuras en el constructor de conversaciones trabajan en el **segundo** momento. Cada bloque escribe un campo, **después** de que el registro existe.

Eso funciona perfecto mientras Salesforce permita escribir ese campo después. Deja de funcionar cuando Salesforce exige algo **al crear**.

<Warning>
  Los dos casos que más aparecen:

  * **Una regla de validación** que exige un valor para poder crear el registro (por ejemplo, una autorización de tratamiento de datos).
  * **El tipo de registro**, en particular con [Person Accounts](/es/docs/integrations/salesforce/features/person-accounts): una cuenta no se puede convertir en Person Account después de creada.

  En esos casos el bloque del flujo llega tarde por diseño.
</Warning>

<div class="hr" />

## Reglas de creación

Para esos casos, Treble puede aplicar **reglas que se ejecutan en el momento de crear** el registro, configuradas por objeto dentro de tu integración.

La propiedad clave: una regla de creación entra **siempre** en la creación del registro, sin importar si Salesforce reporta ese campo como obligatorio o no. Por eso resuelve lo que un bloque no alcanza.

### Qué se puede hacer

<AccordionGroup>
  <Accordion title="Valor fijo">
    Lo más común: *"todos los registros que cree esta integración deben tener X en este campo"*.

    Sirve para tipos de registro, banderas de sí/no, origen del lead, país por defecto, clasificaciones internas, y en general cualquier campo obligatorio de tu modelo que no dependa de la conversación.

    Es también el cambio más rápido de aplicar.
  </Accordion>

  <Accordion title="Valor derivado del contacto de WhatsApp">
    Treble conoce al contacto y puede derivar valores de él: el nombre del perfil de WhatsApp, el teléfono en distintos formatos, el correo si lo tiene, o un correo generado cuando no.

    Es la forma habitual de llenar campos obligatorios de nombre o de correo en objetos que los exigen.
  </Accordion>

  <Accordion title="Lógica a medida">
    Cuando necesitas una transformación propia —recortar un documento a cierta cantidad de dígitos, traducir un valor a tu nomenclatura interna, componer un campo a partir de varios datos— se puede escribir una regla específica para tu cuenta.

    No es un caso excepcional, pero **requiere desarrollo del lado de Treble**: se pide, se programa y se despliega.
  </Accordion>

  <Accordion title="Valores tomados de la conversación">
    También es posible que una regla use lo que la persona respondió durante la conversación y lo incluya en la creación del registro.

    Es el camino cuando necesitas, por ejemplo, que el tipo de registro dependa de lo que la persona eligió en el chat **y** que eso quede desde el momento de la creación. Igual que el caso anterior, requiere desarrollo.
  </Accordion>
</AccordionGroup>

<div class="hr" />

## Los límites que conviene conocer

Son tres, y vale la pena tenerlos claros antes de diseñar algo alrededor de esta herramienta.

<AccordionGroup>
  <Accordion title="1. Aplican a toda la integración, no a un flujo">
    Una regla sobre el tipo de registro de `Account` afecta **todas** las cuentas que la integración cree, en **todos** los flujos.

    No se puede hoy tener "la campaña A crea con un tipo de registro y la campaña B con otro" usando reglas de creación. Es la limitación más importante.

    <Info>
      Si ese es exactamente tu caso, coméntaselo a tu Customer Success Manager: es una de las cosas en las que estamos trabajando y ayuda saber cuántos clientes lo necesitan.
    </Info>
  </Accordion>

  <Accordion title="2. Solo se aplican al crear">
    Una regla de creación no se ejecuta cuando el registro ya existe. Para actualizar un registro existente se usan los bloques del flujo, como siempre.
  </Accordion>

  <Accordion title="3. No son autogestionables todavía">
    Estas reglas viven en la configuración de la integración y las aplica el equipo de Treble. No se editan desde la plataforma.

    Un cambio suele ser rápido —minutos, sin despliegue, cuando es un valor fijo— pero pasa por nosotros.
  </Accordion>
</AccordionGroup>

<div class="hr" />

## Otras cosas que se configuran a este nivel

<AccordionGroup>
  <Accordion title="El campo de teléfono de búsqueda y escritura">
    Es el campo por el que Treble busca a la persona y, a la vez, donde escribe el número cuando crea el registro.

    <Warning>
      Hoy es **un solo campo para las dos cosas**. Si cambias el campo para que el número se guarde en otro lado, Treble deja de encontrar los registros que tienen el número en el campo anterior y empieza a crear duplicados.

      Si necesitas buscar por un campo y escribir en otro, habla con tu Customer Success Manager antes de cambiar nada.
    </Warning>
  </Accordion>

  <Accordion title="Tarea o Evento para el historial">
    Define si el historial de la conversación se guarda como `Task` o como `Event`.

    <a class="article-link" href="/es/docs/integrations/salesforce/features/activities"><p>Historial de conversación</p><Icon icon="arrow-up-right-from-square" iconType="solid" /></a>
  </Accordion>

  <Accordion title="Los objetos de la integración multi-objeto">
    Cuáles objetos usa la integración, y por cada uno su campo de teléfono, de nombre y de propietario. Se define al instalar y cambiarlo después implica reinstalar.
  </Accordion>
</AccordionGroup>

<div class="hr" />

## Dos casos que se preguntan mucho

<AccordionGroup>
  <Accordion title="Guardar el teléfono en un formato distinto">
    Por defecto Treble escribe el número en el formato internacional completo, con indicativo de país. Es muy común querer otra cosa: sin el indicativo, con paréntesis y espacios, o separado en dos campos.

    Eso se resuelve con una **regla de creación** sobre el campo de teléfono. Si el formato que necesitas es una transformación simple del número, es un cambio rápido; si depende de reglas propias de tu operación, entra en la categoría de lógica a medida.

    <Warning>
      Ojo con un efecto secundario: el campo de teléfono de la integración es el mismo por el que Treble **busca** a la persona. Si cambias el formato de lo que se escribe, asegúrate de que la búsqueda siga encontrando los registros existentes, o empezarás a crear duplicados.
    </Warning>
  </Accordion>

  <Accordion title="Con qué nombre se crea el contacto">
    Cuando Treble crea el registro, el nombre sale del **perfil de WhatsApp** de la persona. Pero ese nombre no siempre existe ni siempre sirve: hay usuarios sin nombre de perfil, y hay perfiles con emojis o texto promocional.

    Puedes definir con una regla de creación qué se escribe en ese caso: un valor de respaldo fijo, el número de teléfono, o una combinación. Es exactamente lo que hacen varios clientes para que ningún registro quede sin nombre y para que los registros creados por Treble sean identificables.

    <Info>
      Si lo que ves es el **texto de un mensaje** en el campo de nombre, eso no es la creación: es un bloque de acción escribiendo la respuesta de la persona sobre el campo equivocado. Revisa [el bloque de acción](/es/docs/integrations/salesforce/blocks/crm-action).
    </Info>
  </Accordion>
</AccordionGroup>

<div class="hr" />

## Cómo pedir un cambio

Para que sea rápido, escríbele a tu Customer Success Manager con esta información:

<Steps>
  <Step title="El objeto">
    Por ejemplo `Account`, `Lead`, o el nombre de API de tu objeto personalizado.
  </Step>

  <Step title="El campo">
    El **nombre de API** exacto, no la etiqueta que se ve en pantalla. Por ejemplo `CC_Autorizacion__c`, no "Autorización de datos".
  </Step>

  <Step title="El valor">
    Si es un valor fijo, cuál. Si es un tipo de registro, el **Id de 18 caracteres**, que encuentras en *Setup → Object Manager → tu objeto → Record Types*, en la URL del tipo.
  </Step>

  <Step title="Por qué un bloque no alcanza">
    Normalmente: "hay una regla de validación que exige este campo al crear", o el mensaje de error exacto que devuelve Salesforce. Eso ahorra una ronda entera de preguntas.
  </Step>
</Steps>

<div class="hr" />

## Siguientes pasos

<CardGroup cols={2}>
  <Card title="Tipos de registro" icon="layer-group" href="/es/docs/integrations/salesforce/features/record-types">
    El caso más común de campo que debe llenarse al crear.
  </Card>

  <Card title="Person Accounts" icon="user" href="/es/docs/integrations/salesforce/features/person-accounts">
    Cuando una cuenta representa a una persona y no a una empresa.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.