1. Widgets
Returning.AI
  • Getting Started
  • Users
    • User directory and provisioning
    • Get Users with Filters
      POST
    • Create New User
      POST
    • Get User Data
      POST
    • Manage User Account
      POST
    • Get User Milestones
      POST
    • Update User Data, Identifier, And Roles
      POST
    • Update User XP and Currency
      POST
  • Messaging
    • Agent messaging workflow
    • Get Messages
      GET
    • Send Message
      POST
    • Reply Message
      POST
    • React Message
      POST
    • Upload message images
      POST
  • Gamification
    • Leaderboards
      • Leaderboards
      • List leaderboards with pagination
      • Create a new leaderboard
      • Update an existing leaderboard
      • Get a single leaderboard by ID
      • Delete a leaderboard
    • Streaks & Mini Games
      • Mini-game State and History
      • List user streak logs
      • List mini-game logs by user email
      • Get current mini-game and streak state
      • Update user spin-wheel information
    • Referral
      • Referral Program Integration
      • Get referral programs
      • Get user's referral summary
    • Rolling Data
      • Get Daily Calculation Data
      • Get Rolling Calculation Data
    • Match Predictions
    • Get tier configuration
      GET
    • Get daily user XP and coin changes
      POST
    • Search user gamification logs
      POST
    • Get user activity stats
      POST
  • Rewards & Redemptions
    • Store catalog to redemptions
    • Update redemption order status or refund
    • List redemption orders by user email
    • List redemption statuses
    • Get redemption status by ID
    • List redemption orders by community
    • Create redemption order status
    • Get redemption order status history
  • Chart Analysis
    • Create Analysis
    • Get Analysis
    • Update Analysis
    • Delete Analysis
    • List Analyses
    • Append Drawings
  • Bulk Operations
    • Bulk user updates
    • List bulk update jobs
    • Get bulk update job status
    • Get bulk update job details
    • Bulk update users from CSV
    • Bulk update premium currency from CSV
  • Channels
    • Iframe
    • List integration channels
  • Events
    • Outgoing webhooks
      • Encryption
      • User Joins Server
      • User Visits server
      • New Message Posted Anywhere
      • New Message Posted To channel
      • Purchased Store Item
    • Incoming webhooks
      • API Keys & Encryption
      • Send message into channels
      • Update Custom User Fields
      • Update In-game currency
  • Widgets
    • Authenticated Widgets
    • Public widgets
    • Channels
    • Leaderboard
    • Milestone
    • Socials
    • Store
  • Community Analytics
    • Get Loyalty Overview
    • Get Phone Verification Contacts
  • Store
    • Store catalog
    • Purchase History
      • Update redemption instructions or voucher details
    • Categories
      • List Store categories
      • Create Store category
      • Get Store category by ID
      • Update Store category
      • Delete Store category
    • Products
      • List products
      • Update products in bulk
      • Create products in bulk
      • Create product with vouchers
      • Read product
      • Update product and append vouchers
      • Delete product
    • Redemption-transaction
      • Get redemption transaction detail
    • Get Store configuration
    • Update Store configuration
  • Community
    • Appearance
      • Update community theme colors
      • Update community bot profile
      • Update community URL metadata
      • Update community name and URL
    • Community Users
      • Get community users
      • Get user
    • Create community
  • API Keys
    • API key lifecycle
    • Community API Keys
      • Create API key
      • Read API keys
      • Delete API key
      • Update API key
    • User API Keys
      • List user API keys
      • Create user API key
      • Update user API key
      • Delete user API key
      • Get current API key information
  • User Fields
    • User field definitions and history
    • User Field History
      • Get all user field histories in a community
      • Get user field histories for a specific field
      • Get user field histories for a specific user
      • Get user field histories of specific user field and user
      • Update A User Field Value
      • Deprecated Field-First History Write
      • Deprecated Field-First History Read
    • Get A User Field Definition
    • Update A User Field Definition
    • Create A User Field Definition
    • Delete A User Field Definition
    • List User Field Definitions
  • Legacy
    • Servers
      • Create server
      • List servers
      • Update server metadata
    • Bulk Operations
      • Bulk import users from CSV
    • Authentication
      • Secure Auth
      • Register user with password
      • Verify user email
      • Log in user with password
    • Badges
      • List badges
      • Create badge
      • Update badge
      • Delete badge
      • Remove badge from user
      • Award badge to user
    • Messaging
    • Roles & Permissions
      • List server roles
      • Create role
      • Update role
      • Delete role
      • List user roles
      • Add role to user
      • Remove role from user
    • Users
      • Get user
      • Upload user avatar
    • Channels
      • Create channel
      • Update channel
      • Delete channel
    • API Keys
      • List integration API keys
      • Create integration API key
      • Delete integration API key
      • Update integration API key
  • Schemas
    • Sample Schemas
    • Schemas
    • Outgoing webhooks
    • Analysis
    • Pet
    • Category
    • Tag
    • ValidationError
    • NotFoundError
    • InternalServerError
    • NotImplementedError
    • CreateUserFieldHistoryResponse
    • CreateUserFieldHistorySuccessResponse
    • UserFieldHistoryItem
    • GetUserFieldHistoriesResponse
    • UserFieldHistoriesValidationError
    • UserFieldHistoriesMetaWithValidation
    • UserFieldHistoriesMetaWithPagination
    • GetUserFieldHistoriesSuccessResponse
    • CreateUserFieldResponse
    • CreateUserFieldSuccessResponse
    • DeleteUserFieldResponse
    • DeleteUserFieldSuccessResponse
    • UserFieldCreator
    • GetUserFieldResponse
    • GetUserFieldSuccessResponse
    • ValidationErrorItem
    • GetUserFieldsMetaResponse
    • CreatorInfo
    • UserFieldResponse
    • GetUserFieldsSuccessResponse
    • UpdateUserFieldResponse
    • UpdateUserFieldPayload
    • UpdateUserFieldSuccessResponse
    • MetaResponse
    • GetUserResponse
    • GetUserSuccessResponse
    • Purchased store item
    • ErrorResponse
    • New message posted to channel
    • UpdateAnalysisRequest
    • User visits server
    • AppendDrawingsRequest
    • User join server
    • CreateAnalysisResponse
    • GetAnalysisResponse
    • UpdateAnalysisResponse
    • AppendDrawingsResponse
    • AnalysisMetadata
    • Expiry
    • Levels
    • LevelEntry
    • Drawing
    • HorizontalLineDrawing
    • LineDrawing
    • RectangleDrawing
    • ParallelDrawing
    • FibonacciRetracementDrawing
    • Coordinate
    • DrawingStyle
    • AnalysisDetail
    • AnalysisSummary
    • CreateAnalysisRequest
    • ListAnalysesResponse
    • StandardApiError
    • StandardSuccessEnvelope
    • PurchasedStoreItemEvent
    • ChannelMessagePostedEvent
    • UserVisitedCommunityEvent
    • UserJoinedCommunityEvent
  1. Widgets

Authenticated Widgets

Returning.AI Widget Integration Guide#

A step-by-step guide to embed interactive community widgets on your platform with user authentication.

Step 1 Get the required credentials#

Before implementing the codes to run the widgets, you'll need the following:
1.
Community ID {{community_id}} - Your unique community identifier
Where to find it?
1.
In your admin settings.
2.
Find the Appearance page.
image.png
2.
Widget API Key {{WIDGET_API_KEY}} - Your secret API key for authentication
Important
Keep your {{WIDGET_API_KEY}} secret! Never expose it in frontend code or commit it to public repositories.
Where to find it?
1.
In your admin settings.
2.
Head to the feature for the widget. (The channel widgets will be used as an example here)
image.png
3.
Widget ID {{widget_ID}} - The specific widget instance identifier
Where to find it?
1.
In your admin settings.
2.
Head to the feature for the widget. (The channel widgets will be used as an example here)
3.
In the Iframe code example, the widget ID is in the URL.

Step 2: Understanding the Architecture#

The widget uses a secure authentication flow that requires a backend server:
Your Frontend → Your Backend → Returning.AI API → Token → Widget
Why not call the API directly from the frontend?
Your {{WIDGET_API_KEY}} would be exposed in the browser
Anyone could steal your API key and impersonate users
This could lead to unauthorized access and security breaches
Backend requirement: You need a server-side endpoint that can securely store and use your API key.

Step 3: Set Up Backend Authentication#

Call an endpoint on your server that authenticates users with the Returning.AI widget API.
Endpoint:
POST https://prod-widgets.returning.ai/widget/{{community_id}}/signin
Required Headers:
returningai-api-key: Your Widget API Key (from admin panel)
email: The logged-in user's email from your auth system
Content-Type: application/json
Response: Returns a token on success (200 status).
Note: The token is valid for one session. If authentication expires, the widget will request a new token automatically.
Examples:
Node.js
PHP
Python

Step 4: Add Frontend Authentication Script#

Add this JavaScript to your frontend to handle the authentication flow and secure communication with the widget iframe.
How it works:
1.
Calls your backend endpoint to get a token
2.
Stores the token in localStorage
3.
Listens for token requests from the widget iframe
4.
Securely sends the token to the iframe using postMessage API

Step 5: Embed the Widget#

Insert the iframe code into your HTML to display the widget.
Parameters to Replace:
{{widget_type}}: The type of widget (see supported features below)
{{widget_ID}} : Your specific widget ID from the admin panel

Supported Widgets type#

Choose the feature you want to embed:
Channels
Allow users to interact and send messages via the widget.
Widget Type: channel-widget
Use Case: Community chat, discussions, announcements
Store
Milestone
Currency Overview

Troubleshooting#

Common Issues#

Widget not loading?
Check that your community_id, widget_type and widget_ID are correct
Verify the iframe URL matches the format exactly
Check browser console for errors
Authentication failing?
Ensure your WIDGET_API_KEY is correct and stored securely in environment variables
Verify the user's email is being passed correctly to your backend
Check that your backend endpoint is accessible from the frontend
Token not being received by widget?
Verify the postMessage listener is active before the iframe loads
Check that event.origin matches exactly: https://prod-widgets.returning.ai

Getting Help#

If you encounter issues that are difficult to debug, reach out to the Returning.AI support team for assistance.

Security Checklist#

Before going to production:
API key is stored in environment variables (never in code)
API key is never exposed to the frontend
Backend endpoint validates user authentication
postMessage listener checks event.origin
HTTPS is enabled on your domain
API key is not committed to version control

Quick Start Checklist#

Obtained community_id, WIDGET_API_KEY, and widget_ID from admin panel
Created backend authentication endpoint
Added frontend authentication script
Embedded iframe with correct widget type and ID
Tested authentication flow
Verified widget loads and functions correctly

Modified at 2026-03-24 09:39:51
Previous
Widgets
Next
Public widgets
Built with