# Typeform recipes

> Text each person who fills in a form from your own number within seconds.

Three recipes for Typeform. Each names its trigger and the BlueBot step, lists the fields to map and says how to test it with your own number before anyone else gets a text.

## How Typeform connects

- **[Text Hook](https://usebluebot.com/docs/text-hooks)**: A Text Hook is a BlueBot address the app posts its own webhook to. You map its fields to a recipient and a template, and each post becomes a text.
- **[Zapier](https://usebluebot.com/docs/zapier)**: BlueBot’s Zapier app has a Send Text action and instant triggers for incoming texts and every change of state.

## Text people who fill in a form

| Part             | What it is                                          |
| ---------------- | --------------------------------------------------- |
| Trigger          | Typeform’s webhook for a new response               |
| Action           | A BlueBot **Text Hook** turns each post into a text |
| Connects through | [Text Hook](https://usebluebot.com/docs/text-hooks)                       |

### Steps

1. Make a Text Hook in BlueBot and copy its address.
2. Add the address as a webhook on your form in Typeform.
3. Submit a test response, then pick the phone number and first name answers from the payload BlueBot kept.
4. Write the template, and every response becomes a text from your number.

### Map the fields

| Text Hook setting | Set it to                                                                                                      |
| ----------------- | -------------------------------------------------------------------------------------------------------------- |
| Recipient         | The field in Typeform’s post that holds the person’s phone number, written as a path such as `{{body.phone}}`. |
| Text              | Hi {{body.first_name}}, thanks for filling in the form. I’ll look it over and text you back today.           |
| Metadata          | `source` set to `typeform`. BlueBot adds the hook’s id by itself.                                              |

### Test it

Post a sample to the hook’s address with your own number in the phone field, as below. A text arrives on your phone, and the hook’s page lists the post.

```bash title="A test post shaped like Typeform’s"
curl -X POST "https://usebluebot.com/h/YOUR_HOOK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+15555550123","first_name":"Maria"}'
```

## Follow up until they answer

| Part             | What it is                                          |
| ---------------- | --------------------------------------------------- |
| Trigger          | Typeform’s webhook for a new response               |
| Action           | A BlueBot **Text Hook** turns each post into a text |
| Connects through | [Text Hook](https://usebluebot.com/docs/text-hooks)                       |

### Steps

1. Make a sequence in BlueBot: a text now, another two days later and a last one a week later.
2. Set your Text Hook to enroll each person in that sequence.
3. BlueBot stops the sequence for anyone who replies or texts STOP.

### Map the fields

| Text Hook setting | Set it to                                                                                                      |
| ----------------- | -------------------------------------------------------------------------------------------------------------- |
| Recipient         | The field in Typeform’s post that holds the person’s phone number, written as a path such as `{{body.phone}}`. |
| Text              | Hi {{body.first_name}}, just checking you saw my text about your form. Want to set up a quick call?          |
| Metadata          | `source` set to `typeform`. BlueBot adds the hook’s id by itself.                                              |

### Test it

Post a sample to the hook’s address with your own number in the phone field, as below. A text arrives on your phone, and the hook’s page lists the post.

```bash title="A test post shaped like Typeform’s"
curl -X POST "https://usebluebot.com/h/YOUR_HOOK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+15555550123","first_name":"Maria"}'
```

## Text yourself each entry

| Part             | What it is                             |
| ---------------- | -------------------------------------- |
| Trigger          | Typeform’s New Entry trigger in Zapier |
| Action           | BlueBot’s **Send Text** action         |
| Connects through | [Zapier](https://usebluebot.com/docs/zapier)                 |

### Steps

1. Start a Zap with Typeform’s New Entry trigger.
2. Add BlueBot’s Send Text action with your own number in To.
3. Put the answers you care about in Text.

### Map the fields

| BlueBot field                | Map it to                                                                                                                                     |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| To                           | The person’s mobile number from Typeform. US numbers can leave off the +1.                                                                    |
| Text                         | New Typeform entry from {{name}}: budget {{budget}}, wants to start {{start_date}}.                                                     |
| `{{name}}` in the text       | Typeform’s name field.                                                                                                                        |
| `{{budget}}` in the text     | Typeform’s budget field.                                                                                                                      |
| `{{start_date}}` in the text | Typeform’s start date field.                                                                                                                  |
| Metadata                     | `source` set to `typeform`, and `record_id` set to the record’s id, so the status and reply webhooks for this text can find the record again. |
| Service                      | Auto, the default: iMessage when the person uses it, otherwise SMS through your iPhone.                                                       |

### Test it

Put your own number in **To** and press **Test step**. A text arrives on your phone from your own number, and Zapier shows the message BlueBot returned with `state: "queued"`. Then map Typeform’s field back into **To** and turn the Zap on.

## Before you turn it on

- Text only people who asked to hear from you. Anyone who replies STOP goes on your stop list, and BlueBot cancels texts to them. [Stop words](https://usebluebot.com/docs/concepts/stop-words)
- A text that can’t go yet waits with a hold rather than failing: quiet hours, your Mac away, a daily limit. [Holds](https://usebluebot.com/docs/concepts/holds)
- [Typeform with BlueBot](https://usebluebot.com/integrations/typeform) on the integrations page says what else the two do together.
