Blooio n8n integrationAutomate Blooio with n8n.
Blooio turns an iMessage thread into something a workflow can drive. The Blooio n8n integration exposes 47 operations across 12 resources: messages, contacts, groups, polls, webhooks, listing chats, marking them read and managing chat backgrounds, reachable through one credential.
Community node This node is not shipped with n8n: it is a community package (n8n-nodes-blooio) you install from Settings › Community nodes on a self-hosted instance. npm
Verified Trustpilot reviews · AI, automation & growth agency
What does the Blooio n8n integration cover?
Blooio speaks to iMessage and SMS through an API, and the n8n node wraps that API into 47 operations spread over 12 resources. A workflow can send a message to a phone number or an email, read a conversation back, tag a contact, spin up a group, run a poll, or register a webhook, which is a URL a service calls when something happens. Everything runs on a credential you create once in n8n and pick from the node's dropdown.
Start with the case most teams land on first: a signup lands in a spreadsheet, and the new customer should get a text within the minute. A Google Sheets node reads the row, message.send takes the phone number in E.164 format, and contact.capabilities checks beforehand whether that number even supports iMessage. The answer changes the copy you send, and an If node routes the two branches.
Second pattern: onboarding a client into a shared thread. group.create opens the group with a name and a list of members, contact.addTags marks everyone who joined with a free-form tag, and group.listMembers pages through the roster later to check nobody dropped off. Because the group ID comes back as grp_abc123, the rest of the workflow reuses it with {{ $json.id }} instead of hardcoding a chat.
Third pattern: reporting. chat.list returns the conversations most recent first, message.list pulls the messages in one of them with a direction filter, and the result lands in a sheet or in a Slack channel for the team to read on Monday. Paging is manual here: set Limit for the batch size and Offset to walk past what you already fetched.
When an endpoint of the Blooio API is not among the 47 operations, the HTTP Request node calls it directly and reuses the same credential through predefined authentication. Nothing gets duplicated, and the workflow keeps one place where the key lives.
Two limits worth knowing before you build. There is no Blooio trigger node, so a run starts from a Schedule Trigger, from an n8n Webhook that a third party calls, or from another tool's trigger. And several operations are plan bound: sharing your contact card in a chat is Dedicated Commercial and Enterprise only, phone number lookup asks for a Dedicated Enterprise plan. If you are still weighing the platform itself, the n8n review goes through what self-hosting actually costs in attention.
How do you connect Blooio to n8n?
- 01
Install the community package
Blooio does not ship with n8n. Open Settings, then Community nodes, and install the npm package
n8n-nodes-blooio, version0.2.1at the time of writing. This works on a self-hosted instance, whether it runs through Docker or npm. On n8n Cloud, only verified community nodes can be installed, so check that status before planning around it. Once installed, the node appears in the search panel under Blooio. - 02
Create the Blooio credential
A credential in n8n is a saved set of secrets. Open the Credentials menu, create the Blooio entry, and save it. From then on, every Blooio node in every workflow offers it in a dropdown, so the key is never pasted into a node. The credential authenticates an API key: the
account.getMeoperation returns the organization, the devices and the usage statistics tied to that key, which is the quickest way to see what the key is allowed to do. - 03
Run one operation to confirm
Drop the node on a canvas, pick the Account resource and Get Me, and execute it once. A clean response means the package, the credential and the network path all work. Then switch to Chat and List to see real conversations come back, most recent first. Keep Limit small on that first run so the output panel stays readable, and only widen it once the shape of the data is clear.
What can the Blooio node do?
The Blooio node exposes 47 operations across 12 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Update | Delete | Add Tags | Batch Lookup | Check Capabilities | Get Background | Get Me | Get Results | Get Status | List | List Logs | List Members | List Tags | Lookup | Mark as Read | Add or Remove | Refresh | Remove Background | Remove Tag | Replay Event | Request Call Forwarding | Rotate Secret | Send | Share Contact Card | Start | Stop | Update Contact Card |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Account | ✓ | ||||||||||||||||||||||||||||
| Chat | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||||||||
| Contact | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||||||||||||
| Group | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||||||||
| Location | ✓ | ✓ | ✓ | ||||||||||||||||||||||||||
| Message | ✓ | ✓ | ✓ | ✓ | |||||||||||||||||||||||||
| Number | ✓ | ✓ | ✓ | ||||||||||||||||||||||||||
| Phone Number | ✓ | ✓ | |||||||||||||||||||||||||||
| Poll | ✓ | ✓ | |||||||||||||||||||||||||||
| Reaction | ✓ | ||||||||||||||||||||||||||||
| Typing Indicator | ✓ | ✓ | |||||||||||||||||||||||||||
| Webhook | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Account
1 operationGet current account context
account.getMeWhat you see in n8n
Notes & use cases
This operation reports on the API key the credential carries: the organization behind it, the devices attached to it, and the usage statistics recorded against it. It takes no parameters at all, which makes it the cheapest call in the node.
Chat
6 operationsGet a chat
chat.getWhat you see in n8n
Notes & use cases
One conversation, one response: the node returns the details of the chat you point it at, without the message history.
Key parameters
- Chat: the conversation identifier, either a phone number in E.164 format, an email, a group ID like
grp_abc123, or several recipients separated by commas. Usually{{ $json.chatId }}from an earlier node.
Get chat background
chat.getBackgroundWhat you see in n8n
Notes & use cases
Conversations can carry a background image. This call returns the metadata for the one currently set, so a workflow can tell whether a chat has been branded or left plain.
Key parameters
- Chat: the same conversation identifier used everywhere in the node, a phone number, an email, a group ID, or a comma-separated list of recipients.
List chats
chat.listWhat you see in n8n
Notes & use cases
Every conversation comes back in one array, most recent first by default. This is the entry point when a workflow has to work across threads rather than inside one.
Key parameters
- Limit: the maximum number of results returned in the call.
- Offset: how many items to skip, which is how you reach the second page.
- Search Query: matches on a phone number, an email, or a contact name.
- Sort:
recentoroldest.
recent, and drop it into a spreadsheet.Mark a chat as read
chat.markReadWhat you see in n8n
Notes & use cases
Every message in the conversation is marked read, and a read receipt goes back to the other side. It changes what the recipient sees, so it is not a silent bookkeeping call.
Key parameters
- Chat: the conversation to clear, given as a phone number, an email, a group ID, or a comma-separated set of recipients.
Remove chat background
chat.removeBackgroundWhat you see in n8n
Notes & use cases
The background image is stripped from the conversation and it returns to its default look. There is no replacement step here, only removal.
Key parameters
- Chat: the identifier of the conversation to reset, phone number, email, group ID, or several recipients separated by commas.
Share your contact card in a chat
chat.shareContactCardWhat you see in n8n
Notes & use cases
Your contact card, meaning the Name and Photo identity, gets staged so that it travels with the next outgoing message. Nothing is sent by this call on its own. Dedicated Commercial and Enterprise plans only.
Key parameters
- Chat: where the card should be staged, as a phone number, an email, a group ID, or a comma-separated recipient list.
Contact
9 operationsList contacts
contact.listWhat you see in n8n
Notes & use cases
The contact book comes back as items, with search and paging available on the same call.
Key parameters
- Limit: caps how many contacts a single execution returns.
- Offset: skips the items already processed, for a second or third pass.
- Search Query: matches on the identifier or the name.
- Sort:
recent,oldest,name_ascorname_desc.
name_asc into a sheet, then diff it against your CRM to find people who exist on one side only.Create a contact
contact.createWhat you see in n8n
Notes & use cases
A new contact is created from a single identifier. The display name is optional, so a workflow can register a number first and enrich it later.
Key parameters
- Identifier: a phone number in E.164 format, for example
+15551234567, or an email address. Required. - Name: the display name shown for the contact.
Get a contact
contact.getWhat you see in n8n
Notes & use cases
Point the node at one person and it returns that contact record on its own.
Key parameters
- Contact: the contact identifier, a phone number in E.164 format or an email address. Note that the field takes the identifier, not an internal ID you might have stored elsewhere.
Update a contact
contact.updateWhat you see in n8n
Notes & use cases
Only one thing changes here, the display name of an existing contact. Leaving the name empty clears it rather than keeping the old value.
Key parameters
- Contact: the phone number in E.164 format or the email that identifies the record.
- Name: the new display name, empty to clear it.
Delete a contact
contact.deleteWhat you see in n8n
Notes & use cases
The contact record is removed. Run it from a branch you control, since nothing in the node asks for a second confirmation.
Key parameters
- Contact: the identifier of the record to drop, a phone number in E.164 format or an email address.
Check contact capabilities
contact.capabilitiesWhat you see in n8n
Notes & use cases
Blooio answers whether that person can be reached over iMessage, over SMS, over FaceTime, or some combination of the three. The answer drives what you are allowed to send.
Key parameters
- Contact: the phone number in E.164 format or the email to test.
List contact tags
contact.listTagsWhat you see in n8n
Notes & use cases
Reading side of the tagging system: the call returns the tags currently attached to one contact, nothing more.
Key parameters
- Contact: the contact identifier, in E.164 phone format or as an email address.
Add tags to a contact
contact.addTagsWhat you see in n8n
Notes & use cases
Tags are free-form here, so the vocabulary is yours to define and yours to keep consistent. Several can be attached in one call.
Key parameters
- Contact: the phone number in E.164 format or email address of the person being tagged.
- Tags: the free-form tags to add, entered with the Add Tag control.
Remove a tag from a contact
contact.removeTagWhat you see in n8n
Notes & use cases
One tag comes off, the others stay. The operation is deliberately narrower than adding, which accepts several at once.
Key parameters
- Contact: the identifier of the person, a phone number in E.164 format or an email.
- Tag: the single tag to remove.
Group
6 operationsList groups
group.listWhat you see in n8n
Notes & use cases
All groups known to the account are returned, with the same search and paging controls the other list operations use.
Key parameters
- Limit: the maximum number of groups per execution.
- Offset: the number of groups to skip before reading.
- Search Query: matches on the group name.
- Sort:
recent,oldest,name_ascorname_desc.
Create a group
group.createWhat you see in n8n
Notes & use cases
A group is created from a name, and can either stand alone or be attached to an iMessage conversation that already exists.
Key parameters
- Name: the group name, up to 255 characters. Required.
- Chat GUID: a BlueBubbles chat GUID such as
iMessage;+;chat123, to link the group to an existing iMessage chat. - Members: the phone numbers or emails of the contacts to include.
Get a group
group.getWhat you see in n8n
Notes & use cases
Details of a single group come back, keyed on its ID rather than on its name, since names are not unique.
Key parameters
- Group ID: the identifier in the
grp_abc123form, typically{{ $json.id }}carried over from the creation step.
Update a group
group.updateWhat you see in n8n
Notes & use cases
Renaming is what this operation does. Members are handled elsewhere, so nothing about the roster moves here.
Key parameters
- Group ID: the
grp_abc123identifier of the group to rename. - Name: the new group name. Required alongside the ID.
Delete a group
group.deleteWhat you see in n8n
Notes & use cases
The group is removed from the account. Nothing else in the call, which makes it easy to run by mistake on the wrong ID.
Key parameters
- Group ID: the
grp_abc123identifier of the group to delete.
List group members
group.listMembersWhat you see in n8n
Notes & use cases
The roster of one group is returned, and it pages like the other collections rather than dumping everything at once.
Key parameters
- Group ID: the
grp_abc123identifier of the group to inspect. - Limit: how many members come back per call.
- Offset: how many members to skip, to read the next page.
Location
3 operationsList contact locations
location.listWhat you see in n8n
Notes & use cases
FindMy positions that Blooio has already cached for your contacts come back as one list. The call reads the cache rather than waking the devices, so it stays cheap to run on a schedule, and it asks for no parameters at all.
Get a contact location
location.getWhat you see in n8n
Notes & use cases
A single contact's cached position is returned, keyed by the handle rather than by an internal identifier.
Key parameters
- Handle: the contact's phone number in E.164 format or their email address.
Refresh contact locations
location.refreshWhat you see in n8n
Notes & use cases
Nothing comes back here: the call asks Blooio to refresh the cached FindMy positions. It takes no parameters at all, and it chains naturally with the read operations placed after it in the same branch.
Message
4 operationsSend a message
message.sendWhat you see in n8n
Notes & use cases
The workhorse of the node: a text body, an attachment, or both, delivered into a conversation.
Key parameters
- Chat: a phone number such as
+15551234567, an email, a group ID, or a comma-separated list of recipients. - Text: the text body of the message.
- Attachments: publicly reachable URLs for images, videos or files.
- Idempotency Key: re-using the same key returns the original result instead of sending twice.
- Effect: an iMessage send-with-effect, ignored on SMS and RCS.
Get a message
message.getWhat you see in n8n
Notes & use cases
Details for one message are returned, which saves listing a whole thread just to recover what was sent or received.
Key parameters
- Chat: the conversation the message belongs to.
- Message ID: the
msg_abc123identifier of the message itself.
Get message delivery status
message.getStatusWhat you see in n8n
Notes & use cases
Sent is not the same thing as delivered. This call answers the second question and reports where a given message got to.
Key parameters
- Chat: the conversation holding the message.
- Message ID: the
msg_abc123whose status you want.
List messages in a chat
message.listWhat you see in n8n
Notes & use cases
A conversation's messages come back as a filtered, paged collection, where the Get operation returns only one.
Key parameters
- Chat: the conversation to read.
- Limit and Offset: page size, and how many items to skip.
- Direction:
inboundoroutbound. - Since (Ms Timestamp) and Until (Ms Timestamp): Unix timestamps in milliseconds that bound the window.
- Sort:
descfor newest first,ascfor oldest first.
Number
3 operationsList phone numbers
number.listWhat you see in n8n
Notes & use cases
Every phone number bound to the API key comes back in one array, with nothing to set on the node. It is the inventory call as soon as you send from more than one line.
Request call forwarding
number.requestCallForwardingWhat you see in n8n
Notes & use cases
Calls reaching one of your numbers can be pushed towards another line. The operation opens the request, it does not switch forwarding on by itself.
Key parameters
- Number: the source phone number in E.164 format.
- Forward To: the destination US number that should receive the calls, E.164 recommended.
Update the contact card for a number
number.updateContactCardWhat you see in n8n
Notes & use cases
The Name and Photo identity a number presents is set here, and only Dedicated plans get it.
Key parameters
- Number: the source number in E.164 format whose card changes.
- First Name and Last Name: the identity recipients see.
- Avatar (Base64): the profile photo as a base64-encoded JPEG or PNG string.
- Sharing Enabled: whether that identity is shared at all.
Phone Number
2 operationsLook up a phone number
phoneNumber.lookupWhat you see in n8n
Notes & use cases
Validation and formatting for one number, with geocoding, taken one entry at a time. A Dedicated Enterprise plan is required.
Key parameters
- Number: the number to look up, in E.164, national, or already formatted notation.
Batch look up phone numbers
phoneNumber.batchLookupWhat you see in n8n
Notes & use cases
The same check in bulk: up to 100 numbers travel in a single request, which keeps an import from turning into a long loop.
Key parameters
- Numbers: the list of numbers to look up, 100 at most per call. A Dedicated Enterprise plan is required.
Poll
2 operationsSend a poll
poll.sendWhat you see in n8n
Notes & use cases
A native iMessage poll is posted into a conversation, so answers arrive as votes rather than as free text somebody has to read.
Key parameters
- Chat: the conversation, given as a phone number, an email, or a group ID.
- Options: between 2 and 10 answers.
- Title: the question shown above the options.
Get poll results
poll.getResultsWhat you see in n8n
Notes & use cases
The definition of a poll and its aggregated vote counts come back together.
Key parameters
- Chat: the conversation the poll was posted in.
- Poll ID: the identifier carried by the
poll.createdorpoll.receivedwebhook event.
Reaction
1 operationAdd or remove a reaction
reaction.reactWhat you see in n8n
Notes & use cases
Tapbacks and emoji go through the same operation, which removes as readily as it adds.
Key parameters
- Message ID: a
msg_abc123, or a relative index where -1 is the last message. - Reaction: prefixed with + to add or - to remove, using a classic tapback such as
loveorlaugh, or any emoji. - Chat: the conversation holding that message.
- Direction:
inboundoroutbound, useful only when the index is relative.
Typing Indicator
2 operationsStart typing indicator
typing.startWhat you see in n8n
Notes & use cases
The typing indicator appears in the thread and buys a bot the beat a human would take before answering, and it works on iMessage only.
Key parameters
- Chat: the conversation where the indicator shows, given as a phone number, an email, or a group ID.
Stop typing indicator
typing.stopWhat you see in n8n
Notes & use cases
The twin call hides the indicator again, and it matters most when the branch that started it ends badly.
Key parameters
- Chat: the same conversation identifier the start operation was given.
Webhook
8 operationsList webhooks
webhook.listWhat you see in n8n
Notes & use cases
Every webhook registered on the account comes back in one array, with no parameters to fill in. It is the starting point of any workflow that maintains subscriptions instead of creating them by hand.
Create a webhook
webhook.createWhat you see in n8n
Notes & use cases
A subscription is registered: Blooio starts posting its events to the URL you give it.
Key parameters
- Webhook URL: the endpoint that receives the events, often the production URL of an n8n Webhook node.
- Webhook Type:
message,status, orall. - Valid Until: an expiration timestamp in milliseconds, or -1 for no expiration.
Get a webhook
webhook.getWhat you see in n8n
Notes & use cases
One subscription is read back by its identifier, which is how a workflow checks what a given endpoint is actually configured for.
Key parameters
- Webhook ID: the
wh_abc123identifier of the subscription.
Update a webhook
webhook.updateWhat you see in n8n
Notes & use cases
An existing subscription changes in place, without touching the identifier other systems already hold.
Key parameters
- Webhook ID: the
wh_abc123being modified. - Webhook Type: switch the stream to
message,status, orall. - Valid Until: push the expiration timestamp in milliseconds further out, or set -1 to remove it.
- Deprecate: true marks the webhook deprecated, false brings it back.
Delete a webhook
webhook.deleteWhat you see in n8n
Notes & use cases
The subscription is gone for good, and deliveries towards its URL stop as soon as the call returns.
Key parameters
- Webhook ID: the
wh_abc123to remove.
Rotate the webhook signing secret
webhook.rotateSecretWhat you see in n8n
Notes & use cases
A fresh signing secret is generated for the subscription, and it is shown only once, in the response of this call.
Key parameters
- Webhook ID: the
wh_abc123whose secret is replaced.
List webhook delivery logs
webhook.listLogsWhat you see in n8n
Notes & use cases
Delivery attempts for a subscription are listed here, and this is where you look when an endpoint is suspected of dropping events.
Key parameters
- Webhook ID: the subscription whose deliveries you read.
- Limit and Offset: page size and how many entries to skip.
- Status, Min Status and Max Status: filter on an exact HTTP status code or on a range.
- Sort:
descfor the newest,ascfor the oldest.
404 status, and alert the team when an endpoint has quietly moved.Replay a webhook event
webhook.replayEventWhat you see in n8n
Notes & use cases
An event already delivered once goes out again to the same endpoint, which saves reproducing the original conversation just to recover its payload.
Key parameters
- Webhook ID: the subscription that delivered the event.
- Event ID: the identifier of the event to replay.
Need help automating Blooio with n8n?
A person reads every message.

