Skip to content
AskTable

Documentation feedback

Current pageConnect a Feishu bot/en/integrations/feishu

0 / 5,000

Your feedback will be sent to the maintenance team.

Go to console
Go to console

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”:

PermissionPurpose
im:messageReceive and send messages
im:message.group_at_msg:readonlyReceive 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:

FieldRequirement
App IDRequired, such as cli_xxxxxxxx
App SecretRequired, the Feishu application secret
Encrypt KeyOptional; must match Feishu console configuration
Verification TokenOptional; 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:

SettingFeishu defaultEffect
Reply in threadsOffWhen on, replies to new group questions open a thread beneath the question; when off, replies go directly to the group
Deep reasoningOffGives complex analysis more reasoning time
Channel preferencesBlank, up to 1024 charactersFor 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.

StatusMeaning
ConnectedThe current channel's persistent connection is healthy
ConnectingEstablishing or restoring the connection
DisconnectedNo usable connection currently exists
ErrorAn 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

LocationAction
Direct messageSend 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-upStill 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

SymptomWhat to checkResolution
Always Connecting or showing ErrorError explanation beside connection statusVerify App ID, App Secret, and application publication; for private deployments, confirm the channel gateway is running
Saving reports missing required fieldsApp ID or App Secret in first-time configurationComplete credentials and save again
Connected but no reply, and Recent messages has not changedBot group membership, @ mention, event subscriptionVerify bot capability, publication, and messaging permissions; test a direct message first
Recent messages shows Processing failedProcessing status and reason in “Details”Check Agent data source availability and user permissions, then retry
Recent messages shows Reply failedReply 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 IgnoredProcessing explanation in “Details”Check whether the message is a question the current bot can handle
Says information was submitted for approval or user is unauthorizedPerson binding and Agent authorizationHandle pending approval in “People,” then authorize in the current channel's “People permissions”
Reports missing contact:user.employee_id:readonlyFeishu application did not provide user_idAdd the permission, republish, and ask the user to send a question
Reports Agent deleted or unavailableAgent bound to the channelReconfigure using a valid Agent or select “Disabled”
Other people can ask after allowlist is disabledCurrent platform's allowlist switchRe-enable and complete person authorizations if access must be restricted

Next steps