Skip to content
Esc
  • OverviewGuidesWhat exists today, and where to start.
  • QuickstartGuidesKey, domain, first send — in that order.
  • AuthenticationGuidesBearer keys, the mandatory User-Agent, and what each refusal means.
  • ErrorsGuidesThe whole vocabulary, with the status each name carries.
  • IdempotencyGuidesRetry a send without sending it twice.
  • PaginationGuidesCursors are item IDs, not page numbers.
  • Rate limitsGuidesTen a second per team, and the headers that tell you where you are.
  • Sending newslettersGuidesUse a campaign, or include an unsubscribe link.
  • EventsGuidesEvery event a webhook can carry, with one real payload each.
  • DomainsGuidesThe records, where they go at each registrar, and what the page does while you wait.
  • TrackingGuidesOpens and clicks: one record, two toggles, and what an open really means.
  • Sign-up formsGuidesPop-ups and embedded forms on your site, and the rules that pick one.
  • TemplatesGuidesFifty-seven starters sorted by goal, and how to keep a campaign as a template.
  • ReceivingGuidesInbound mail, and the Inbox: a webhook fires, you read it, you answer it.
  • InboxGuidesChannels, personal mailboxes and seats: who sees what, and where a reply goes.
  • Mail appsGuidesComing soon: your Rasket address in Apple Mail, Outlook and the Gmail app.
  • Inbox APIGuidesOpen, read and answer support conversations from your app, with the same key.
  • Support inbox in your appGuidesA Contact us form that opens a conversation your team answers, in five minutes.
  • Replies to your emailsGuidesOne field on a send, and the customer's reply opens a conversation.
  • Let an agent triageGuidesAn AI agent reads, notes and drafts over MCP; a person sends.
  • Node SDKGuidesThe rasket package: typed from the API's own document, retries only what is safe.
  • Python SDKGuidesThe rasket package on PyPI: the Node client's methods, in snake_case, over httpx.
  • MCP serverGuidesConnect Claude, ChatGPT or any MCP client: your scopes, no key.
  • AI assistGuidesSubject lines, drafts and diagnosis — in the dashboard and over the API, off until you allow it.
  • AgentsGuidesLet an AI agent set Rasket up: the skill, the rules file, MCP, and the recipe they share.
  • OAuthGuidesLet another app act for a team: register, authorize with PKCE, exchange, refresh.
  • Single sign-onGuidesOIDC login for your team, a domain proved by DNS, enforcement and break-glass.
  • IntegrationsGuidesEvery integration and its status, and Rasket on Vercel, Netlify and Cloudflare.
  • SMTPGuidesSend from anything that speaks SMTP: settings, setup guides, limits and replies.
  • ZapierGuidesSend email, add contacts and react to email events from a Zap, with no code.
  • n8nGuidesThe Rasket node and trigger for n8n workflows: install, connect, every operation.
  • VercelGuidesAdd Rasket on Vercel: a Sending key in each project as RASKET_API_KEY, no copying.
  • WordPressGuidesThe Rasket plugin: every email your site sends, through Rasket, with a safe fallback.
  • NotionGuidesTurn a Notion database of people into contacts in a segment, once or every hour.
  • Migrating to RasketGuidesBring contacts, unsubscribes, lists and templates from Mailchimp, Klaviyo and more.
  • PipedreamGuidesRasket actions and instant sources for Pipedream workflows and Connect apps.
  • FramerGuidesThe Rasket plugin: sign-up forms on a Framer site, and Framer forms into contacts.
  • MakeGuidesComing soon: send email and react to email events from a Make scenario.
  • monday.comGuidesTurn board items into contacts and send a template when a board changes.
  • ClickUpGuidesReady-made Zapier and Make automations between ClickUp tasks and Rasket.
  • SlackGuidesEmail alerts in the Slack channels you choose, and /rasket for numbers and look-ups.
  • Google SheetsGuidesComing soon: turn a sheet tab of people into contacts in a segment.
  • AirtableGuidesComing soon: turn an Airtable table of people into contacts in a segment.
  • EmailsAPI referenceSend, batch, retrieve, list, reschedule, cancel, attachments.
  • DomainsAPI referenceAdd a domain, publish its records, verify it.
  • API keysAPI referenceCreate, list, rename and revoke credentials.
  • WebhooksAPI referencePayloads, signature verification, retries and replay.
  • SuppressionsAPI referenceAddresses we will not send to, and why.
  • LogsAPI referenceEvery request made with this team's credentials.
  • MetricsAPI referenceDelivery, bounce, complaint and engagement counts.
  • TemplatesAPI referenceVersioned email content with typed variables, addressed by ID or alias.
  • ContactsAPI referenceYour audience: contacts, their typed properties, segments and topic choices.
  • SegmentsAPI referenceAudiences defined by a filter, by hand, or both.
  • TopicsAPI referenceWhat contacts subscribe to, and the preference page's list.
  • CampaignsAPI referenceCampaigns, at /broadcasts: one message to a segment, from draft to results.
  • ImportsAPI referenceCSV uploads: column mapping, conflicts and counts.
  • AutomationsAPI referenceWorkflows that run per contact: the graph, its versions, and every run.
  • Custom eventsAPI referenceThe names your product fires, and what starts a workflow.
  • ReceivingAPI referenceMail sent to you: the message, its attachments, its raw source.
  • OAuthAPI referenceClient registration, the token endpoint, and the grants a team has given.
  • TeamAPI referenceThe team a credential belongs to: its plan, sender identity, AI flag and members.
  • BillingAPI referencePlan, usage, invoices and add-ons, and the hosted pages where a customer pays.
  • AI helpersAPI referenceSubject lines, a first draft, and why an email did what it did.
  • InboxAPI referenceChannels, conversations, messages, notes and search in your support inbox.

GuidesGoogle Sheets

Google Sheets

Turn a sheet of people into an audience. Rasket reads the tab you choose, keeps its people as contacts in a segment, once or every hour, and you send to that segment with campaigns.

Coming soon: connecting Google Sheets is not switched on yet. This page describes it as it will ship. Until then, download the sheet as a CSV file and import it in Audience.

What it does

  • Sees only the files you pick. Rasket asks Google for access to the spreadsheets you choose in Google's file picker, and nothing else in your Drive.
  • One tab, one sync. A sync says which column holds the email address, what the other columns become, and the segment the people go into.
  • Adds and updates, never removes. New rows become contacts, and changes in the sheet update them. Nobody is removed or unsubscribed by a sync.
  • Never changes your rows. With write-back on, Rasket writes only to its own tab in the spreadsheet.

Before you start

  • An admin of the Rasket project. Connecting a Google account and adding a sync are an admin's decisions. Other members can see the syncs but not change them.
  • A tab with a header row. Row 1 names the columns. One of them holds one email address per row.
  • Their agreement. Only people who agreed to hear from you should arrive subscribed. An opt-in column, such as a checkbox, says who did.
  • A verified sending domain, for the campaigns you send afterwards. The domains guide walks through it.

Connect a Google account

  1. In Rasket, open Settings, then Integrations, then Google Sheets, and choose Connect a Google account.
  2. Rasket says what it will read. Choose Continue to Google.
  3. Sign in to Google and allow Rasket to see the files you pick. Keep that box ticked: without it Rasket can't read any sheet.
  4. You are back on Settings, and the account has its own card.

Finish within ten minutes of choosing Continue. After that the connection expires and nothing is read; start again from Settings. A project can connect more than one Google account.

Add a sync

  1. On the account's card, choose Add a sync. Google's file picker opens. Pick the spreadsheet.
  2. Choose the tab. The form lists the columns named in its first row.
  3. Map the columns, as the table below describes.
  4. Say who agreed to hear from you, as the consent table describes.
  5. Choose Save and sync. The sync runs once straight away, and its page shows what it did.

Only the admin who connected a Google account can open the file picker on it, because it shows their Drive. Another admin connects their own account.

The sync form
FieldWhat it takes
Email address columnRequired. The column that holds one address per row.
First name, Last nameOptional. Any column. Leave the rest as Don't copy.
A contact propertyAny other column, into one of your project's contact properties. Add properties in Audience first.
Opt-in column (optional)A checkbox column, or a column and the value that means yes, such as Yes. Rows that say yes arrive subscribed; the rest arrive not subscribed.
Add them to the segmentAn existing segment, or A new segment… with a name you type. Every synced person joins it.
Subscribe them to a topic (optional)Only people who arrive subscribed. People who opted out of the topic stay opted out.
RunOnce, now, or Every hour.
Write email activity back (optional)Rasket keeps a "Rasket activity" tab in the same spreadsheet. The sync never reads that tab.

Two columns with the same name, or a column with no name in row 1, can't be mapped. Rename them in the sheet first.

Who arrives subscribed

Consent
What you setWhat happens
An opt-in column, and you confirm the statementRows that say yes arrive subscribed. Every other row arrives as a contact who is not subscribed.
No opt-in column, and you confirm everyone in the sheet agreedEvery row arrives subscribed.
No opt-in column, and nothing confirmedEvery row arrives as a contact who is not subscribed.

A contact who is not subscribed gets no campaigns, only the transactional email you send them. Rasket keeps the statement you confirmed, who confirmed it and when, on the sync.

A contact who arrived not subscribed is subscribed once their row says yes. Someone who unsubscribed stays unsubscribed, whatever the sheet says.

What a sync never does

  • It never removes or unsubscribes anybody. A row deleted from the sheet, or no longer opted in, leaves the contact and its segment as they are.
  • It never touches people who said no. Unsubscribed contacts, addresses on your suppression list and contacts deleted in Rasket are skipped and left alone. A contact you delete stays deleted.
  • It never changes the tab it reads.

Changes in the sheet win over names and properties edited in Rasket. An email address changed in the sheet becomes a new contact; the old one stays. When one address appears in several rows, the last row wins.

Write email activity back

Turn on Write email activity back and Rasket keeps a tab called “Rasket activity” in the same spreadsheet, one row per contact the sync added. It is written after each run, and every hour when something changed. It covers campaigns only.

The activity tab
ColumnWhat it holds
EmailThe contact's address.
StatusSubscribed, Not subscribed, Unsubscribed, Bounced, Marked as spam or Suppressed.
Last emailThe name of the last campaign sent to them.
Last eventWhat happened last: Sent, Delivered, Opened, Clicked, Bounced or Marked as spam.
WhenWhen that happened, in UTC.

The Google account needs edit access to the spreadsheet. If a tab with that name already exists, rename it so Rasket can create its own. If you delete the tab, Rasket creates it again.

Send to them

In Campaigns, create a campaign for the sync's segment and send it. With an hourly sync, the segment keeps growing as rows are added. The campaigns reference covers sending one over the API.

Managing a sync

  • Sync now on the sync's page runs it at once.
  • Write back now rewrites the activity tab at once.
  • Change this sync edits the mapping, the segment, the topic, the schedule or write-back.
  • Runs shows the newest runs and how many rows each added, updated and skipped. Rasket keeps the last 30.
  • Delete sync stops it. The contacts it added stay.
  • Disconnect on the account's card deletes its syncs and ends Rasket's access. The contacts stay.

Limits

  • Hourly, not instant. An hourly sync runs about once an hour. Use Sync now when you need a change sooner.
  • 20,000 rows a run. A bigger tab is read over several runs, each one continuing where the last stopped.
  • Columns A to ZZ. Columns past ZZ are not read.
  • Your plan's contact limit applies, as it does to an import. Rows past it are skipped.

Troubleshooting

“Google Sheets isn't available here”

Connecting Google Sheets is not switched on for this deployment. Download the sheet as a CSV file and import it in Audience instead.

“This connection has expired”

More than ten minutes passed, or the connection started somewhere other than Rasket. Nothing was read. Start again from Settings → Integrations → Google Sheets.

Rasket says it can't see your files

The box that lets Rasket see the files you pick was unticked on Google's screen. Connect again and leave it ticked.

The file picker doesn't open

Only the admin who connected the Google account can open it. Connect your own account, or ask that admin to add the sync.

“Google no longer accepts Rasket's access”

Rasket's access was removed in your Google account, or refused. The account's syncs are paused. Choose Reconnect on its card; the syncs start again.

The tab or a column is gone

A renamed tab still works. A deleted tab stops the sync: add a new sync for the tab you use now. A renamed or deleted column in row 1 stops the sync too, and its page names the column. Choose it again, or Don't copy, and save.

“Rasket can only read this spreadsheet”

Write-back needs edit access. Give the Google account that connected it edit access, or turn write-back off. The import keeps running either way.

Rows were skipped

The sync's Runs list says why for a sample of rows. A row is skipped when it has no valid email address, has the same address as a later row, belongs to someone who unsubscribed, is on your suppression list or was deleted in Rasket, or when the project is at its contact limit. Empty rows are not counted.