# Zapier

Connect Rasket to the other apps you use in Zapier, without writing code. Send an email when a form is filled in, add a contact when someone pays, or start a workflow when an email bounces.

> Coming soon: the Rasket app is not listed on Zapier yet. This page describes it as it will ship.

## What you can automate

The Rasket app has ten triggers, eighteen actions and six searchs. A trigger starts a Zap when something happens in Rasket. An action does something in Rasket when something happens elsewhere. A search finds something in Rasket for a later step to use.

| Trigger | Starts a Zap when |
| --- | --- |
| New Email Event | An email you sent is delivered, bounces, is opened, has a link clicked, or reaches another event you pick. |
| New Received Email | Mail arrives at one of your receiving addresses. |
| New Contact | A contact is added to your audience. |
| Updated Contact | A contact's details change. |
| New Unsubscribe | Someone unsubscribes from all your email through an unsubscribe link or your preference page. |
| Deleted Contact | A contact is deleted. |
| New Suppression | An address is added to your suppression list. |
| New Sent Campaign | A campaign has been sent. |
| New Automation Run Event | An automation starts, completes, fails or is stopped for a contact. |
| New Verified Domain | A domain is verified and ready to send from. |

| Action | What it does |
| --- | --- |
| Send Email | Sends an email from one of your verified domains, written in the step or from a template. |
| Send Template Email | Sends one of your published templates, with its variables filled in. |
| Schedule Email | Sends an email later, at a time you set. |
| Reschedule Email | Moves a scheduled email to a new time. |
| Cancel Scheduled Email | Cancels a scheduled email before it goes. |
| Create or Update Contact | Adds a contact, or updates the one with that email address. |
| Add Contact to Segment | Adds a contact to one of your segments. |
| Remove Contact From Segment | Takes a contact out of one of your segments. |
| Subscribe Contact to Topics | Subscribes a contact to one or more topics. |
| Unsubscribe Contact From Topics | Unsubscribes a contact from one or more topics. |
| Delete Contact | Deletes a contact for good. |
| Add to Suppression List | Stops all email to an address. |
| Remove From Suppression List | Lets email reach an address again. |
| Send Custom Event | Sends one of your custom events for a contact, which starts the automations that listen for it. |
| Create Campaign | Creates a campaign for a segment, as a draft or sent straight away. |
| Send Campaign | Sends a draft campaign now, or schedules it. |
| Send Test Campaign | Sends a test of a draft campaign to up to five addresses. |
| Cancel Campaign | Cancels a scheduled campaign, or stops one that is sending. |

| Search | What it does |
| --- | --- |
| Find Contact | Finds a contact by email. |
| Find or Create Contact | Finds a contact by email, and adds one when there is none. |
| Find Email | Finds an email you sent, by its ID. |
| Find Template | Finds a template by its name or alias. |
| Find Segment | Finds a segment by its name. |
| Find Campaign | Finds a campaign by its name. |

Wherever a step needs a template, segment, topic, campaign, event, automation or scheduled email, you pick it from a list. You can also map one from an earlier step.

## Popular automations

Ready-made Zaps for the Rasket app, each with its fields already mapped. They appear on the Rasket app's page in Zapier once Zapier has published them: search for Rasket there and pick one to start from.

- **Send Rasket emails for new Typeform entries.** Thank everyone who fills in your form, from your own domain.
- **Send Rasket emails for new Google Forms responses.** Tell respondents their answers arrived.
- **Send Rasket receipt emails for new Stripe payments.** Send your own receipt the moment a customer pays.
- **Send Rasket template emails for new Shopify orders.** Order confirmations built from a template you designed, with the order filled in.
- **Send Rasket emails for new Calendly invitees.** Confirm a booking in your own words.
- **Send Rasket emails for new Webflow form submissions.** Reply to the people who use your site's forms.
- **Add new HubSpot contacts to Rasket as contacts.** Keep your audience in step with your CRM.
- **Add new Salesforce leads to Rasket as contacts.** Start emailing new leads as soon as sales logs them.
- **Update HubSpot contacts for new Rasket email bounces.** Mark contacts whose address bounced for good.
- **Send Slack channel messages for new Rasket received emails.** See mail to your support or sales address where your team talks.
- **Add new Rasket received emails to Google Sheets as rows.** Keep a sortable log of the mail your domain receives.
- **Add new Rasket email opens and clicks to Google Sheets as rows.** See who reads your email and which links they follow.

## Before you start

- **A verified sending domain,** for the send actions. Add one under Domains and publish its records; the [domains guide](https://www.rasket.com/docs/domains) walks through it.
- **Admin on the team you connect.** Only an admin can approve the sign-in.
- **Room for webhook endpoints,** for the instant triggers. Each Zap that is turned on and starts with one uses one of your plan's webhook endpoints.

## Connect your Rasket account

1. In Zapier, search for Rasket when you add a step to a Zap, and choose to connect a new account.
2. Choose **Sign in with Rasket**. Sign in to Rasket if you are not already.
3. Rasket shows what Zapier is asking to do, one line per permission. Pick the project the connection is for and choose **Approve**. Zapier names the connection after your team.

There is no API key to create or paste.

> The connection acts for that team. It is listed under Settings → Connected apps, and revoking it there stops every Zap that uses it. Rasket asks you to sign in again from time to time, and at least every 90 days. Zapier then asks you to reconnect.

## Triggers

### New Email Event

Pick one or more **Events**: Sent, Delivered, Delivery delayed, Bounced, Marked as spam, Opened, Link clicked, Failed, Suppressed, Scheduled or Canceled.

Each run carries the email (its ID, from, to, subject, Message-ID, tags and template) and the event's details: the bounce type and message, the opened or clicked link, the failure or suppression reason, or the delay. Fields that do not apply to an event are empty, so the same fields are there to map on every run. The [events guide](https://www.rasket.com/docs/events) explains what each event means.

### New Received Email

No settings. Each run carries the sender, the recipients, the subject, the text and HTML bodies, and each attachment's file name. Attachments themselves are not passed to Zapier.

If the message body cannot be read, the Zap still runs, with **Body Available** set to false, so you can decide what to do in the next step. Set up receiving first: see the [receiving guide](https://www.rasket.com/docs/receiving).

### New Contact

No settings. Each run carries the contact's ID, email, name, unsubscribed state, segment IDs and when it was created and updated.

### Updated Contact and Deleted Contact

No settings. Each run carries the same contact fields as New Contact. Updated Contact does not say which field changed. Don't follow it with Create or Update Contact on the same contact: that update starts the Zap again.

### New Automation Run Event

Pick the **Events** (Started, Completed, Failed or stopped) and, if you like, one **Automation**. Each run carries the run's ID, the automation's ID, the contact's ID, the event that started it, its status and, for a failed run, the reason.

The triggers above are instant. Turning a Zap on creates a webhook endpoint in Rasket for exactly the events it listens for. Turning it off deletes that endpoint. You will see these under Webhooks; leave them to Zapier.

### New Unsubscribe, New Suppression, New Sent Campaign and New Verified Domain

No settings. Zapier checks for new ones every few minutes, as often as your Zapier plan allows, and these use no webhook endpoint.

New Unsubscribe catches people who use an email's unsubscribe link or your preference page. An address that was already suppressed, after a bounce for example, is not reported again. An unsubscribe made through the API shows up as Updated Contact instead.

## Actions

### Send Email

| Field | What to put in it |
| --- | --- |
| Template | Optional. Leave it empty to write the email here. Pick a published template to send it instead: HTML Body and Text Body go away and the template's variables appear as fields. |
| To | Required. Up to 50 addresses. |
| From | A dropdown of your verified domains. Pick one, or enter a custom value such as `Name <you@example.com>` on one of them. Required, unless the template you picked sets a sender. |
| Subject | Required, unless the template you picked sets one. |
| HTML Body, Text Body | Without a template: give one or both. |
| Template variables | One field per variable of the template's published version, named after it. A variable with no fallback is required; leave any other blank to use its fallback. Object and list variables take JSON. |
| CC, BCC, Reply-To | Optional, under More options. One or more addresses each. |
| Tags | Optional name and value pairs, such as `invoice` = `1042`. They are stored on the email and come back on its events. |
| Idempotency Key | Optional. Map something unique from the trigger, such as its ID. A second send with the same key within 24 hours returns the first email instead of sending again. |

The step returns the new email's ID, which later steps can map.

### Send Template Email

| Field | What to put in it |
| --- | --- |
| Template | Required. Pick a published template, or type its ID or alias. |
| To, CC, BCC, Reply-To | As for Send Email: up to 50 recipients. |
| From, Subject | As for Send Email: leave them blank to use what the template sets. |
| Template variables | One field per variable of the template's published version, named after it. A variable with no fallback is required; leave any other blank to use its fallback. Object and list variables take JSON. |
| Variables | Shown when the template is mapped from an earlier step, so its variables can't be listed: give them by name, such as `first_name` = `Ronald`. |
| Tags, Idempotency Key | As for Send Email. |

### Create or Update Contact

| Field | What to put in it |
| --- | --- |
| Email | Required. The contact is matched on it: an existing contact is updated, not doubled. |
| First Name, Last Name | Optional. |
| Unsubscribed | Optional. True unsubscribes the contact from everything. Blank keeps their current state, and nothing here ever resubscribes someone who opted out. |
| Properties | Optional custom properties by key. Each key must already exist under Contacts → Properties, with a matching type. |
| Add to Segments | Optional. Segments the contact is already in are kept. |
| Subscribe to Topics, Unsubscribe from Topics | Optional. Pick from your topics. |

### Schedule Email, Reschedule Email and Cancel Scheduled Email

Schedule Email has the fields of Send Email, plus **Send At**: a date and time, or a phrase such as `tomorrow at 9am`, up to 30 days ahead. Reschedule Email and Cancel Scheduled Email take the **Email** from a list of your scheduled emails, or the Email ID mapped from the step that scheduled it.

### Contacts, segments and topics

Add Contact to Segment, Remove Contact From Segment, Subscribe Contact to Topics, Unsubscribe Contact From Topics and Delete Contact each take a **Contact Email** (or the contact's ID) and pick the segment or topics from a list.

- A segment with a filter keeps including the contacts that match it.
- Someone who unsubscribed from everything still gets no campaigns, whatever their topics say.
- Delete Contact can't be undone.
- Removing a contact or a membership that is already gone succeeds, so a replayed Zap run doesn't fail.

Create or Update Contact also shows one field per contact property you have set up in Rasket, so you can fill each one by name.

### Add to Suppression List and Remove From Suppression List

One field, **Email**. Rasket sends nothing to a suppressed address. Removing an address that bounced or reported you for spam can hurt your sending reputation, so remove only ones you know are good.

### Send Custom Event

Pick an **Event** and give a **Contact Email**. If the event has a schema in Rasket, each of its fields appears by name; anything else goes under **Data**. The event starts every automation that listens for it. Rasket can't tell a replayed run from a new one here, so a replay sends the event again.

### Campaigns

Create Campaign takes a **Segment**, a **From** address on a verified domain, a **Subject**, and either a **Template** or your own HTML and text. Set **Send Now** to send it straight away; leave it off to keep a draft. Send Campaign and Send Test Campaign pick from your drafts; Cancel Campaign picks from your scheduled and sending campaigns.

A campaign sends only when it passes Rasket's send checks, such as a verified domain, a postal address on your team and a segment that exists. If one fails, the step stops with the reason.

## Searches

### Find Contact

One field, **Email**. It finds the contact with that address, or reports none. Choose **Find or Create Contact** to add the contact when there is none, using the fields of Create or Update Contact.

### Find Email, Find Template, Find Segment and Find Campaign

Find Email takes an Email ID and returns the email with its latest status. The others take a name (or a template's alias) and find only an exact match, ignoring case, so a later step never acts on a near miss.

## Sending each email once

Zapier can replay a step that failed, or a whole Zap run, and a replay sends again. To make a repeat harmless, map something unique from the trigger, such as its ID, into **Idempotency Key**. Rasket then answers a repeat within 24 hours with the first email instead of sending a second. The [idempotency guide](https://www.rasket.com/docs/idempotency) has the details.

## Troubleshooting

### Zapier asks you to reconnect Rasket

Rasket ended the connection. It was revoked under Settings → Connected apps, the admin who approved it left the team, or it reached its 90 days. Reconnect and approve again.

### “Approved without the permission this step needs”

The connection was approved before this step existed. Reconnect Rasket in Zapier and approve again, so the connection includes the new permission.

### A send is refused because of the From address

The address must be on a domain your team has verified for sending. The From dropdown and its help text list them. If it says you have none, add and verify a domain first.

### “Webhook endpoint limit” when you turn a Zap on

Every Zap that is on and starts with a Rasket trigger holds one webhook endpoint, and your plan allows a fixed number. Turn off a Zap you no longer need, delete endpoints you do not use under Webhooks, or move to a larger plan.

If you delete a Zap without turning it off first, its endpoint can stay behind. Delete it under Webhooks.

### Rate limit or sending quota

A team may make ten requests a second. A busy Zap that goes over is slowed down and retried by Zapier on its own; see [rate limits](https://www.rasket.com/docs/rate-limits). A used-up sending quota is different: the step stops with a message saying so, and it will not succeed until the quota resets or you raise it under Billing.

### Any other refusal

The step shows Rasket's own error message, naming the field it is about. The [errors page](https://www.rasket.com/docs/errors) lists every one.
