# No-code: n8n and Make

> Step-by-step setup for the TwittrAPI community node in n8n and the HTTP module in Make, with workflows for mentions to Google Sheets, follower exports and keyword alerts in Slack or Telegram.

HTML page: https://www.twittrapi.com/docs/no-code

TwittrAPI has a community node for n8n and works in Make through the HTTP module. You need a TwittrAPI key (n8n also accepts a RapidAPI key), no X account and no X developer app. Every run of a search or lookup step is one billed API call per page.

| | n8n | Make |
| --- | --- | --- |
| How | TwittrAPI community node (`n8n-nodes-twittrapi`) | HTTP module, Make a request |
| Key | TwittrAPI or RapidAPI key | TwittrAPI key |
| Response | Output Format Raw or Simple | Add `format=simple` to the query string |

## n8n

Video: [Twitter/X data in n8n with the TwittrAPI community node](https://www.youtube.com/watch?v=BhSNu0Cs-Ng)

The node covers users, timelines, followers, tweets, search, lists, communities and trends. Every operation is one call per page. Ready-made workflows are in the [examples folder](https://github.com/twittrapi/n8n-nodes-twittrapi/tree/main/examples) of the repository.

### 1. Install the node

Settings > Community Nodes > Install, enter `n8n-nodes-twittrapi` and confirm. For queue mode or Docker, n8n's guide on installing community nodes covers the manual install with npm.

### 2. Add the credential

Create a **TwittrAPI API** credential, Connection Type **Direct API Key**, and paste the key from your dashboard. Saving tests it by looking up the profile @X, which is one normal call.

### 3. New mentions to Google Sheets

Schedule Trigger every 15 minutes → TwittrAPI node, Resource Search, query `@yourbrand -from:yourbrand`, category Latest, Output Format **Simple** → Split Out on `data` → Google Sheets, Append Row with `createdAt`, `author.username`, `text`, `url`.

To pass on only tweets you have not seen, import [new-mentions-to-google-sheets.json](https://github.com/twittrapi/n8n-nodes-twittrapi/blob/main/examples/new-mentions-to-google-sheets.json) (Workflows > Import from File): it stores the newest tweet ID in workflow static data. Static data is saved only in active (production) runs; manual test runs start fresh.

### Export followers to CSV

[export-followers-to-csv.json](https://github.com/twittrapi/n8n-nodes-twittrapi/blob/main/examples/export-followers-to-csv.json): User > Get Followers, Return All with Max Pages 20, then Convert to File. Every page is one call, so this workflow makes at most 20 calls.

### Keyword alerts in Slack or Telegram

[keyword-monitor-to-slack.json](https://github.com/twittrapi/n8n-nodes-twittrapi/blob/main/examples/keyword-monitor-to-slack.json) searches a keyword every 10 minutes, remembers the newest tweet ID and posts only new tweets to a channel.

For a Telegram alert, for example on crypto cashtags:

1. Import the keyword monitor (Workflows > Import from File).
2. Set the query to your cashtags, for example `($SOL OR $JUP) min_faves:5 -filter:replies`, and the schedule to the interval you want to pay for. Every run is one call.
3. Replace the Slack node with Telegram > Send Message, map the tweet text and link, and activate the workflow.

### Use it as an AI Agent tool

Attach the TwittrAPI node to an AI Agent node as a tool; the agent can then search X or read a profile when a question needs it. On self-hosted n8n set `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true` first. Other agent setups: [SDKs and integrations](https://www.twittrapi.com/docs/integrations#ai-agents).

### Errors in n8n

- `402`: balance empty. Top up and run again; the call is not charged.
- `429`: rate limit. Turn on Retry On Fail.
- `401`: wrong key or connection type.

Turn on Continue On Fail if one bad username should not stop the run. With Output Format Raw (the default) the node returns X's raw JSON, one item per page; with Simple plus a Split Out node on `data` you get one item per tweet or user with flat fields such as `text`, `author.username` and `counts.likes`.

## Make

With `format=simple` you need no parsing functions: each tweet already has flat fields you can map straight into the next module. This scenario writes new mentions to Google Sheets.

### 1. HTTP > Make a request

| Field | Value |
| --- | --- |
| URL | `https://api.twittrapi.com/search` |
| Method | `GET` |
| Headers | `X-API-KEY`: your key |
| Query string | `searchItem` = `@yourbrand -from:yourbrand` |
| | `category` = `Latest` |
| | `format` = `simple` |
| Parse response | Yes |

Each run of the HTTP module is one API call plus your Make operations; the iterator and the sheet rows count as Make operations, not API calls. All search parameters: [search reference](https://www.twittrapi.com/docs/reference/search).

### 2. Iterator

Iterate over `data`, the list of tweets.

### 3. Google Sheets > Add a row

Map `createdAt`, `author.username`, `text`, `url`, `counts.likes`, `counts.retweets`.

### 4. Only new tweets

Keep the newest tweet `id` in a Data store. Read it before the HTTP module and add `filters` = `{"sinceId":"<stored id>"}` to the query string; after the iterator, save the highest `id`.

The Make custom app in [twittrapi-make](https://github.com/twittrapi/twittrapi-make) is an alternative to the HTTP module; its README has the setup.
