A webhook is only as real-time as the collector that produces its event. That distinction matters for Fansly: the normalized webhook and automation engine can process cross-platform events, while Fansly background polling and the real-time listener may be disabled until validated for a deployment.
A responsible integration checks capability state, provides an on-demand or scheduled fallback, and never describes a gated collector as guaranteed real time.
The event pipeline
The implemented pipeline has four stages:
- 1.A platform collector observes a change.
- 2.The event bus normalizes and persists an event.
- 3.Matching automations run.
- 4.Approved webhooks and live SSE subscribers receive the event.
This means webhook configuration alone cannot create an event. For a Fansly account, confirm that its polling or listener path is enabled and healthy.
Register a filtered webhook
Create the webhook at POST /webhooks with a destination URL and event_types. Start with the smallest set your consumer needs, such as new_message and new_tip.
Deliveries use the same signed envelope for platform-normalized events. Verify X-OnlyAPI-Signature over timestamp + period + raw body bytes, reject stale timestamps, and deduplicate X-OnlyAPI-Delivery-Id. The full implementation is in the webhooks guide.
Create an automation
Automations are panel-scoped and can optionally target one account through of_user_id. A Fansly-specific notification rule should include that account ID so it cannot run for an OnlyFans creator by accident.
{
"name": "Fansly high-value tip alert",
"trigger_event": "new_tip",
"of_user_id": "FANSLY_ACCOUNT_ID",
"conditions": [
{"field": "payload.amount", "op": "gte", "value": 50}
],
"action_type": "slack",
"action_params": {
"url": "https://hooks.slack.com/services/REDACTED",
"message": "High-value tip from {payload.fan.username}"
},
"is_active": true
}Supported actions include webhook, Discord, Slack, Telegram, send_dm, and tag_fan. Test with a sample payload before activation. Keep secrets out of template fields and store integration credentials only through supported encrypted paths.
Treat send actions carefully
One-to-one Fansly text DMs are wired through the normalized messages route. Fansly media upload is not currently wired, and mass messaging remains OnlyFans-only. An automation that needs unsupported media or bulk behavior should stop with an explicit operator task rather than silently degrading.
Use account-level allowlists and a human review step for revenue-sensitive or high-volume messaging. A retry must not duplicate a paid message or a user-visible send.
Build a fallback when collectors are gated
If Fansly polling is unavailable:
- Show the account as on-demand rather than real-time.
- Run conservative scheduled reads through supported normalized routes.
- Persist a cursor or last-success time.
- Reconcile transactions and messages after outages.
- Alert the operator when freshness exceeds a declared threshold.
Do not simulate real-time updates by polling every few seconds. Follow the safe polling guide and display the actual last-synced time.
Replay and ordering
Webhook deliveries can repeat or arrive after a newer event. Store event ID, delivery ID, occurred_at, account ID, and platform. Apply changes idempotently, and order financial reconciliation by the underlying record timestamp rather than HTTP arrival time.
SSE is useful for a live dashboard but has no replay. Backfill from GET /events?since=... after reconnecting. Webhooks also need monitoring: five consecutive delivery failures deactivate a destination until it is re-enabled.
Observe the workflow
Track collector freshness, event lag, webhook acceptance rate, retry count, automation run outcome, and dead-letter count by platform. A blended success rate can hide that OnlyFans is healthy while Fansly is stale.
Roll out in stages
Start with a test account and a notification-only action. Compare events against the platform UI, then enable one low-risk automation. Expand only after a week of reconciled results. Document which Fansly features are supported, limited, or unavailable at the time of release.
Begin with the Fansly quickstart, then use the multi-platform CRM guide to carry platform and capability state through your database. Check the current Fansly API page, documentation, and pricing before moving from a test account to an agency roster.