Skip to main content
Build an n8n Twitter node workflow with Xquik. Search tweets, export followers, monitor accounts, publish media, and run AI agents. This n8n Twitter integration uses HTTP Request, Webhook, and MCP Client Tool nodes. Xquik does not require an X Developer app. Xquik uses one API key and the REST base URL https://xquik.com/api/v1.

Choose an n8n Twitter integration

Use n8n’s built-in X node for supported tweet, list, user, and DM operations. Choose Xquik’s n8n Twitter API for wider reads, exports, monitors, webhooks, and MCP tools.

Prerequisites

  • Xquik API key
  • n8n Cloud or self-hosted n8n
  • An HTTPS n8n webhook URL for monitor recipes
  • Optional Slack and Google Sheets credentials for the recipes below

API key credential

Create a reusable n8n credential for Xquik:

Authentication

Select Header Auth for the HTTP Request credential.

Header name

Set the header name to x-api-key.

Header value

Paste your Xquik API key as the credential value.
Use that credential in every HTTP Request node that calls https://xquik.com/api/v1.

Community node blueprint

If you package Xquik as a community node, limit the first release to core X tasks. Share reusable templates through the n8n community. Keep credentials outside exported workflow JSON. Use custom code nodes only for signature checks or bounded transforms.

Credential

Create an Xquik API Key credential and inject it as x-api-key.

Base URL

Point every REST action at https://xquik.com/api/v1.

Request helper

Support GET, POST, PATCH, DELETE, JSON bodies, structured errors, and Retry-After backoff.

Resources

Start with Tweet, User, Trends, Extraction, Monitor, and Webhook resources.

Actions

Ship Get Tweet, Search Tweets, Get User, Get Trends, Create Tweet, Create Extraction, Create Monitor, and Create Webhook first.

Sources

Add Monitor Event Webhook and Extraction Completed Polling sources.
Handle these response classes explicitly:

400 invalid input

Copy the Xquik error and message fields into the failed item.

401 authentication

Ask the user to check the Header Auth credential and x-api-key value.

402 billing state

Route to subscription or credit setup before retrying the node.

429 rate limit

Read Retry-After from response headers and wait before retrying.

5xx transient

Enable n8n Retry on Fail with exponential backoff, then fail the item.

Result handoff

Use an Edit Fields node after each HTTP Request node when the next node only needs stable handoff fields. Keep raw responses out of Slack messages, Sheets rows, and retry queues. Use snake_case storage keys for handoff rows even when direct API responses use camelCase.

Tweet search page

Store request q; map each tweet id, text, author.username, and createdAt to tweet_id, text, author_username, and created_at; keep has_next_page and next_cursor for page loops.

User profile rows

Store source id as user_id, plus username, name, followers, verified, profile_picture, has_next_page, next_cursor, and the lookup or search input.

Trend rows

Store each trend name, rank, query, and description. Keep response count, woeid, and the requested region with the workflow run.

Tweet or reply write

Send a unique Idempotency-Key. Store id, status, billing, result, and statusUrl. Poll while terminal is false. Retry only when safeToRetry is true, using a new key.

Media attachments

For tweets or replies, pass public URLs in media; do not send media_ids. For DMs, upload first, pass 1 media_id in media_ids, store message_id, and leave reply_to_message_id unset.

Monitor and webhook setup

Store monitor id, username, xUserId, eventTypes, isActive, and nextBillingAt; store webhook id, url, eventTypes, and one-time secret. For storage rows, map production deliveryId to delivery_id for receiver retry de-dupe and streamEventId to stream_event_id when one monitor event should process once across endpoint changes.

Webhook event de-dupe

Store deliveryId for receiver retry de-dupe and streamEventId when one monitor event should process once across endpoint changes.

Stored event replay

Call GET /events with cursor when a workflow needs replay. Map id, monitorId, monitorType, occurredAt, hasMore, and nextCursor to event_id, monitor_id, monitor_type, occurred_at, has_more, and next_cursor.

Receiver acceptance

Return 2xx after accepting duplicate deliveryId or streamEventId; keep endpoint signing values, raw request body, raw signature, and full headers out of n8n executions, data stores, Slack messages, Sheets rows, and retry queues.

Extraction job

Store id as extraction_id, toolType as tool_type, plus status, has_more, and next_cursor before batch loops fetch detail rows.

Recipe 1: AI agent X research with MCP

Use this recipe to integrate AI agents with Xquik. The agent can search live tweets, summarize trends, inspect profiles, and compare follower activity.
1

Add an AI agent node

Create an AI Agent workflow with your preferred chat model.
2

Add an MCP client tool

Set Server Transport to HTTP Streamable. Set MCP Endpoint URL to https://xquik.com/mcp. Set Authentication to Header Auth. Create or select a Header Auth credential. Set Name to x-api-key and Value to your Xquik API key.
3

Prompt the agent

Tell the agent to use Xquik for X search, trends, account lookups, and extraction planning.
The MCP Client Tool also supports MCP OAuth2. This recipe uses Header Auth for unattended workflows with an n8n credential.
Suggested agent system prompt:
Example user prompt:
The MCP server exposes docs for documentation, search for endpoint discovery, and execute for authenticated calls. One agent loop can select an endpoint and request current API data.

Recipe 2: monitor to Slack

Use this when a Slack channel should receive new tweets, replies, quotes, or retweets from monitored accounts.

Workflow shape

Webhook trigger

Receive Xquik monitor events on the production Webhook URL.

Create webhook

Use HTTP Request to call POST /webhooks with the Webhook Trigger URL.

Create monitor

Use HTTP Request to call POST /monitors for the username and event types.

Format alert

Use Set to build Slack text from data, with username as fallback.

Post alert

Send the formatted message to Slack after the webhook and monitor exist.

Create webhook

Call this once during setup, using the production URL from your n8n Webhook Trigger.

Create monitor

Slack message

Use a Set node before Slack:
Webhook tweet fields live under data. Use data.author.userName when present; username is the monitored-account fallback. Keep the webhook secret returned by Xquik. Verify x-xquik-signature before sending Slack messages. Use custom verification code when your plan supports it.

Recipe 3: extraction to Google Sheets

Use this when a team needs bulk follower, reply, quote, media, list, community, or search results in a spreadsheet.

Workflow shape

Schedule trigger

Run daily or hourly exports; execute manually while testing.

Create extraction

Use HTTP Request to call POST /extractions and store the returned id.

Wait before polling

Pause before the first status check so the extraction can start.

Fetch results

Use HTTP Request to call GET /extractions/{id} and read job.status.

Gate completed jobs

Use IF to continue only when job.status is completed.

Append rows

Use Google Sheets Append Row with the mapped result fields below.

Create extraction

Store the returned id for the polling step.

Poll results

Map these fields into Google Sheets:

Tweet ID

Map to id.

Author

Map to author.username.

Text

Map to text.

Created at

Map to createdAt.

Likes

Map to likeCount.

Reposts

Map to retweetCount.

URL

Build from https://x.com/{author.username}/status/{id}.
For jobs larger than 1,000 rows, loop while hasMore is true and pass cursor with the nextCursor value.

Useful REST actions

Get tweet

Read one or more posts with GET /x/tweets?ids=<id>.

Search tweets

Run X query searches with GET /x/tweets/search?q=<query>.

Get user

Fetch an X profile with GET /x/users/{id}.

Get trends

Read regional X trends with GET /x/trends.

Create tweet

Publish text or media posts with POST /x/tweets.

Create extraction

Start bulk export jobs with POST /extractions.

Create monitor

Watch accounts or keywords with POST /monitors.

Create webhook

Register signed delivery URLs with POST /webhooks.

Testing checklist

  • Use the n8n Test Step action on each HTTP Request node.
  • Confirm every request includes x-api-key.
  • Confirm monitor webhooks use the production webhook URL, not the test URL.
  • Send a test event from Test Webhook.
  • For extraction jobs, poll until completed before writing to Sheets.
  • On 429, wait for the Retry-After header before retrying.

n8n Twitter automation questions

How do I connect n8n to Twitter?

Create Header Auth with x-api-key. Select it on every Xquik request.

How does n8n Twitter search work?

Call the tweet-search endpoint. Store the query and cursor for every page.

Can n8n post to Twitter?

Treat each n8n Twitter post as approved. Send Idempotency-Key, then poll the returned action.

Can n8n scrape Twitter?

An n8n Twitter scraper should call documented endpoints. Never make n8n scrape Twitter pages. API responses preserve stable IDs and cursors.

How does n8n Twitter media upload work?

Tweet and reply writes accept public URLs. DMs require one uploaded media ID.

How do I monitor Twitter mentions in n8n?

Build an n8n Twitter monitoring workflow with a monitor and production webhook. Verify every signature before routing tweets.

Can I build an n8n Twitter bot or n8n Twitter agent?

An n8n Twitter bot needs approval before writes. An n8n Twitter agent can search tweets, profiles, trends, and followers through MCP.

Can self-hosted n8n use Xquik?

Yes. Allow outbound HTTPS. Monitor recipes also need a public HTTPS webhook.

How do I troubleshoot an n8n Twitter connection?

Check the base URL, Header Auth, and x-api-key. Use the production webhook. Reselect edited credentials. Recreate them if access still fails.

Which n8n Twitter template should I build first?

Start with tweet search and cursor storage. Add exports or monitors next.

Next steps