⌘I

El archivo formspree.json

Updated July 14, 2023
Also available in:

El archivo formspree.json es donde puedes crear y configurar formularios para un sitio web. Por ejemplo, puedes crear formularios de opt-in para una lista de Mailchimp, o formularios de contacto que te envíen un correo cuando se envíen. El CLI de Formspree usa el archivo formspree.json al desplegar tus formularios a los servidores de Formspree.

Configuración del formulario

Los formularios aceptan los siguientes parámetros de configuración:

PropiedadTipoPor defectoDescripción
nameStringEl nombre del formulario (requerido)
actionsArray[]Un array de acciones a ejecutar después del envío
fieldsObject{}Metadatos opcionales sobre los campos del formulario
captchaObject{}Configuración opcional del captcha.

El objeto Captcha debe seguir este formato:

"captcha": {
    "type": "recaptcha",                  // Required
    "recaptchaSecret": "my-secret"        // Optional
}

Ejemplo Aquí tienes un ejemplo de archivo formspree.json:

{
  "forms": {
    "contact": {
      "name": "Contact Form",
      "captcha": {
        "type": "recaptcha",
        "recaptchaSecret": "my-secret"
      },
      "fields": {
        "email": { "type": "email", "required": true },
        "message": { "type": "text", "required": true }
      },
      "actions": [
        { "type": "email", "to": "john@example.com" }
      ]
    }
  }
}

Acciones posteriores al envío

Los formularios aceptan un array de acciones a ejecutar después del envío. Tenemos algunas acciones integradas y una lista creciente de integraciones con otras aplicaciones:

AppTypeDescripción
emailEnvía un correo de notificación. Leer más
autoresponseEnvía una respuesta al remitente. Leer más
webhookEnvía un webhook a una URL dada. Leer más
mailchimpaddOrUpdateContactCrea suscriptores en Mailchimp. Leer más
mailerliteaddSubscriberAgrega suscriptores a MailerLite. Leer más
convertkitapplyTagsCrea suscriptores y aplica etiquetas en ConvertKit. Leer más
hubspotcreateContactCrea contactos en Hubspot. Leer más
freshdeskcreateSupportTicketCrea tickets en Freshdesk. Leer más
zendeskcreateSupportTicketCrea tickets en Zendesk. Leer más
airtablesendToTableAgrega filas en Airtable. Leer más
trellocreateCardCrea tarjetas en Trello. Leer más
discordsendMessageEnvía mensajes a Discord. Leer más
gorgiascreateSupportTicketCrea tickets en Gorgias. Leer más

Aquí tienes un ejemplo de archivo formspree.json con una acción de Mailchimp:

{
  "forms": {
    "contact": {
      "name": "Contact Form",
      "actions": [
        {
          "app": "mailchimp",
          "type": "addOrUpdateContact",
          "audience": "8djs8fg8d",
          "apiKey": "$MAILCHIMP_APIKEY"
        }
      ]
    }
  }
}

Reglas de campo

Opcionalmente puedes configurar qué campos se permiten, el tipo que deben tener y varias reglas de validación para ellos.

Nota: por defecto, Formspree aceptará cualquier campo que pases desde el lado del cliente. Sin embargo, definir aquí tus campos te permite añadir validaciones (como marcar un campo como requerido) y darles nombres legibles.

Los objetos de campo pueden contener las siguientes propiedades:

ClaveTipoDescripción
requiredBooleanEspecifica si el campo es requerido
typeStringEl tipo del campo. Uno de text, email, numeric, datetime-local, url o file.
minNumber or StringEspecifica el valor mínimo. Puede usarse con los tipos numeric, datetime-local o file. Ten en cuenta que debes especificar el tipo de campo, de lo contrario esta regla no se aplicará.
maxNumber or StringEspecifica el valor máximo. Puede usarse con los tipos numeric, datetime-local o file. Ten en cuenta que debes especificar el tipo de campo, de lo contrario esta regla no se aplicará.
minlengthNumberEspecifica el valor mínimo. Puede usarse con los tipos text, url o email. Ten en cuenta que debes especificar el tipo de campo, de lo contrario esta regla no se aplicará.
maxlengthNumberEspecifica el valor máximo. Puede usarse con los tipos text, url o email. Ten en cuenta que debes especificar el tipo de campo, de lo contrario esta regla no se aplicará.
acceptString listEspecifica los tipos de contenido de archivo válidos. El valor debe ser una lista de strings con tipos MIME válidos. Ten en cuenta que debes establecer la clave type como file, de lo contrario esta regla no se aplicará.

**Notas:
**El tipo datetime-local acepta formatos ISO. El formato por defecto es yyyy-mm-dd hh:mm:ss. Este tipo también acepta solo fechas, por ejemplo yyyy-mm-dd. Para más información, consulta esto.

Los valores min y max para los tipos file son los tamaños mínimo y máximo de archivo en MiB.

Ejemplo

{
  "forms": {
    "contact": {
      "name": "Contact Form",
      "fields": {
        "email": {
          "type": "email",
          "required": true
        },
        "birthdate": {
          "type": "datetime",
          "required": true,
          "min": "2002-09-21 13:13:00"        /* also accept dates */
        },
        "document": {
          "type": "file",
          "contentType": ["application/pdf"],  /* please use valid MIME Types */
          "min": 10                            /* MiB */
        }
      }
    }
  }
}