Skip to main content
Lark (international) and Feishu (China) are two regions of the same platform. To connect Synti you create a custom app on the Open Platform, grant it a few messaging permissions, and paste its credentials into Synti. Unlike the other integrations, Lark/Feishu can also respond in group chats when the bot is @mentioned.
Pick your region up front — a bot belongs to Lark or Feishu, not both.
  • Lark (international): open.larksuite.com
  • Feishu (China): open.feishu.cn

Create the app

The Open Platform offers a quick path that pre-configures everything, and a manual path if you’d rather set it up yourself.

Required scopes

Enable all three, or events and sends will silently fail:

Events

  • Delivery mode: Long connection (WebSocket) — not webhooks.
  • Event subscription: im.message.receive_v1.
  • Encryption key: leave blank. Long-connection mode doesn’t encrypt payloads.
  • Publishing: the app version must be published, or the tenant in dev mode, before messages arrive.

Connect it in Synti

1

Open the Lark / Feishu tile

Go to Settings → Messaging and open the Lark / Feishu tile.
2

Select your region

Choose Lark or Feishu to match where you created the app.
3

Paste credentials

Enter the App ID and App Secret.
4

Test and save

Click Test — Synti exchanges the credentials for a tenant access token — then Save. The credentials go into the workspace keychain and the WebSocket connection starts.

Pair your first chat

1

DM the bot

Open a direct message with the bot in Lark or Feishu.
2

Request a code

Send /pair in the chat.
3

Copy the code from Synti

In Synti, open the session menu → Pair with Messaging → Lark, and copy the six-digit code.
4

Redeem it

Send the pairing command with that code back in Lark, then send any message to begin.

Group chats

In groups, the bot only receives messages where it’s @mentioned — a consequence of the im:message.group_at_msg scope. Without the mention, the server never delivers the event. This scope can’t be widened without enterprise approvals.

Rich text and cards

Lark/Feishu renders more formatting natively than the other platforms, though a few Markdown constructs fall back to plain text. When the agent needs mid-flow approval, it posts an interactive card with native action buttons. A few limits apply:
  • Up to 10 buttons per card.
  • Button labels are truncated at 30 characters.
  • The card clears itself after you act on it.
  • Draft apps display cards but their button callbacks won’t fire — publish the app to make buttons work.

Attachments

  • Inbound (DMs and group @mentions): images and files download server-side into the session’s working directory.
  • Outbound: the agent can send images and documents; any caption follows as a separate text message.
  • Limits: 20 MB per attachment. Audio, video, and stickers aren’t supported and are logged as dropped.

Other limits

  • One region per bot. A bot lives in Lark or Feishu, never both.
  • Edit window. Editing a message older than 24 hours silently fails — a Lark API limit.

Troubleshooting

Messaging logs are written to ~/.synti/logs/messaging-gateway.log. Filter for the lark-adapter component to isolate Lark/Feishu activity.