- Home
- Resources
- Integrations
- Bitwarden
Bitwarden n8n integrationAutomate Bitwarden with n8n.
Your organization vault can be administered from a workflow instead of the web vault. The Bitwarden n8n integration covers 19 operations across 4 resources: collections, groups, members and the event log. No Bitwarden trigger ships with n8n, so a Schedule or Webhook node starts the run. Built for ops and IT.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Bitwarden n8n integration actually cover?
The Bitwarden node talks to the Bitwarden Public API on behalf of an organization. It reads and writes the four objects that make up organization administration: collections, the groups that get access to them, the members of the organization, and the event log that records what happened. Everything a workflow does here is admin work, driven by the Organization API Key you configure once in n8n.
The first thing this node solves is offboarding. Someone leaves, and their access has to disappear the same day. A workflow that starts on a Schedule Trigger, a node that fires at a fixed interval, reads the leavers from wherever your HR data lives, then calls member.getGroups to record what that person could reach, and member.delete to remove them from the organization. The record of what was revoked lands in Google Sheets or a table in Postgres, which is what an auditor asks for later.
The second is the quarterly access review nobody enjoys running by hand. collection.getAll lists the collections, group.getAll lists the groups, and group.getMembers resolves who sits in each one. Loop the three and you get a full map of who can open what, posted into a Slack channel for the managers who have to sign it off. When a manager answers, group.updateMembers or member.updateGroups applies the change without anyone touching the admin console.
The third is keeping the event log somewhere you can query. event.getAll reads the organization events, with Start Date and End Date to bound the window, and Acting User ID or Item ID when you are chasing one person or one entry. A nightly workflow appends that window to Supabase and you stop being limited to what the web vault shows you on screen.
Two things are worth knowing before you build. The Bitwarden Public API is only available on Teams and Enterprise organization plans, so the credential simply will not authenticate on anything else. And whatever falls outside these 19 catalog operations goes through the HTTP Request node, which calls any endpoint of the API while reusing the same Bitwarden credential through predefined authentication.
If you are picking your platform rather than building today, the n8n review goes through the trade-offs in detail, and the n8n training covers the expression syntax these workflows lean on.
How do you connect Bitwarden to n8n?
- 01
Generate an Organization API Key
Bitwarden only makes the Public API available to Teams and Enterprise organization accounts, so start by checking which plan the organization runs on. Then generate the key from the organization settings, not from a personal account. Generating it gives you two values, a Client ID and a Client Secret, and both belong to the organization rather than to the person who created them.
- 02
Create the credential in n8n
In the Credentials menu, add a Bitwarden credential, which is the stored set of secrets n8n reuses across workflows. Paste the Client ID and the Client Secret from the previous step. You create this once. Every Bitwarden node you drop into any workflow afterwards picks it from its dropdown, so rotating the key later is a single edit instead of a hunt through your workflows.
- 03
Set the Environment
The credential asks for an Environment. Choose Cloud-hosted if you do not self-host Bitwarden, and nothing else is required. Choose Self-hosted if Bitwarden runs on your own server, and fill the Self-hosted domain field with the address of that server. Save, then run any read operation once to confirm the credential answers.
The 19 Bitwarden operations, one by one
The Bitwarden node exposes 19 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Get Groups | Get Members | Update Groups | Update Members |
|---|---|---|---|---|---|---|---|---|---|
| Collection | ✓ | ✓ | ✓ | ✓ | |||||
| Event | ✓ | ||||||||
| Group | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| Member | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Collection
4 operationsDelete a collection
collection.deleteWhat you see in n8n
Notes & use cases
Removes a collection from the organization, so the items it grouped stop being shared through it. One collection per call.
Key parameters
- Collection ID: the identifier of the collection, a value shaped like
5e59c8c7-e05a-4d17-8e85-acc301343926, not the collection name you read in the vault.
Get a collection
collection.getWhat you see in n8n
Notes & use cases
Reads one collection and returns its current state. This is the read you run before a write, when you want to know what you are about to change.
Key parameters
- Collection ID: the identifier of the collection. When it comes from an earlier node, fill it with an expression, the n8n syntax that pulls a value from the incoming item, written
{{ $json.field }}.
Get many collections
collection.getAllWhat you see in n8n
Notes & use cases
Lists the collections of the organization. Most Bitwarden workflows open with this one, because every other collection operation needs an identifier you do not have yet.
Key parameters
- Return All: on, n8n walks through the API pages until every collection has been returned.
- Limit: with Return All off, the maximum number of collections a single run brings back.
Update a collection
collection.updateWhat you see in n8n
Notes & use cases
Changes which groups a collection is shared with, and the external identifier attached to it.
Key parameters
- Collection ID: the identifier of the collection to modify.
- Update Fields: required, opened with Add Field. Leave it empty and the node has nothing to write.
- Group Names or IDs: the group to assign this collection to, picked from the list or given as IDs through an expression.
- External ID: the external identifier to set on the collection, handy for matching it with a project reference in another tool.
Event
1 operationGet many events
event.getAllWhat you see in n8n
Notes & use cases
Reads the organization event log, which is where Bitwarden records what happened and who did it.
Key parameters
- Return All: on, the node keeps paging until the whole window has been read.
- Limit: the ceiling on returned events when Return All stays off.
- Start Date and End Date: the bounds of the search window.
- Acting User ID: narrows the log to the user who performed the actions.
- Item ID: narrows it to the item the event describes.
Group
7 operationsCreate a group
group.createWhat you see in n8n
Notes & use cases
Adds a group to the organization. Groups are how access is granted at scale, since a collection is shared with a group rather than with people one at a time.
Key parameters
- Name: the name of the group to create, required.
- Access All: on, the group reaches every collection in the organization and this overrides any collection assignment.
- Collection Names or IDs: the collections assigned to the group at creation.
- External ID: the external identifier to set on the group.
Delete a group
group.deleteWhat you see in n8n
Notes & use cases
Removes a group from the organization. The access that came through it goes with it, which makes this the last step of a decommissioning run rather than the first.
Key parameters
- Group ID: the identifier of the group, in the form
5e59c8c7-e05a-4d17-8e85-acc301343926.
Get a group
group.getWhat you see in n8n
Notes & use cases
Returns a single group as it currently stands, which is the cheapest way to confirm a group exists before a workflow starts writing to it.
Key parameters
- Group ID: the identifier of the group to read.
Get many groups
group.getAllWhat you see in n8n
Notes & use cases
Brings back the groups of the organization, which is the map you need before deciding where a person belongs.
Key parameters
- Return All: on, every group comes back, page after page.
- Limit: the cap applied when Return All is off, useful while you are still testing the workflow.
Get group members
group.getMembersWhat you see in n8n
Notes & use cases
Returns the members attached to one group, answering the question an access review always opens with: who is actually in here?
Key parameters
- Group ID: the identifier of the group whose members you want.
Update a group
group.updateWhat you see in n8n
Notes & use cases
Edits an existing group without recreating it, so its identifier stays valid everywhere else in your workflows.
Key parameters
- Group ID: the identifier of the group to modify.
- Name: the new name of the group.
- Collection Names or IDs: the collections assigned to the group, chosen from the list or given as IDs.
- Access All: on, the group reaches every collection in the organization, overriding the assignments above.
- External ID: the external identifier to set on the group.
Update group members
group.updateMembersWhat you see in n8n
Notes & use cases
Sets the membership of a group in one call. What you send becomes the group, so this is a replacement rather than an addition.
Key parameters
- Group ID: the identifier of the group being rewritten.
- Member IDs: a comma-separated list of the IDs of the members to set in the group. Build it from a previous listing step, otherwise you silently drop whoever you forgot.
Member
7 operationsCreate a member
member.createWhat you see in n8n
Notes & use cases
Adds a member to the organization with a role and, if you want, their access already set.
Key parameters
- Type: the role, required, chosen from Owner (
0), Admin (1), User (2) and Manager (3). - Email: the address of the member, in the form
name@email.com. - Access All: whether this member reaches every collection.
- Collection Names or IDs: the collections assigned to the member, picked from the list or given as IDs.
- External ID: the external identifier to set on the member, useful for matching the record with an outside HR system.
Delete a member
member.deleteWhat you see in n8n
Notes & use cases
Removes a member from the organization. This is the operation the whole offboarding workflow exists to reach, and it is worth putting a confirmation step in front of it.
Key parameters
- Member ID: the identifier of the member to remove, not their email address.
Get a member
member.getWhat you see in n8n
Notes & use cases
Fetches one member of the organization. Useful as a guard clause: run it, and the rest of the workflow only continues on someone who is really there.
Key parameters
- Member ID: the identifier of the member to read, typically carried over from a listing step through an expression such as
{{ $json.field }}.
Get groups for a member
member.getGroupsWhat you see in n8n
Notes & use cases
Returns the groups one member belongs to, which is the other half of an access review: not who is in a group, but what one person can reach.
Key parameters
- Member ID: the identifier of the member whose groups you want.
Get many members
member.getAllWhat you see in n8n
Notes & use cases
Lists the members of the organization, which is the roster you compare against your HR source to find the accounts nobody closed.
Key parameters
- Return All: on, the node pages through until the full roster is back.
- Limit: the maximum number of members returned when Return All is off.
Update a member
member.updateWhat you see in n8n
Notes & use cases
Changes the role or the access of an existing member, without removing and recreating the account.
Key parameters
- Member ID: the identifier of the member to modify.
- Type: the new role, Owner (
0), Admin (1), User (2) or Manager (3). - Collection Names or IDs: the collections assigned to the member.
- Access All: whether the member reaches every collection.
- External ID: the external identifier to set on the member.
Update groups for a member
member.updateGroupsWhat you see in n8n
Notes & use cases
Rewrites the list of groups one member belongs to. The list you pass replaces the previous one, so send the full set, not the difference.
Key parameters
- Member ID: the identifier of the member being reassigned.
- Group IDs: a comma-separated list of the IDs of the groups to set for that member.
Need help automating Bitwarden with n8n?
A person reads every message.

