# Envía una solicitud desde un flujo de trabajo de n8n

Crea una solicitud de formbase desde cualquier flujo de trabajo de n8n, precompleta y bloquea las respuestas que ya conoces, y envía el enlace por correo o por tu propio canal.

## Envía una solicitud desde un flujo de trabajo de n8n

Una solicitud pide a un destinatario concreto que complete un formulario. Esta guía añade un nodo Create request a un flujo de trabajo, precompleta el nombre de la empresa del proveedor para que no pueda cambiarlo, y entrega el enlace al siguiente nodo.

<p>
  Necesitas una <a href="/es/guides/n8n/connect">credencial de formbase en n8n</a> y un formulario publicado. Qué es una solicitud, y cada{' '}
  opción que admite, está en <a href="/es/requests/creating-requests">Crear una solicitud</a>; esta guía muestra dónde están esas opciones
  en n8n.
</p>

<h2 id="add-the-node">1. Añade el nodo Create request</h2>

<p>
  Empieza con el disparador que debe enviar la solicitud: una fila nueva en una hoja de cálculo, un trato marcado como ganado en tu CRM, una{' '}
  programación. Esta guía usa un disparador manual y un nodo <strong>Edit Fields</strong> llamado <em>Supplier</em> que guarda{' '}
  <code>supplier_id</code>, <code>company_name</code> y <code>contact_email</code>. Haz clic en <strong>+</strong> después de él, busca{' '}
  <strong>formbase</strong>, y elige <strong>Create request</strong>.
</p>

<h2 id="form-and-recipient">2. Elige el formulario y el destinatario</h2>

<ul>
  <li>
    <strong>Form</strong> es el formulario que completa el destinatario. Elígelo de la lista, o cambia a <strong>ID</strong> y pega su ID.{' '}
    Debe estar publicado.
  </li>
  <li>
    <strong>Recipient Email</strong> suele venir de la entrada, como <code>{'{{ $json.contact_email }}'}</code>. Hace falta para la entrega{' '}
    por correo y para los recordatorios.
  </li>
</ul>

<h2 id="prefill-and-lock">3. Precompleta y bloquea lo que ya sabes</h2>

<p>
  Una vez que eliges el formulario, <strong>Values to Send</strong> lista cada pregunta que puedes precompletar por su título y su{' '}
  <a href="/es/requests/field-keys">clave de campo</a>, como <em>Company name (company_name)</em>. Las preguntas de subida de archivo,{' '}
  firma, pago y cita, los campos calculados y los bloques de Documentos no aparecen listados: los da el destinatario o el propio formulario.{' '}
  Mapea las respuestas que ya tengas; los campos que dejes vacíos no se envían. El destinatario ve las mapeadas ya rellenadas.
</p>

<p>
  <strong>Mapping Column Mode</strong> también puede ser <strong>Map Automatically</strong>: entonces se envía cada campo de la entrada{' '}
  nombrado según una clave de campo del formulario. Eso conviene cuando ya diste forma a la entrada para este formulario con un nodo Edit{' '}
  Fields.
</p>

<p>
  Los campos ocultos del formulario también aparecen listados, marcados <em>· context</em>. El destinatario no puede cambiarlos y los ve{' '}
  solo donde el formulario los menciona. Consulta{' '}
  <a href="/es/requests/creating-requests#three-buckets">Precompletado, campos bloqueados y contexto</a> para la diferencia.
</p>

<p>
  Elige una pregunta bajo <strong>Read-Only Field Names or IDs</strong> para bloquearla, así el destinatario la ve pero no puede cambiarla.{' '}
  Una pregunta bloqueada también debe estar precompletada. Si el formulario tiene un bloque de Documentos, <strong>Documents</strong> toma{' '}
  archivos de un campo binario del elemento de entrada.
</p>

<h2 id="additional-fields">4. Añade las opciones que necesites</h2>

<p>
  Haz clic en <strong>Add Field</strong> bajo <strong>Additional Fields</strong>:
</p>

<ul>
  <li>
    <strong>Delivery</strong> decide quién envía el enlace. <strong>Email the Invitation</strong> deja que formbase envíe la{' '}
    <a href="/es/requests/invitations-and-reminders">invitación y los recordatorios</a>, y necesita un plan Pro o Business.{' '}
    <strong>None</strong>, el valor predeterminado, no envía ninguna invitación: un nodo posterior envía el <code>url</code> de la
    solicitud, por Slack, SMS o tu propia herramienta de correo.
  </li>
  <li>
    Si dejas fuera <strong>Reminders</strong>, se sigue la programación de recordatorios del formulario. Con Recipient Email, esos{' '}
    recordatorios se envían por correo incluso cuando Delivery es None. Añade <strong>Reminders</strong> y déjalo vacío para no enviar{' '}
    ninguno, o escribe una programación como <code>2d, 5d</code>, que necesita Pro o Business.
  </li>
  <li>
    <strong>External ID</strong> es tu propio ID para este trabajo, como <code>supplier-{'{{ $json.supplier_id }}'}</code>. Un flujo de{' '}
    trabajo posterior puede <a href="/es/guides/n8n/manage-requests#find-a-request">encontrar la solicitud por él</a>. También es la{' '}
    <a href="/es/requests/creating-requests#idempotency">clave de idempotencia</a>: ejecuta el nodo de nuevo con el mismo External ID y los{' '}
    mismos parámetros, y obtienes la misma solicitud de vuelta con <code>deduplicated: true</code>, no una segunda. En 30 días, el mismo{' '}
    External ID con cualquier parámetro cambiado, Test Mode incluido, falla con{' '}
    <em>CONFLICT: Idempotency key … was already used for a different request</em>.
  </li>
  <li>
    <strong>Test Mode</strong> crea una <a href="/es/requests/creating-requests#test-mode">solicitud de prueba</a>: no se envía ningún
    correo y no cuenta en ningún sitio.
  </li>
  <li>
    <strong>Recipient Name</strong>, <strong>Language</strong>, <strong>Expires At</strong> y <strong>Metadata</strong> son opcionales. Una{' '}
    solicitud expira a los 30 días a menos que fijes otra fecha, como máximo a 365 días de distancia.
  </li>
  <li>
    <strong>Callback URL</strong> envía el resultado a una URL propia. Para que el resultado vuelva a este flujo de trabajo, activa en su{' '}
    lugar <a href="/es/guides/n8n/request-outcome#wait-for-the-outcome">Wait for the Outcome</a>.
  </li>
</ul>

<h2 id="run-the-node">5. Ejecuta el nodo</h2>

<p>
  Haz clic en <strong>Execute step</strong>. formbase crea la solicitud y la devuelve: <code>id</code>, <code>status</code>{' '}
  <code>pending</code>, y <code>url</code>, el enlace para el destinatario. Mapea <code>{'{{ $json.url }}'}</code> en el nodo que lo envía.{' '}
  <code>deliveryStatus</code> es <code>not_requested</code> cuando Delivery es None, porque formbase no envió nada.
</p>

> ⚠️ **Ejecutar el nodo crea una solicitud real**
> <p>
>     A menos que <strong>Test Mode</strong> esté activado, cada ejecución, incluido <strong>Execute step</strong> en el editor, es una{' '}
>     solicitud real: con entrega por correo, el destinatario recibe la invitación. Activa Test Mode mientras construyes el flujo de trabajo.{' '}
>     Una solicitud de prueba no inicia ningún flujo de trabajo con un <a href="/es/guides/n8n/request-outcome">disparador de solicitud</a>.{' '}
>     Antes de publicar, desactiva Test Mode y cambia el External ID, porque el anterior pertenece a la solicitud de prueba.
>   </p>

<h2 id="next">Siguiente</h2>

<div class="not-prose grid gap-3 sm:grid-cols-2 mb-8">
  - [Actúa según el resultado de una solicitud en n8n](/es/guides/n8n/request-outcome) — Ramifica cuando el destinatario aprueba, rechaza o pide cambios.
  - [Busca, recuerda y cancela solicitudes en n8n](/es/guides/n8n/manage-requests) — Busca una solicitud por External ID, recuerda al destinatario, o retírala.
</div>
