Prerequisites
- Xquik API key
- Pipedream account
- Node.js 18+
- Pipedream CLI installed and authenticated
Component Shape
App
components/xquik/app/xquik.app.tsAuth
API key prop injected as
x-api-key.Base URL
https://xquik.com/api/v1Actions
Get Tweet, Search Tweets, Get User, Get Trends, Create Tweet, Create Extraction, Create Monitor, and Create Webhook.
Sources
Monitor Event Webhook and Extraction Completed Polling.
Shared helper
JSON requests, structured Xquik errors, and
Retry-After handling.App File
Create the shared app component first:apiKey: { propDefinition: [xquik, "apiKey"] } to each action and source
that calls xquik.request.
Use GET /account as the auth smoke test in your first action because it verifies the API key without mutating data.
Shared Error Handling
Wrap requests so every action and source reports the same remediation:$summary so the workflow run is scannable.
Starter Actions
Get Tweet
Call
GET /x/tweets/{id} and return one tweet.Search Tweets
Call
GET /x/tweets/search and return an array of tweets.Get User
Call
GET /x/users/{id} and return one user.Get Trends
Call
GET /x/trends and return a trend list.Create Tweet
Call
POST /x/tweets and return created tweet metadata.Create Extraction
Call
POST /extractions and return the job ID and status.Create Monitor
Call
POST /monitors and return the monitor ID and status.Create Webhook
Call
POST /webhooks and return the webhook ID and signing secret.Result Handoff
Use Pipedream exports and source event metadata to pass stable fields between workflow steps. Keep raw API pages out of Slack messages, CRM rows, warehouse loads, and retry queues.Search Tweets action
Export
tweet_count, has_more, and next_cursor; return tweet rows with tweet_id, text, author_username, created_at, and optional url.User profile action
Export
user_id, username, name, followers, verified, and profile_picture; return one profile row for GET /x/users/{id}.Trend rows
Export
trend_count and woeid; return trend rows with name, rank, query, and description, then keep the selected region with workflow event metadata.Tweet or reply write
Export
tweet_id, charged, and charged_credits on 200 Success. For 202 x_write_unconfirmed, export write_action_id, status, charged, and charged_credits, then poll GET /x/write-actions/{id} before retrying.Media attachments
For tweets or replies, pass public URLs in
media and export tweet_id or write_action_id. For DMs, upload first, pass one media_id in media_ids, export message_id, and leave reply_to_message_id unset.Monitor and webhook setup
Export monitor
id, username, xUserId, eventTypes, isActive, and nextBillingAt; export webhook id, url, eventTypes, and one-time secret. For Pipedream data stores, 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.Monitor event source
Emit
deliveryId for endpoint-level retry de-dupe, streamEventId for event-level de-dupe across endpoint changes, and occurredAt as ts.Stored Event Replay
Call
GET /api/v1/events with after when a workflow needs replay. Export event_id, type, 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 step exports, logs, data stores, Slack messages, CRM rows, and retry queues.Extraction polling source
Emit completed job
id, tool_type, and status; fetch detail rows and carry has_more plus next_cursor into warehouse batches.Source 1: Monitor Event Webhook
Use this for immediate tweet, reply, quote, and retweet alerts. Setup flow:- Pipedream creates an HTTP endpoint for the source.
- The source calls
POST /webhookswith that endpoint and selected event types. - The user creates or selects an Xquik monitor.
- Each webhook payload emits one event with a stable ID.
Event ID
Map Pipedream
id to streamEventId for event-level de-dupe, or deliveryId for endpoint-level de-dupe.Event Type
Map
eventType to route tweet.new, tweet.reply, tweet.quote, and tweet.retweet events.Occurred At
Map
occurredAt as the event timestamp.Username
Map
username for account monitor events.Tweet ID
Map
data.id as the tweet identifier.Text
Map
data.text as the tweet body.Author Username
Map
data.author.userName when present. Use username as the monitored-account fallback.x-xquik-signature before emitting events.
Source 2: Extraction Completed Polling
Use this when teams want batch jobs without webhook setup.Recipes
Search Tweets To Slack
Schedule Trigger
Run the workflow on the reporting cadence.
Xquik Search Tweets
Call the Search Tweets action and return recent matching posts.
Engagement Filter
Keep only tweets that meet the minimum engagement threshold.
Slack Send Message
Send the selected tweet text, author, and link to the channel.
Monitor Events To CRM
Monitor Event Source
Receive Xquik monitor events from the webhook source.
Event Type Filter
Route
tweet.new, tweet.reply, tweet.quote, and tweet.retweet events separately.Get User Enrichment
Enrich the event with the Get User action before CRM routing.
CRM Upsert
Upsert by user ID to avoid duplicate account records.
Extraction To Warehouse
Create Extraction
Start the extraction job with
POST /extractions.Extraction Completed Source
Poll for completed jobs before loading rows downstream.
Fetch Extraction Detail
Fetch the completed extraction detail and result rows.
Warehouse Destination
Send normalized rows to the warehouse destination.
Test Coverage
Add focused tests before sharing the component package:Auth Injection
Every request includes
x-api-key and never logs the key.Invalid Key
401 produces “Authentication failed. Check the Xquik API key.”Rate Limit
429 includes Retry-After when present.Search Action
Returns an array with stable tweet IDs.
Create Webhook
Sends callback URL and selected event types.
Webhook Source
Emits one event per payload with a stable ID.
Polling Source
Emits only completed extraction jobs.
Next Steps
- Read API Reference for auth, rate limits, and errors.
- Read Webhooks for payload shape and retries.
- Read Extraction Workflow for job creation and result pagination.
- Use Make or Zapier when the team wants no-code scenario builders.