Skip to main content
Build Zapier Twitter automation through Xquik without an X Developer app. Search tweets, export followers, route webhooks, and approve write actions. Build a private Zapier Platform CLI integration. Add routes after Zap history confirms repeated demand.

Replace the retired Zapier Twitter integration

Zapier retired its native Twitter integration in 2023. Xquik restores those workflows through an API-key connection. Choose an Xquik connection based on the workflow:

API by Zapier

Use one reusable API-key connection for a small number of actions. Keep the Xquik key in the app connection instead of a Zap field.

Private platform integration

Use the CLI for shared actions, polling triggers, and REST Hooks. Add samples, output fields, custom errors, and shared field mapping.

Webhooks by Zapier

Use simple unauthenticated payloads only. Zapier keeps credentials in Webhooks step fields. People with Zap access can read them.

Search versus monitor

Search existing tweets with an action. Monitor new tweets, replies, quotes, or reposts with polling or signed webhook events.
This guide builds the private Platform integration.

Prerequisites

  • Xquik API key
  • Zapier account with Platform CLI access
  • A Node.js release supported by the current Zapier Platform CLI
  • HTTPS callback URLs for REST Hook testing
Install and sign in to the Zapier CLI:

Integration shape

Auth

API key field named apiKey, injected as x-api-key.

Base URL

https://xquik.com/api/v1

Request helper

JSON requests, structured Xquik errors, and Retry-After handling.

Actions

Search Tweets, Get User, Read Followers, Create Extraction, and Create Monitor. Add Create Webhook, Create Tweet, and Create Reply.

Triggers

New Matching Tweet polling and Monitor Event instant trigger. Add Extraction Completed and Webhook Delivery Failure polling.

API key auth

Add a custom auth field and inject it into every Xquik request:

Shared error handling

Normalize Xquik responses in one helper so every action reports the same remediation:
Call xquikRequest(z, options) before reading response data. Use each route’s response widget as the canonical status list.

Starter actions

Search tweets

Call GET /x/tweets/search with q. Use cursor for page loops. Keep limit on bounded resumes.

Get tweet

Call GET /x/tweets/{id} with a tweet ID.

Get user

Call GET /x/users/{id} with a username or numeric user ID.

Read followers

Call GET /x/users/{id}/followers. Preserve next_cursor between pages.

Read following

Call GET /x/users/{id}/following. Keep following rows separate.

Read tweet replies

Call GET /x/tweets/{id}/replies. Preserve parent and reply tweet IDs.

Get trends

Call GET /x/trends with optional woeid and count.

Create tweet

Call POST /x/tweets with account, text, and optional public media URLs.

Create reply

Call POST /x/tweets with account, text, and reply_to_tweet_id.

Create extraction

Call POST /extractions with toolType, query fields, and result limit.

Create monitor

Call POST /monitors with username and event types.

Create webhook

Call POST /webhooks with callback URL and event types.

Result handoff

Use Zapier samples and outputFields so later Zap steps map stable values. Use snake_case storage keys when direct API responses use camelCase. Return compact objects from actions and arrays from triggers.

Search tweets action

Return id, tweet_id, text, author_username, created_at, and url. Keep has_next_page and next_cursor when a Zap loops pages.

User profile rows

Return source id as user_id. Keep username, name, followers, verified, and profile_picture. Store the input, has_next_page, and next_cursor separately.

Follower and following rows

Store user_id, username, name, followers, following, verified, and profile_picture. Keep the source account, page cursor, and relationship direction.

Trend rows

Return each trend name, rank, query, and description. Keep response count, woeid, and the selected region with the Zap 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

Return monitor id, username, xUserId, eventTypes, isActive, and nextBillingAt. Return webhook id, url, eventTypes, and one-time secret. Map production deliveryId to delivery_id for receiver retry deduplication. Map streamEventId to stream_event_id for event deduplication across webhook changes.

REST hook trigger

Return id, delivery_id, and stream_event_id. Use delivery IDs for endpoint retries. Use event IDs across webhook changes.

Stored event replay

Call GET /events with cursor when a Zap needs replay. Map event and monitor IDs first. Then map occurredAt, hasMore, and nextCursor to snake_case fields.

Receiver acceptance

Zapier controls responses from its generated hook URL. Use a relay when you need custom acceptance or replay rules. Keep signing values, raw bodies, raw signatures outside Zap history. Keep full headers outside business apps too.

Extraction polling trigger

Return completed job id, toolType, and status. Store normalized IDs, status, has_more, and next_cursor. Then fetch detail rows.
Map friendly region names to WOEID values. Submit the selected value to Xquik. Example search action:

Trigger 1: new matching tweet

Poll searches for query alerts. Return stable tweet records with unique IDs.
Return newest tweets first. Never reuse saved cursors across polling runs.

Trigger 2: monitor event REST hook

Use REST Hooks for near-real-time tweets, replies, quotes, and retweets.

Choose a secure webhook path

Use a verification relay. Keep the one-time signing secret outside Zapier logs.

Production relay

Let the relay create the Xquik webhook. Store its secret only in the relay. Verify HMAC, timestamp, nonce, delivery ID, and event ID there. Forward a normalized event to bundle.targetUrl after verification.

Direct private prototype

Use direct Zapier subscription only for isolated testing. The returned secret enters bundle.subscribeData and may enter Zapier HTTP logs. Never use this path when that exposure violates your secret policy.

Direct prototype subscribe

Zapier stores this result in bundle.subscribeData. Never expose the secret through trigger output. Use this path only for isolated testing.

Unsubscribe

Direct prototype perform

Verify bundle.rawRequest.content before using bundle.cleanedRequest. Zapier prefixes most inbound raw headers with Http-; normalize that prefix. Zapier does not provide a durable 5-minute nonce store. Place a durable verification relay before Zapier in production. Verify HMAC, timestamps, and nonces there. Deduplicate deliveryId and streamEventId before forwarding. Zapier owns responses from bundle.targetUrl.
Testing a REST Hook calls performList, not the live perform handler.

Trigger 3: extraction completed

Trigger 4: webhook delivery failure

Build useful Zapier Twitter automation

Zapier Twitter Google Sheets

Search tweets with one saved query. Append IDs, text, authors, times, and URLs to Google Sheets. Resume with that query’s next_cursor.

Zapier Twitter to Slack

Verify each monitor event. Send normalized tweets, accounts, event types, and URLs to Slack in real time.

Zapier Twitter Discord

Send matched tweets or replies to Discord. Include the author, timestamp, tweet URL, and search query.

Zapier RSS to Twitter

Read blog posts from an RSS feed. Create approved scheduled tweets with the article title, URL, and campaign tags.

Zapier post to Twitter

Review the Twitter account, text, reply target, and media. Then run the approved write action with an idempotency key.

Followers to CRM

Use an automated workflow for bounded follower pages. Choose an extraction job for durable CSV, JSON, or XLSX exports.
Zapier Twitter Google Sheets workflows store searchable tweet rows. Zapier Twitter to Slack sends verified alerts in real time. Zapier Twitter Discord sends matched tweet notifications. Zapier RSS to Twitter converts blog posts from an RSS feed. Review scheduled tweets and the Twitter account before scheduling posts. Approve every Zapier post to Twitter step. Keep each automated workflow focused. Compare other Twitter automation tools before choosing.

Test coverage

Add focused Zapier tests before sharing the private app:

Auth header injection

Every request includes x-api-key from bundle.authData.apiKey.

Invalid key

401 returns “Authentication failed. Check the Xquik API key.”

Invalid input

400 returns the safe Xquik detail or an input-field remediation.

Billing required

402 tells the user to update subscription or credits.

Missing resource

404 identifies a bad tweet, user, monitor, webhook, or extraction ID.

Dependency failure

424 stops unsafe automatic retries and preserves a safe explanation.

Rate limit

429 creates ThrottledError with Retry-After when present.

Retrieval failure

502 uses a bounded retry policy outside unsafe write actions.

REST hook subscribe

The relay stores bundle.targetUrl, selected event types, and the secret.

REST hook unsubscribe

DELETE /webhooks/{id} uses bundle.subscribeData.id.

Sample output

performList and live perform return identical snake_case fields.

Search action

Search returns stable tweet IDs, authors, timestamps, URLs, and cursors.

Raw-Body signature

Changing one raw body byte makes HMAC verification fail.

Stale timestamp

A timestamp outside 5 minutes is rejected before JSON parsing.

Secret hygiene

Production Zapier output and logs never receive the Xquik signing secret.

Relay replay store

The relay rejects reused nonces and deduplicates delivery and event IDs.

Acknowledgement ownership

Relay tests cover custom 2xx rules. Zapier owns its hook URL response.
Run the local Zapier suite with:

Zapier Twitter automation questions

How does a Zapier Twitter API connection work?

Yes. A private Platform app calls Xquik with one API key.

Why does the native Zapier Twitter integration not work?

Zapier retired it in 2023. Use a private Platform integration.

What does a Twitter Zapier workflow replace?

It replaces manual copying across tweet workflows.

Can Zapier search tweets by keyword?

Yes. Search with q; store tweet IDs and cursors.

Can Zapier export Twitter followers?

Yes. Page small lists; export larger ones.

Should a zap poll or use a Twitter webhook?

Poll delayed searches. Use signed hooks for live monitors.

How does Zapier verify an Xquik webhook?

Use a production relay. Verify HMAC over the raw body there. Check the timestamp and nonce before parsing JSON. Reject reused nonces. Deduplicate delivery and event IDs before forwarding events to Zapier.

Can Zapier post tweets and replies?

Yes. Use Zapier to automate tweets only after explicit approval.

Can Zapier schedule posts from an RSS feed?

Convert RSS items into scheduled tweets. Approve them before publishing.

Zapier and Xquik sources

Next steps

Read API Reference for statuses, Webhooks for verification, and Extraction Workflow for jobs.