Bitly n8n integrationAutomate Bitly with n8n.
Shortening a link by hand stops working the day the workflow runs every hour. The Bitly n8n integration moves that step into the flow itself: one node, one Link resource, 3 operations to create, read and update a Bitlink. Bitly ships no trigger node, so the run always starts somewhere else.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Bitly n8n integration actually do?
The Bitly n8n integration connects a workflow to a Bitly account through a single node, n8n-nodes-base.bitly. It exposes one resource, Link, and 3 operations: create a short link from a destination URL, read an existing Bitlink back, update one that already exists. The scope is deliberately narrow. n8n talks to links, and the rest of the account stays where it is.
First shape, the campaign sheet. A row lands in Google Sheets with a destination URL, the Bitly node runs link.create on it, and the short link is written back into the same row. Nobody copies URLs between two browser tabs any more, and every row leaves with a link that carries its own title.
Second shape, the announcement. A workflow assembles a message, shortens the destination, then pushes the result to Slack or into an email sent with Gmail. Public n8n templates already follow this pattern, mixing a spreadsheet, an HTTP Request node and Bitly in the same flow.
Third shape, link hygiene. A monthly run reads a list of Bitlinks, calls link.update to set Archived on the ones a campaign has retired, and repoints the handful still printed somewhere to a page that still exists. The short address never changes, only what sits behind it.
When to reach for HTTP Request instead. The node covers create, get and update on links. Anything beyond creating, reading and updating a link, deleting one included, is not an operation here. The HTTP Request node calls any endpoint of the Bitly API and reuses the same credential through predefined authentication, meaning the stored connection details you already set up, so the token still lives in one place.
Known limits, stated plainly. There is no Bitly trigger in n8n, so nothing reacts to a click. A workflow starts with a Schedule Trigger on a fixed interval, with the n8n Webhook node called by another service, or with the trigger of a different tool. If you self-host and would rather run your own short domain, Yourls has its own node. For the platform itself, the n8n review digs into where it fits.
How do you connect Bitly to n8n?
- 01
Generate an Access Token in Bitly
Log in to Bitly, then open Settings, Developer Settings, API. That page generates an Access Token, the string n8n sends on every call to the API. Copy it once. A Bitly account is the only prerequisite, and nothing gets installed on the Bitly side to make this work.
- 02
Store it as a credential in n8n
Open the Credentials menu in n8n and add a Bitly credential. Two authentication methods are supported. API token asks for the Access Token you just copied. OAuth2 sends you through a Bitly web flow, and the token comes back to n8n once you approve the app. A credential, meaning the saved connection details, is created once and reused by every workflow.
- 03
Pick the credential in the node
Drop the Bitly node into a workflow and select the credential from its dropdown list. The node ships with n8n, on n8n Cloud as on a self-hosted instance, so there is nothing to add first. Set the resource to Link, choose one of the 3 operations, and execute the node once to confirm the token answers before you build the rest.
What can the Bitly node do?
The Bitly node exposes 3 operations across 1 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
Operations index
Link
3 operationsCreate a link
link.createWhat you see in n8n
Notes & use cases
Builds a new Bitlink from a destination URL and returns the shortened link, ready for the next node to use.
Key parameters
- Long URL: the destination to shorten, in full form like
https://example.com, usually{{ $json.url }}from the node before. It is required, so an empty value stops execution. - Title: an Additional Field that gives the link a readable label instead of a wall of random codes.
- Domain: the domain the short link is built on, when the account has one configured.
- Tag Names or IDs: chosen from the list, or set with an expression when the tag comes from the incoming data.
Get a link
link.getWhat you see in n8n
Notes & use cases
Reads one existing Bitlink and returns what Bitly stores about it, changing nothing.
Key parameters
- Bitlink: the short link itself, in the
bit.ly/22u3ypKform. Not the destination URL, not an internal database id. It is required, and most of the time it arrives as{{ $json.id }}from the node that created the link.
Update a link
link.updateWhat you see in n8n
Notes & use cases
Edits an existing Bitlink in place. The short address stays the same, only what sits behind or around it moves.
Key parameters
- Bitlink: required, same
bit.ly/22u3ypKform, and the only way the node knows which link to touch. - Long URL: an Update Field carrying the new destination, which is how a printed short link survives a page that moved.
- Archived: switch it on and the link drops out of the active list.
- Group Name or ID: moves the link to another Bitly group, from the list or through an expression.
Need help automating Bitly with n8n?
A person reads every message.