Skip to content

WhatsApp - Configuraciones Específicas

Formato de Botones y Quick Replies

Por defecto, WhatsApp formatea los botones como una lista numerada en lugar de botones interactivos. Esto se debe a que utiliza su propio sistema de componentes.

Comportamiento por defecto

1
2
3
4
5
*Selecciona una opción:*

*1.* ```Opción 1```
*2.* ```Opción 2```  
*3.* ```Opción 3```

Configuración para Botones Reales

Para que WhatsApp use botones JSON estructurados (como otros canales), puedes usar la configuración force_talkcenter_payload:

1
2
3
4
# En el contexto del bot
context['_settings'] = {
    'force_talkcenter_payload': True
}

Ejemplo de Uso

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Sin la configuración (lista numerada)
def quick_reply_default(context, text, replies):
    # Resultado: texto con lista numerada
    return get_translator(context).quick_replies(text, replies)

# Con la configuración (botones JSON)
def quick_reply_buttons(context, text, replies):
    context['_settings'] = {'force_talkcenter_payload': True}
    # Resultado: estructura JSON con botones
    return get_translator(context).quick_replies(text, replies)

Resultado con force_talkcenter_payload: True

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{
    "type": "button-quick",
    "payload": {
        "text": "Selecciona una opción:",
        "blockable": false,
        "buttons": [
            {
                "type": "postback",
                "title": "Opción 1",
                "payload": "payload1"
            },
            {
                "type": "postback", 
                "title": "Opción 2",
                "payload": "payload2"
            }
        ]
    }
}

Cuándo usar cada formato

  • Lista numerada (defecto): Para compatibilidad con clientes WhatsApp básicos
  • Botones JSON: Para integraciones avanzadas que soporten botones interactivos

Archivos relacionados

  • backend/bc_behavior/execution/modules/components/whatsapp_components.py
  • backend/bc_behavior/execution/modules/components/components_module.py
  • backend/bc_behavior/tests/modules/components/test_whatsapp.py