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

# Integrations

> Connect your automation to the outside world — call any API, read and write Google Sheets, manage Google Calendar, detect a country, and send event invites.

## What is this?

**Integration** steps let your automation reach outside the platform: fetch or send data with an API, work with a Google Sheet or Calendar, or connect to your events. They work on every channel.

\[SCREENSHOT: automation-steps-integrations-palette — The builder palette showing the integration steps]

## What can I do here?

| Step                                              | What it does                                                    |
| ------------------------------------------------- | --------------------------------------------------------------- |
| [HTTP API](#http-api)                             | Calls any web address, and saves parts of the reply into fields |
| [Google Sheets](#google-sheets)                   | Adds, updates, or reads rows in a Google Sheet                  |
| [Google Calendar](#google-calendar-beta) *(beta)* | Creates events or looks up appointments                         |
| [Detect Country](#detect-country)                 | Works out the country from a phone number                       |
| [Send Event Invite](#send-event-invite)           | Sends a registration button for an event                        |
| [Send Event QR](#send-event-qr)                   | Re-sends a ticket QR code                                       |

## How to use it

### HTTP API

**What it does:** makes a request to any web service — yours or someone else's — and can save data from the reply into contact fields.
**When to use it:** looking up an order, creating a record in your CRM, checking stock, or telling your own system something happened.

1. **HTTP Method** — **GET**, **POST**, **PUT**, **PATCH**, or **DELETE**.
2. **Request URL** (required) — the address. You can add variables into it.
3. **Query Parameters** and **Headers** — add name/value pairs, such as an `Authorization` header.
4. **Request Body (JSON)** — the data to send, with variables if you like.
5. Use the **Response Preview** to see the reply.
6. **Response Mapping** — click **Add Mapping**, choose a **JSON Path** in the reply (for example `data.user.name`), and the **field to store it in**. You can also apply an optional transformation.

<Note>
  Requests are made from the platform's servers, with protection against calls to internal addresses.
</Note>

### Google Sheets

**What it does:** adds a row, updates a row, or fetches a value from a Google Sheet.
**When to use it:** logging leads or orders in a spreadsheet, or reading a price list.

First connect your Google account — see [Google](/workspace/google/overview). Then:

1. **Operation** (required) — **Add New Row**, **Update Row**, or **Fetch Row Value**.
2. **Select Sheet** and **Select Tab**.
3. For **Add New Row**, use **Column Values** to map each column to a value (variables work).
4. For **Update Row**, choose the **Reference Column** and **Reference Value** used to find the row, then set the **Columns to Update**.
5. For **Fetch Row Value**, set the **Search Criteria** (with AND matching) and choose which **Fetch Columns** to save into which fields.

*Good to know:* row 1 of the sheet must hold the column headers. If columns don't appear, click **Refresh Columns from Sheet**.

### Google Calendar *(beta)*

**What it does:** creates a calendar event or retrieves events.
**When to use it:** booking an appointment the customer chose, or checking if a slot is free.

1. **Operation** (required) — **Create Event** or **Retrieve Events**.
2. **Select Calendar**, and optionally a **Timezone** (the default is the calendar's own).
3. **Create Event:** set the **Event Title**, **Description**, **Location**, **Start Time**, and **End Time** — either a direct time or **Start Time + Minutes**. Turn on **All Day Event** for whole-day events. Dates can be read from the customer's message in several formats, such as `DD/MM/YYYY`.
4. **Retrieve Events:** search by attendee email, keyword, and a **From Date** and **To Date**, set **Max Results**, and use **Save Results** to map fields like **Event Title**, **Event Start Time**, and **Total Events Found** into custom fields.

Connect your account first — see [Google](/workspace/google/overview).

### Detect Country

**What it does:** works out the contact's country from their phone number (or another field) and saves it.
**When to use it:** showing prices in the right currency, or sending customers to the right team.

* **Phone Source** — the contact's phone number, or a custom field.
* **Save Country Code To** — for example `US` or `GB`.
* Optionally **Also Save Country Name To** — for example "United States".

### Send Event Invite

**What it does:** sends a registration button with an automatically built link to one of your events.
**When to use it:** inviting contacts to a webinar, workshop, or meetup.

* **Event** — choose a published event from [Event Studio](/workspace/events/overview).
* **Message body** and **Button label**.
* **Closed message** — what customers see if registration is closed.

### Send Event QR

**What it does:** finds a contact's ticket by phone or email and re-sends its QR code.
**When to use it:** "I lost my ticket" — let customers get it again without contacting you.

* **Event** and **Lookup field** — **Phone** or **Email**, taken from the conversation.
* **Not found message** — for example "No ticket found for this phone/email."

## Troubleshooting / Technical Notes

* **HTTP API returns nothing useful.** Check the URL and headers, and look at the **Response Preview**. Then check the **JSON Path** you mapped.
* **"No Google account connected."** Connect Google first — see [Google](/workspace/google/overview).
* **Google Sheets says no columns found.** Row 1 needs headers. Then click **Refresh Columns from Sheet**.
* **Send Event Invite says registration is closed.** The event isn't published or has closed — check it in [Event Studio](/workspace/events/overview).

## Related docs

* [Builder Steps overview](/workspace/automation/steps/overview)
* [Google](/workspace/google/overview)
* [Event Studio](/workspace/events/overview)
* [Custom Fields](/workspace/contacts/custom-fields)
