All updates

Workflows built over the API, and loyalty data in Databricks

A Workflow Builder API lets scripts and AI agents build and test Data Workflows, Databricks receives client data and logs, and Salesforce syncs Account fields.

01 ·Data Workflows, built and tested through the API

The Workflow Builder API does what the Data Workflows canvas does. With a community API key that holds the Workflow Builder permission, a script can list the step types, create a workflow with its trigger, add and edit steps and router branches, test it, deploy it and read its runs. AI agents get the same tools through an MCP endpoint on the same key, and a workflow built this way opens in the canvas like any other.

Each test runs in one of two modes. A live test runs the real steps and can pay rewards. A dry run follows the workflow with the trigger data supplied and reports what each step would do, such as the XP it would add or the request it would send, and writes and sends nothing. Every edit carries the revision it started from, and the API refuses an edit made against an older revision. Credentials stored in a step come back masked in every response.

Testing a workflow through the API
Mode
Webhook triggerclient A · XP 150
Trigger data
Get user fieldsreads the client's XPRead
RouterXP > 100, so branch 1Branch
Branch 1 · XP > 100
Would add 10 XPPost user fieldsSimulated
Otherwise
Would send a POSTHTTP request to your URLNot taken
Dry run: shown, not doneXP written 0 · requests sent 0
Illustration · one workflow tested as a dry run and as a live test, for two example clients
Why it matters

A broker's developers, or an AI agent working for them, can build and change reward workflows from their own tools and check the result in the canvas. A dry run shows which branch a client would take before any reward is paid.

02 ·Client data synced into Databricks

Databricks is a new integration. The broker's team connects a Databricks workspace through a service principal, maps platform fields, and the platform writes them to two tables: a current-state table with one row per client, and a history table. Each mapped field syncs every 2, 4, 6 or 12 hours. A scheduled run picks up the clients whose XP, coins, level, tier, roles or custom fields changed in that interval, and a manual full sync refreshes every eligible client, profile fields included.

When a value changes several times in one interval, the current-state table holds the latest value and the history table gets one row for that client and field, carrying the same latest value. A retried run adds no second history row.

One scheduled sync run into Databricks
XP · every 4 hours
Interval 12:00 to 16:00 UTCClient 1042 · XP 160
12:40 · 13514:05 · 15015:20 · 160
Client 2087no change in this interval, so this run skips it
Current-state tableone row per client, latest value
1042XP160
History tableone snapshot per client and field
1042XP16012:00-16:00
Three changes in the interval, one row in each tableClient 1042 · XP 160
Illustration · one client's XP changing three times in a 4-hour interval, written once to each table
Why it matters

A broker that already reports from Databricks can query its clients' XP, coins, levels and tiers in the same workspace.

03 ·Program logs delivered to Databricks as CSV files

The same integration's Log Export sends logs to a Databricks volume as CSV files, daily or weekly, one file per log: the Gamification Log, Milestone Log, API Log, Mini Games Log and Raffles Log. An admin can also export a chosen past date range. Each run covers its own period with no gap or overlap against the next, and its manifest, listing the period, the files and their row counts, goes up only after every file has uploaded. Export History shows each run's files and result.

Why it matters

Reward, game and API activity reaches the broker's own Databricks workspace on a schedule, for its analysts to audit or report on.

04 ·Salesforce sync with Account fields, matched by your own identifier

The Salesforce integration can map Account fields as well as Contact fields. For an Account sync, the admin pairs the platform's user identifier, such as Customer ID, with the Account field that holds the same value. A read applies the matched Account's mapped values to the client, and a write updates mapped fields on that existing Account. The sync never creates Accounts, and it uses the identifier field only for matching, so no outbound mapping can overwrite it. Contact sync can still match by email.

Why it matters

Brokers whose client IDs live on the Salesforce Account can sync loyalty data against that record directly.

05 ·An Order Status Change event for outgoing webhooks

Outgoing Webhooks have an Order Status Change event. It sends once an order's new status has saved, whether the change came from Order History or the API, and carries the order, the community, and the previous and new status in the same shape for both. An update that leaves the status as it was, or fails, sends nothing. Pointed at a workflow's incoming webhook, the event can start a workflow that checks the new status, for example before passing an order to a fulfilment partner.

Why it matters

Store orders can wait for the broker's own review and move on to fulfilment when the team changes their status.

06 ·Settings visits in the Audit Log

The Audit Log has a Settings Access category. Each time an owner or admin opens a community settings page, the log records who opened it, the page (and the tab, where one is selected), the time and the IP address. A reload or a return visit counts as a new visit; refreshing a table or changing a filter on the page does not.

Why it matters

A broker's security or compliance reviewer can see which administrators opened which settings, and when, next to the changes they saved.

Also in this build
Improvement

The Referral, Socials, Streaks, Leaderboard and Mini Games widgets can show a different banner for each language, as the Milestones, Earning Overview and Store widgets already can.

29 Oct
Improvement

Jumping to older messages in a chat channel shows a loading state while they load.

29 Oct
Fix

On mobile, the Quests dropdown in the sidebar opens above the menu drawer.

29 Oct
Under the hood

The Getting Started widget starts loading the files for its first screen earlier.

29 Oct