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

# Typeform

> Cada respuesta de un formulario de Typeform crea su Contacto a partir del correo.

## Qué trae a Brein

Cada respuesta crea o completa un **Contacto**, y su **Empresa** por el dominio del correo. Si lo pides al conectar, también abre una **Oportunidad**.

Typeform no tiene campos fijos: cada pregunta de tu formulario es distinta. Por eso la plantilla solo conoce una cosa con seguridad.

| De Typeform | Va a |
| - | - |
| La primera respuesta de tipo correo | Correo del Contacto |

El nombre, el teléfono, la empresa y lo demás llegan como **campos nuevos sin decidir**. Los asignas una vez en la página de la Integración y desde entonces se guardan.

## Conéctala

El secreto de firma de Typeform se pone al crear el webhook con su API. Necesitas un token de Typeform y el id de tu formulario (está en su dirección: en `https://tuempresa.typeform.com/to/u6nXL7` es `u6nXL7`).

<Steps>
  <Step title="En Brein">
    Ve a **Ajustes → Integraciones → Conectar → Typeform**. Copia la **dirección** y el **secreto**. El secreto se ve una sola vez.
  </Step>

  <Step title="Crea el webhook en Typeform">
    Con la API de webhooks de Typeform (*Create or update webhook*):

    ```bash theme={"theme":"github-light"}
    curl -X PUT "https://api.typeform.com/forms/<id del formulario>/webhooks/brein" \
      -H "Authorization: Bearer $TYPEFORM_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "url": "https://api.trybrein.com/api/v1/door/<id de la Fuente>",
        "enabled": true,
        "secret": "<el secreto de Brein>",
        "event_types": { "form_response": true }
      }'
    ```

    `brein` es el nombre que le das a este webhook en ese formulario. Typeform firma cada aviso con el `secret` y Brein lo verifica con el encabezado `Typeform-Signature`.
  </Step>

  <Step title="Responde el formulario">
    En Brein verás la Llegada. Revisa los **campos nuevos sin decidir** y asigna el nombre, el teléfono y la empresa. Después reprocesa las Llegadas que hayan quedado sin persona.
  </Step>
</Steps>

## Qué eventos elegir

Solo `form_response`: una respuesta completa.

## Límites

* La plantilla mapea **solo el correo**. El resto lo asignas tú, porque depende de las preguntas de cada formulario.
* Un formulario sin pregunta de correo obligatoria puede traer respuestas **sin persona**.
* Hay que crear un webhook por formulario.

Más sobre resultados, reconocimiento de personas y privacidad: [Integraciones](/es/integraciones). Fuente: [asegurar webhooks en Typeform](https://www.typeform.com/developers/webhooks/secure-your-webhooks/).


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