---
title: "BirdSend Integration"
description: "BirdSend is email marketing built for creators. Agents create and tag contacts, manage sequences and broadcasts, set automation rules and conversion goals, and connect signup forms to the rest of your workflow."
url: https://flowrunner.ai/integrations/birdsend
date_modified: 2026-09-04T14:28:58-07:00
---

# BirdSend

[Email Marketing](https://flowrunner.ai/integrations/category/email-marketing)

BirdSend is email marketing built for creators. Agents create and tag contacts, manage sequences and broadcasts, set automation rules and conversion goals, and connect signup forms to the rest of your workflow.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 50 actions · API key · available

[BirdSend website](https://birdsend.co/) · [Platform Documentation](https://developer.birdsend.co/) · Capability data verified 2026-08-19

1.  A purchase completes in the store
2.  Agent reads the buyer and the product from the order
3.  List Custom Fields supplies the field keys, because contact values are written under the key rather than the label
4.  Create Contact writes the record, or Update Contact refreshes it while carrying the address the vendor requires on that route
5.  Add Tags To Contact applies the product tag, which is what the automation rules are watching for
6.  The creator sees which rules that tag will start and which sequence the buyer enters
7.  A person confirms before any tag the rules depend on is renamed or removed

## What This Integration Enables

In BirdSend the tag is the currency. Rules are what make anything happen, and their triggers are overwhelmingly tag based: a tag applied, a tag removed, a conversion recorded, a sequence completed, a link clicked. Applying a tag is therefore not labeling, it is invoking. FlowRunner agents use that deliberately, writing a tag as the way to start a sequence rather than reaching for the sequence operation directly, and reading the rule set first so they know what a tag is going to set off.

The rest of the surface follows from it. Sequences and their individual emails are separate records, so an agent can add, reorder or retire a single step. Broadcasts are one off sends with an audience built from conditions naming a tag, a sequence or a segment. Conversions are named goals that can carry a monetary value, which is what makes revenue based rule triggers possible. Contacts, custom fields and forms tie the whole thing back to the site. Several update routes require far more than the field being changed, so the agent reads the record first and sends it back with the change applied, which is a discipline a person editing by hand rarely keeps.

### Without FlowRunner

**Tags as loose labels**: Nobody knows which tags are load bearing, so none of them can be safely cleaned up

**Updates that blank fields**: A patch that omits a field clears it, because several routes replace rather than merge

**Revenue outside the automation**: Purchase value lives in the store, and sequences cannot react to what somebody spent

### With FlowRunner

**Tags as a known vocabulary**: The tag set is read, created deliberately, and checked against the rules that depend on it

**Read before write**: Records are read and sent back with the change applied, so nothing is cleared by omission

**Revenue inside the automation**: Conversions carry a value, and rules can fire on what a contact actually spent

## Use Case Scenarios

### A purchase that starts the right sequence

An order completes in [Shopify](https://flowrunner.ai/integrations/shopify) or a payment clears in [Stripe](https://flowrunner.ai/integrations/stripe). The agent reads List Custom Fields to get the field keys, then calls Create Contact for a new buyer or Update Contact for a returning one, carrying the current address because the vendor requires it on that route even when only a name is changing. Add Tags To Contact applies the product tag by name, creating it if it does not exist, and the rule watching that tag starts the onboarding sequence. Where a flow needs to be explicit rather than relying on a rule, Add Contact To Sequence starts the contact at the first step directly, and Remove Contact From Sequence takes them off it later without touching anything else. Get Contact reads the result back, keeping in mind that field values come back in a different shape from the one they were written in.

### Automations that know what somebody spent

Create Conversion defines a goal with a value and a currency, and Get Pixel Code returns the snippet that attributes page visits and conversions to contacts on the site. List Forms and Get Form resolve where a subscription came from, which Subscribe Contact records as the consent behind mailing that person. With values in place, Create Rule can trigger on a conversion exceeding an amount rather than on a bare event, and the agent reads a working rule with Get Rule first because the parameter shape differs per trigger. List Conversions and Get Conversion keep the goal set in view, Update Conversion adjusts a value, and Delete Conversion retires a goal. Revenue by sequence lands in [Google Sheets](https://flowrunner.ai/integrations/google-sheets) for the weekly review.

### A broadcast built from live conditions

The agent assembles a one off announcement. List Tags and List Sequences resolve the audience conditions, Create Broadcast defines the send with its sender block, including the postal address the vendor requires, and its schedule. If the send needs adjusting, the agent calls Get Broadcast first and sends the whole record back through Update Broadcast with the change applied, because that route replaces rather than patches. After the send, List Broadcasts and Get Broadcast report the delivery statistics, and Delete Broadcast is left alone unless the record is genuinely finished with, since deleting one destroys its statistics. Sequence level numbers come from List Sequence Emails and Get Sequence Email, which carry per step sends, opens, clicks, bounces and complaints.

## Human-in-Loop Highlight

Delete Tag looks like housekeeping and behaves like disarming an alarm. It removes the tag from every contact that carried it, and every rule triggered by that tag stops firing, silently, with no error anywhere. Because tags in BirdSend are how automations are invoked rather than how contacts are described, an unused looking tag is frequently the entry condition for a live sequence that has been quietly onboarding buyers for months. The asymmetry makes it easier to get wrong, too: tags are added by name and removed by identifier, so a cleanup flow that resolves the wrong identifier deletes a different tag than the one it named. The agent can compute the damage here, and does. Before any tag is deleted or renamed, it walks List Rules and Get Rule to find every rule whose trigger references that tag, counts the contacts carrying it, and posts the result: "Deleting this tag will stop two rules, one of which is the entry condition for the paid onboarding sequence, and will remove the tag from the contacts currently in it. Delete, rename instead, or leave it?" The creator decides. Renaming is the usual answer, because a rule that references a tag by identifier keeps working through a rename and a deletion is not recoverable. The inventory work is the agent's. Pulling the trigger out from under a live automation is not.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

50 actions

### Account

1

-   **Get Account** Reads the account the token belongs to: its identifier, the owner's name and address, the timezone reports are rendered in, and when the account joined and was last seen.

### Contacts

11

-   **List Contacts** Returns a page of contacts, each with its custom field values, its tags and the sequences it is in with the step it has reached. Searching takes a keyword together with the field to search in.
-   **Get Contact** Reads one contact with its field values, tags and sequence memberships. Field values come back in a different shape from the one the write operations take, so they are rebuilt rather than echoed straight back.
-   **Create Contact** Adds a contact. Only the address is required, and custom field values are keyed by the field key rather than by its label.
-   **Update Contact** Updates a contact's address or field values. The vendor requires the address on this route even when it is not changing, so a change of first name still carries it.
-   **Delete Contact** Permanently deletes a contact. Deleting does not suppress the address against a later signup, which is why an opt out uses the unsubscribe operation instead.
-   **Add Contact To Sequence** Starts an existing contact on a sequence from its first step. The direct route, used when a flow should not depend on a rule firing.
-   **Remove Contact From Sequence** Takes a contact off one sequence, stopping its remaining emails. The contact stays on the account and on every other sequence.
-   **Add Tags To Contact** Applies one or more tags by name, creating a tag that does not yet exist. Tags are the usual trigger for a rule, so this is how a flow makes something happen in BirdSend.
-   **Remove Tag From Contact** Removes one tag from a contact by identifier. Tags are added by name and removed by identifier, so a name has to be resolved first.
-   **Subscribe Contact** Subscribes an existing contact through a form or onto a sequence, which is what records the consent behind mailing them.
-   **Unsubscribe Contact** Unsubscribes a contact from all mailings rather than from one sequence. This is the correct way to honor an opt out, because the record and its unsubscribe are kept.

### Tags

5

-   **List Tags** Returns a page of the account's tags. The identifiers here are what the removal operation and the tag based rule triggers take.
-   **Get Tag** Reads one tag by its identifier.
-   **Create Tag** Creates a tag. Mostly used to establish a vocabulary in advance, since applying a tag by name creates it if it does not exist.
-   **Update Tag** Renames a tag. Contacts carrying it keep it and rules that reference it by identifier keep working, which is what makes renaming the safer alternative to deleting.
-   **Delete Tag** Deletes a tag, removing it from every contact that carried it and stopping every rule triggered by it. The operation this page's human gate exists for.

### Custom Fields

5

-   **List Custom Fields** Returns the account's custom fields with the key each is stored under. Run before writing a contact, because the contact operations are keyed by that key.
-   **Get Custom Field** Reads one custom field definition, including its key and default value.
-   **Create Custom Field** Creates a custom field. The label is what people see and the key is what the API and the email content reference.
-   **Update Custom Field** Updates a custom field. Changing the key changes what the contact operations and the email content must reference, so a rename there is not cosmetic.
-   **Delete Custom Field** Deletes a custom field from the account.

### Forms

3

-   **List Forms** Returns the account's signup forms. A form identifier is what the contact and subscribe operations take to record where a subscription came from.
-   **Get Form** Reads one signup form by its identifier.
-   **Get Pixel Code** Returns the tracking snippet for the account, the block pasted into the site so page visits and conversions are attributed to contacts.

### Conversions

5

-   **List Conversions** Returns the account's conversion definitions, each a named goal with an optional monetary value.
-   **Get Conversion** Reads one conversion definition with its value, currency and the URL that records it.
-   **Create Conversion** Creates a conversion goal. The value and currency are what make revenue based rule triggers possible.
-   **Update Conversion** Updates a conversion goal. The vendor requires the name on this route even when only the value is changing.
-   **Delete Conversion** Deletes a conversion goal.

### Sequences

5

-   **List Sequences** Returns the account's sequences, each with the sender identity it mails from and whether it is active.
-   **Get Sequence** Reads one sequence with its sender identity and active state. The emails it contains are separate records.
-   **Create Sequence** Creates a sequence. The sender block is required, including a postal address, and the sequence is created empty.
-   **Update Sequence** Updates a sequence. The vendor requires the name and the whole sender block here, so the record is read first when the flow does not already hold it.
-   **Delete Sequence** Deletes a sequence and the emails in it. Contacts partway through stop receiving the rest.

### Sequence Emails

5

-   **List Sequence Emails** Returns the emails in a sequence in order, each with its delay schedule, its active state and its own delivery statistics.
-   **Get Sequence Email** Reads one email in a sequence with its full body, its schedule and its statistics.
-   **Create Sequence Email** Adds an email to a sequence. The delay and the schedule type travel together and decide when it goes out relative to the previous step.
-   **Update Sequence Email** Updates an email in a sequence. The vendor requires the subject and body here even when only the schedule is changing.
-   **Delete Sequence Email** Removes one email from a sequence. The steps after it move up, so a contact partway through skips straight to the next remaining email.

### Broadcasts

5

-   **List Broadcasts** Returns the account's broadcasts, each with its audience rules, its schedule and its delivery statistics.
-   **Get Broadcast** Reads one broadcast in full: its audience rules, the email as written, its schedule and its live statistics.
-   **Create Broadcast** Creates a one off broadcast. The subject, body, schedule and full sender block are required, and the audience is built from conditions naming a tag, sequence or segment.
-   **Update Broadcast** Updates a broadcast that has not gone out. The vendor requires nearly everything the create does, so this replaces rather than patches.
-   **Delete Broadcast** Deletes a broadcast. One that has already been sent loses its record and its statistics, so anything worth keeping is exported first.

### Rules

5

-   **List Rules** Returns the account's automation rules with their triggers, their actions and when each last ran. The inventory that says what a tag is actually wired to.
-   **Get Rule** Reads one automation rule with its full trigger set. Reading a working rule is the quickest way to get a new one's parameter shape right.
-   **Create Rule** Creates an automation rule. Each trigger carries its own parameter shape, so the trigger decides what the rule needs.
-   **Update Rule** Updates an automation rule. Sending triggers replaces the stored set rather than adding to it, and turning the rule inactive is how it is paused without losing the definition.
-   **Delete Rule** Deletes an automation rule. To stop a rule temporarily, deactivating it through the update operation is the reversible alternative.

## Frequently Asked Questions

### What can FlowRunner do with BirdSend?

FlowRunner agents can run Get Account, List Contacts, and Get Contact in BirdSend, plus 47 more actions.

### Does connecting BirdSend to FlowRunner require OAuth?

No. BirdSend connects to FlowRunner with an API key, no OAuth flow required.

### Can BirdSend trigger a FlowRunner workflow automatically?

BirdSend doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at BirdSend?** This integration exposes BirdSend to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/birdsend. Site index: https://flowrunner.ai/llms.txt
