# Enviar envíos a una hoja de cálculo de Google Sheets

> Formspree Docs · Usar el CLI · 14 de julio de 2023

Agregar la acción de **Google Sheets** en el archivo `formspree.json` tiene el mismo efecto que añadir el plugin de Google Sheets en el panel de Formspree.

## Obtén tus credenciales

Para usar el plugin de Google Sheets a través del CLI necesitamos crear una cuenta de servicio en la consola de Google Cloud.

### 1\. Crea una cuenta de servicio

Visita la [Google Cloud Console](https://console.cloud.google.com) asegurándote de haber iniciado sesión con la cuenta de Google correcta. En la parte superior derecha verás una lista de proyectos.

  
![mceclip0.png](/images/zendesk/20ae06b8574ab09d.png)

Si ya tienes un proyecto, haz clic en el desplegable que contiene el nombre de tu proyecto, como por ejemplo _Formspree Test Account_. Si no tienes un proyecto, aparecerá de manera diferente. Al hacer clic en el desplegable se mostrará un modal con la opción _New Projects_.  
  
![mceclip1.png](/images/zendesk/b1ba54d504b7c56f.png)

Asigna un nombre al proyecto y créalo

  
![mceclip2.png](/images/zendesk/499671dac6e1fab7.png)

### 2\. Crea una cuenta de servicio

Accede a la opción de cuenta de servicio buscando en la barra de búsqueda o en el menú lateral. Si tienes más de un proyecto, debes especificar qué proyecto quieres usar.

Haz clic en **Create Service Account**.

![mceclip3.png](/images/zendesk/1a64a681d70abb18.png)

Añade un nombre y descripción de servicio y haz clic en **Done**.  
  
![mceclip4.png](/images/zendesk/ead9adf89fba5ab5.png)

Deberías ver la cuenta listada en el panel. Necesitaremos el correo de cuenta de la tabla para el archivo `formspree.json`.

## ![mceclip5.png](/images/zendesk/bf15ef4d16106432.png)

### 3\. Obtener tu clave privada

En el panel de cuentas de servicio haz clic en la columna **Actions** de la fila de la cuenta que creaste en el último paso. Luego haz clic en **Create Key**, selecciona la opción **JSON** y haz clic en **Create**.  
  
![mceclip6.png](/images/zendesk/e6e5556e0c0d4fe5.png)  
  

Esto te devolverá un archivo para descargar que contiene la clave privada y otros datos privados de la cuenta de servicio. Guarda esta información de forma segura. La necesitaremos en el paso de configuración de formspree.json.

### 4\. Habilita las APIs de Drive y Spreadsheet

Para crear una hoja de cálculo, Formspree requiere que uses las APIs de Google Drive y Sheets con tus credenciales. Para ello, necesitas habilitar ambas APIs en Google Cloud Console.

Selecciona tu proyecto y accede a [https://console.cloud.google.com.](https://console.cloud.google.com) Escribe en la barra de búsqueda **Google Drive API**. Haz clic en **Enable** en la página resultante para habilitar la API.  
  
Repite este paso buscando **Google Sheets API**.  
![mceclip0.png](/images/zendesk/59935ef1cfded160.png)

## Configuración de formspree.json

| Clave | Tipo | Descripción |
| --- | --- | --- |
| `app` |  String | Debe ser `googlesheets` |
| `privateKey` |  String | El dato `private_key` que tienes en el archivo JSON generado en el paso [**Obtener tu clave**](#h_01EVS55S2WNW8S6SM40QFGMZQG). |
| `serviceAccount` |  String | El correo de la cuenta de servicio que recibiste en el paso **Crea una cuenta de servicio**. Puedes verlo en el archivo JSON que contiene los datos de tu cuenta de servicio como `client_email`. También puedes acceder al panel de cuentas de servicio y copiar la columna del correo. |
| `type` |  String | Debe ser `sendToSpreadsheet` |
| `sendInvitationTo` |  String | Opcional. El correo con el que se compartirá la hoja de cálculo creada por Formspree. Se enviará un correo a la dirección configurada aquí. Por defecto: el correo de destino de tu formulario y, si no existe, el correo de tu cuenta. En ese orden. Si ninguno existe, se mostrará un error en la consola. |

**Ejemplo**

```javascript
{
  "forms": {
    "support": {
      "name": "Clients Spreadsheet",
      "actions": [
        {
          "app": "googlesheets",
          "privateKey": "$GOOGLE_SHEETS_KEY",
          "serviceAccount": "formspree-test-service-account@formspree-test-account.iam.gserviceaccount.com",
          "type": "sendToSpreadsheet",
          "sendInvitationTo": "other@email.com"
        }
      ]
    }
  }
}
```

## Reglas de validación

No se configuran reglas de validación implícitamente.
