From xactions
Create, manage, and test webhooks in XActions for HTTP notifications on automation job completions, failures, follower changes, and queue events. Integrate XActions into external systems.
npx claudepluginhub nirholas/xactionsThis skill uses the workspace's default tool permissions.
API-powered webhook system for receiving real-time event notifications from XActions.
Creates HMAC-signed webhooks delivering real-time X (Twitter) events like new tweets, mentions, monitored account activity, and giveaway completion to user URLs. Manages setup, testing, and secret rotation via Xquik API.
Guides webhook design, inbound handling with HMAC verification and idempotency, outbound delivery with retries, circuit breakers, and dead letter queues.
Implements secure webhook systems for event-driven integrations with signature verification, retry logic, queues, and delivery guarantees. Use for third-party services, notifications, and real-time sync.
Share bugs, ideas, or general feedback.
API-powered webhook system for receiving real-time event notifications from XActions.
| Goal | Route | Method |
|---|---|---|
| Create a webhook | POST /api/webhooks | REST API |
| List webhooks | GET /api/webhooks | REST API |
| Update a webhook | PATCH /api/webhooks/:id | REST API |
| Delete a webhook | DELETE /api/webhooks/:id | REST API |
| Test a webhook | POST /api/webhooks/:id/test | REST API |
POST /api/webhooks
Authorization: Bearer <token>
Content-Type: application/json
{
"url": "https://your-server.com/webhook",
"events": ["operation.complete", "follower.lost", "follower.gained"],
"secret": "your-signing-secret"
}
POST /api/webhooks/:id/test
Authorization: Bearer <token>
Sends a test payload to the registered URL.
| Event | Triggered when |
|---|---|
operation.complete | An automation job finishes successfully |
operation.failed | An automation job fails |
follower.gained | You gain a new follower |
follower.lost | You lose a follower |
job.started | A Bull queue job begins |
job.completed | A Bull queue job completes |
Webhooks are signed with HMAC-SHA256 using your secret:
const signature = req.headers['x-xactions-signature'];
const expected = crypto.createHmac('sha256', secret)
.update(JSON.stringify(req.body))
.digest('hex');
const isValid = crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
GET /api/webhooks/:id/deliveriesfollower.gained / follower.lost events