User te permite consultar información del contacto que está interactuando con tu flujo, como su nombre, número de teléfono y metadatos del canal.
Datos disponibles
Los datos disponibles dependen del canal, pero un ejemplo típico es:Usar variables de usuario
Puedes acceder a cualquier propiedad del usuario con la sintaxis{{$user.propiedad}}:
{{$user.id}}muestra el identificador único del usuario para el canal.{{$user.names}}muestra el nombre del usuario.{{$user.phone}}muestra el número de teléfono del contacto. Es el campo que debes usar cuando necesitas el teléfono.
En canales como WhatsApp, el teléfono viene sin signos ni espacios. Por ejemplo,
+593-111-111-111 se representa como 593111111111.El teléfono va en phone, no en id
WhatsApp dejó de garantizar el número telefónico como identificador estable y adopta un identificador propio, el BSUID. Por eso {{$user.id}} puede traer un BSUID en lugar de un número, y no debes usarlo como teléfono.
- Para el teléfono, usa
{{$user.phone}}. Devuelve el número real del contacto, incluso cuando la conversación entra identificada por BSUID. {{$user.phoneNumber}}es un alias de{{$user.phone}}y devuelve el mismo valor. Se mantiene para los flujos que ya lo usan, pero recomendamos migrar aphone.- Ambos pueden venir vacíos cuando no es posible resolver un teléfono para ese contacto. Contempla ese caso en tus flujos antes de usar el valor.
{{$user.id}}sigue siendo el identificador del contacto en el canal, y es el que debes usar para referenciarlo. Solo dejó de ser siempre un teléfono.
User en nodos de código
Dentro de los nodos de código, tienes disponible el objetoUser a través de $user:
El objeto
User es de solo lectura. Si quieres persistir información nueva del contacto, guarda esos datos en Memory o Context.