- A Front API token for the workspace. Lua validates it against Front’s
/meendpoint when you save the channel. - A Front webhook signing key. Lua uses it to verify the
X-Front-Signatureheader on every delivery. - Access to the agent in the admin dashboard, or an API key with the
channels:managescope on it.
1
Provider console: create the token and note the webhook key
In Front, create an API token for the workspace and find the signing key for webhooks . Keep both; Lua stores them with the channel and never returns them.
2
Dashboard: add the Front channel
In the admin dashboard open Agents, select the agent, select + in the Channels section of its Overview tab, choose Front, enter the signing key as the Webhook key and the token as the Workspace API token, and select Connect; Front Integration Setup then shows the Webhook URL for the next step. Over the API, add a channel of type Front to the agent (
POST /admin/agents/<agentId>/channels with type: "front" and a front object of workspaceToken and webhookKey). The response includes webhookUrl, of the form https://wa.heylua.ai/front/<channelId>. An invalid token fails with Invalid workspace token. Please check your Front API credentials and try again.3
Provider console: send inbound messages to the webhook URL
In Front, create a webhook (or a rule whose action sends to a webhook) that targets the
webhookUrl for new inbound messages in the inboxes the agent should handle . Lua processes deliveries whose type is inbound and ignores every other event.4
Verify
Send an email or message to the inbox. Within the Front conversation, a reply appears from “Lua AI Assistant”;
Lua.request.channel inside your tools is front. Confirm the turn with lua logs --type agent_response.Channel behavior
The reply is posted with Front’s conversation messages API, leaves the conversation unarchived, and is recorded as a delivery with Front’s message id; Front sends no receipts. Because the end user is the conversation, memory and
User data don’t carry across conversations with the same person.
Human takeover
Withtakeover.enabled on for the channel, a teammate’s reply in a Front conversation pauses the agent there. The agent stores the customer’s messages without replying until 30 minutes pass with no teammate reply, or until someone opens the conversation in the admin dashboard and selects Hand back. The teammate’s reply is saved in the conversation, so the agent sees it on later turns. Turn it on with PATCH /admin/agents/<agentId>/channels/<channel>/settings and { "changes": { "takeover.enabled": true } }, and set a different wait with takeover.idleReleaseMinutes; the request and its response are described under Email settings.
Limits
Troubleshooting
Webhook Key and Workspace Token are required
Webhook Key and Workspace Token are required
Both values are mandatory when the channel is created. Paste the Front API token as the workspace token and the webhook signing key as the webhook key.
Could not reach Front API, or Could not verify token with Front API
Could not reach Front API, or Could not verify token with Front API
Lua couldn’t call Front’s
/me endpoint to validate the token, or Front answered with an error other than 401 or 403. Retry; if it persists, check Front’s status page.Messages reach Front but the agent never replies
Messages reach Front but the agent never replies
Deliveries whose signature doesn’t match the stored webhook key are rejected, and events other than
inbound are ignored. Re-create the channel with the current signing key, and make sure the Front webhook fires on inbound messages.Next steps
A Lua-managed inbox or forwarding from your own address.
Add human handoff
Hand a conversation to a person.
About channels
How channels reach your code.
Channels overview
Every channel and where it is set up.

