Configuration and administration
Connect a Feishu bot
Use a data Agent to query data in Feishu direct messages or group chats.
Guide · Module: integrations · Developers · Deployment: Not specified · Confirmed product versions: Not specified · Source: Existing documentation
After connecting Feishu, colleagues can ask directly in private messages or @ the bot in a group and receive data answers without logging in to AskTable. The bot uses the bound Agent's data sources, skills, and capability configuration.
AskTable supports Feishu and Slack. An Agent can save configurations for both platforms, but enables only one at a time. Switching platforms or selecting “Disabled” preserves existing configuration so you can switch back later.
Before you begin
- Your AskTable project role must be “Project owner” or “Project administrator,” with a Data Agent that already has data sources configured.
- Create, configure, and publish an enterprise custom application in Feishu Open Platform; complete review according to your enterprise requirements.
- Decide who can ask data questions first. The channel allowlist is off by default, so anyone who can contact the bot can ask. See Feishu user permissions to restrict data scope by person.
- Private deployments must run a channel gateway; see Deploy the messaging gateway. SaaS users do not need to deploy it themselves.
Create and publish a Feishu application
Create an application and enable the bot
Create an enterprise custom application in the developer console of Feishu Open Platform and enter its name, icon, and description. Enable “Bot” under “Add application capabilities,” then record App ID and App Secret from “Credentials and basic information.”
Set up a persistent connection and event subscriptions
Choose a persistent connection under “Events and callbacks” and subscribe to “Receive message v2.0” (im.message.receive_v1). AskTable receives messages over a persistent connection, so no public Webhook callback URL is required.
If Encrypt Key or Verification Token is configured, record the values and use the same ones when connecting AskTable.
Enable messaging and person permissions
Enable these messaging permissions in “Permission management”:
| Permission | Purpose |
|---|---|
im:message | Receive and send messages |
im:message.group_at_msg:readonly | Receive group messages that @ the bot |
Restricting data scope by person also requires contact:user.employee_id:readonly, allowing AskTable to obtain the Feishu user_id for person matching. Without it, channels with allowlists enabled reject users and cannot add them to pending approval. See Feishu user permissions for other person profile permissions.
Every question and follow-up in a group must @ the bot. Permission to read all group messages is unnecessary.
Publish the application
Create a version in “Version management and release” and submit it for review through your enterprise process. After publishing, add the application to a test group and verify one question first.
Enable Feishu in AskTable
Left main navigation → “More” → open the target Agent → “Channels.” Select “Feishu” in “Platform.” First-time configuration opens a credential dialog:
| Field | Requirement |
|---|---|
| App ID | Required, such as cli_xxxxxxxx |
| App Secret | Required, the Feishu application secret |
| Encrypt Key | Optional; must match Feishu console configuration |
| Verification Token | Optional; must match Feishu console configuration |
Feishu becomes the active platform only after clicking “Save.” Canceling preserves the previous platform selection. With existing configuration, selecting Feishu enables the saved configuration directly. Use “Edit configuration” beside “Credential configuration” to update credentials later; editing prefills existing credentials, so replace only the values that need updates. Required fields cannot be cleared. Do not include secrets in screenshots or code repositories.
Adjust responses
“General configuration” provides three settings:
| Setting | Feishu default | Effect |
|---|---|---|
| Reply in threads | Off | When on, replies to new group questions open a thread beneath the question; when off, replies go directly to the group |
| Deep reasoning | Off | Gives complex analysis more reasoning time |
| Channel preferences | Blank, up to 1024 characters | For example, “Give conclusions first and answer in concise Chinese” |
Both switches save immediately; channel preferences save on input blur. Deep reasoning and preferences apply to the next message without users restarting the conversation. Direct messages always receive direct replies, without opening threads.
Set person permissions
After enabling the platform, “People permissions” appears below. Enable the allowlist and add authorized people to restrict data scope through their bound roles. Feishu and Slack allowlist switches are stored separately. For complete setup and pending approval handling, see Feishu user permissions.
Check the connection, then send a real question
“Connection status” refreshes automatically every 5 seconds; click “Refresh” to read status immediately. The refresh button itself does not rebuild the connection.
| Status | Meaning |
|---|---|
| Connected | The current channel's persistent connection is healthy |
| Connecting | Establishing or restoring the connection |
| Disconnected | No usable connection currently exists |
| Error | An error occurred during connection or operation; read the explanation beside the status |
A healthy gateway heartbeat and Connected status do not replace verification with a real question. After sending a question, check whether “Recent messages” updates, then click “Details” to inspect processing and reply status separately. Processing complete means analysis finished; Reply successful means the result reached Feishu.
Verify in order: a direct-message question, an @ question in a test group, and questions from people with different roles. Confirm both receipt of replies and that results stay within each person's authorized data scope.
Ask in direct messages, groups, and threads
| Location | Action |
|---|---|
| Direct message | Send a question directly, such as “What were sales for each store last month?” |
| Group | @bot What were sales for each store last month? |
| Thread follow-up | Still use @bot Break it down by product category |
A thread's analysis context belongs to the original questioner. Others should send a separate group question to continue their own analysis; @-mentioning the bot in someone else's thread prompts them to start a separate question. Direct messages and non-thread group questions reuse conversations for the same person, starting again after 24 consecutive hours without new messages. Thread conversations do not expire under this 24-hour window.
Answers in groups and threads are visible to members who can view that location. Use direct messages for results that need to be viewed privately.
Switch platforms or disable
Select Slack in “Platform” to switch the active platform; select “Disabled” to stop this Agent's channel connection. Both actions preserve credentials, preferences, and permission settings for switching back. Deleting channel configuration is a separate action and does not happen automatically on disabling.
Troubleshooting
| Symptom | What to check | Resolution |
|---|---|---|
| Always Connecting or showing Error | Error explanation beside connection status | Verify App ID, App Secret, and application publication; for private deployments, confirm the channel gateway is running |
| Saving reports missing required fields | App ID or App Secret in first-time configuration | Complete credentials and save again |
| Connected but no reply, and Recent messages has not changed | Bot group membership, @ mention, event subscription | Verify bot capability, publication, and messaging permissions; test a direct message first |
| Recent messages shows Processing failed | Processing status and reason in “Details” | Check Agent data source availability and user permissions, then retry |
| Recent messages shows Reply failed | Reply status and reason in “Details” | Confirm the bot is still in the target group and sending permissions are valid; handle the specific platform error |
| Recent messages shows Ignored | Processing explanation in “Details” | Check whether the message is a question the current bot can handle |
| Says information was submitted for approval or user is unauthorized | Person binding and Agent authorization | Handle pending approval in “People,” then authorize in the current channel's “People permissions” |
Reports missing contact:user.employee_id:readonly | Feishu application did not provide user_id | Add the permission, republish, and ask the user to send a question |
| Reports Agent deleted or unavailable | Agent bound to the channel | Reconfigure using a valid Agent or select “Disabled” |
| Other people can ask after allowlist is disabled | Current platform's allowlist switch | Re-enable and complete person authorizations if access must be restricted |
Next steps
- Decide who can ask and which data each person sees: Feishu user permissions
- Send analysis conclusions on schedule: Scheduled analysis reports
- Another messaging platform: Connect a Slack bot