CrowdTwist · AsyncAPI Specification

Crowdtwist Data Push Webhooks

Version

View Spec View on GitHub CompanyLoyaltyCustomer EngagementMarketingGamificationRewardsOracleCX MarketingLoyalty ProgramsPointsRetailCommerceSegmentationWebhooksAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/DataPush.html
docs:
- https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/DataPush.html
- https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserActivity.html
- https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserRedemption.html
- https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/PushUserProfile-withTiersv2.html
- https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushPointsExpiration.htm
- https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserSegmentation.htm
api: Oracle CrowdTwist Loyalty and Engagement — Data Push
asyncapi_spec_published: false
asyncapi_note: >-
  Oracle publishes no AsyncAPI (or CloudEvents) document for this event surface. What follows is
  the webhook catalog transcribed from the Data Push documentation — nothing is generated.
summary: >-
  CrowdTwist pushes loyalty events outbound. "Live Data Push" POSTs JSON to a client-provided
  HTTPS endpoint in near real time; "Batch Data Push" writes a daily zipped CSV to SFTP. Feeds
  are enabled per client by the CrowdTwist support team — there is no self-service subscription
  API, no signing secret and no replay/verification endpoint.
delivery:
  transport: HTTPS POST (live) / SFTP zipped CSV (batch)
  content_type: application/json
  endpoint: client-provided, must begin with https://
  subscription_management: support-configured only; no public subscription API
  signature_verification: false
  signature_note: >-
    CrowdTwist does not sign outbound payloads. Authentication runs the other way — the client
    gives CrowdTwist a credential to present.
  authentication_options:
  - type: http-basic
    detail: Client-provided username:password, Base64 encoded.
    required: false
  - type: api-key-header
    header: x-api-key
    detail: Client-provided API key for access to the client's own endpoint.
    required: false
  retry:
    policy: five attempts per hour for up to eight hours
    on_exhaustion: request is written to an error log; support can export failed requests
    dead_letter_self_service: false
  ordering_guarantee: not documented
  at_least_once: implied by the retry policy; not stated
events:
- id: user_profile
  name: User Profile
  live: true
  batch: true
  description: Creations of new member profiles and updates to existing ones; includes Tiers v2 data.
  doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/PushUserProfile-withTiersv2.html
  batch_doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/BatchUserProfile.html
  batch_file: 2_<client_id>_PROFILE_YYYYMMDD.zip containing 2_<client_id>_USER_PROFILE_YYYYMMDD.csv
  notable: >-
    Optional third-party-ID synchronisation — CrowdTwist will read a `third_party_id` back out
    of the client endpoint's response and store it on the member. Oracle notes this option is
    only available when no authentication is configured on the client endpoint.
- id: user_activity
  name: User Activity
  live: true
  batch: true
  description: Activity completions, with points earned (negative for reward redemptions).
  doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserActivity.html
  batch_doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/BatchUserActivity.html
  batch_file: 2_<client_id>_USER_ACTIVITY_YYYYMMDD.zip
  key_fields:
  - userActivityId
  - activityId
  - activityName
  - points
  - notes
  - translatedTitle
  - translatedDescription
  multilanguage: >-
    translatedTitle/translatedDescription are null unless the member has a language preference
    and translations are loaded for the activity.
- id: user_redemption
  name: User Redemption
  live: true
  batch: true
  description: Reward redemption events.
  doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserRedemption.html
  batch_doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/BatchUserRedemption.html
  batch_file: 2_<client_id>_USER_REDEMPTION_YYYYMMDD.zip
  key_fields:
  - orderId
  - orderDate
  - rewardId
  - rewardGroupId
- id: points_expiration
  name: Points Expiration
  live: true
  batch: true
  description: >-
    Point expiration details for a member, sent every time they change. Live payload covers one
    trailing month, the current month and five forward months where expiring points exist.
  doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushPointsExpiration.htm
  batch_doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/BatchPushPointsExpiration.htm
  batch_file: 2_<client_id>_POINTS_EXPIRATION_YYYYMMDD.zip
  key_fields:
  - user_id
  - email_address
  - third_party_id
  - message_date
  - last_qualified_date
  - expiration_date
- id: user_segmentation
  name: User Segmentation
  live: true
  batch: false
  description: Fired whenever a member enters or exits a segment or segment group.
  doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserSegmentation.htm
  key_fields:
  - user_id
  - email_address
  - third_party_id
  - type
  - name
  - subscription_id
  - event
  - trigger
  - date_occurred
  enum:
    type:
    - segment
    - group
    event:
    - entered
    - exited
    trigger:
    - segment criteria
    - segment disabled
  sample: |
    {
      "user_id": 10,
      "email_address": "joe@example.com",
      "third_party_id": "user-123",
      "type": "segment",
      "name": "Users in New York",
      "subscription_id": 200,
      "event": "entered",
      "trigger": "segment criteria",
      "date_occurred": "2022-07-27T18:29:18Z"
    }
prebuilt_destinations:
- id: oracle_responsys
  name: Oracle Responsys Data Push
  doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/ResponsysDataPush.html
  feeds:
  - user_profile
  - user_activity
  - user_redemption
  - points_expiration
  auth: access token (server-to-server)
  throughput: throttled to 1 call/second, up to 200 records per call
  requires: the client's own Responsys instance
- id: salesforce_marketing_cloud
  name: Salesforce Marketing Cloud / ExactTarget Data Push
  doc: https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/SFMCDataPush.html
  feeds:
  - user_profile
  - user_activity
  - user_redemption
  auth: OAuth 2.0 client credentials against the client's SFMC instance
  requires: the client's own SFMC/ET instance
gaps:
- No AsyncAPI, CloudEvents or JSON Schema document for any payload.
- No outbound payload signing — a receiving endpoint cannot verify the sender cryptographically.
- No self-service webhook subscription, test-fire or replay tooling; everything is support-configured.
- No event catalog endpoint; the five feeds are fixed.