Lark Bitable
Lark Bitable (called Feishu in the Chinese UI) can be connected in two ways. Pick one per table; a single account can mix both.
Two ways to connect Lark Bitable
Section titled “Two ways to connect Lark Bitable”| Method A: Automation Webhook trigger | Method B: Custom app (API) | |
|---|---|---|
| App required | ❌ No | ✅ Custom app on the Feishu open platform |
| Setup time | ~3 minutes | ~10 minutes |
| Standard columns | Manual (or mapped from the test request) | ✅ 14 standard columns auto-created |
| Permission | Table member is enough | App must be added as table collaborator |
| Data capability | One-way write | One-way write, server-controlled |
| Best for | Individuals, small teams, quick trials | Teams that need unified structure and long-lived ledgers |
Recommended: start with Method A (Automation Webhook trigger) — no approval needed. Only move to Method B when you need auto-created standard columns.
Method A: automation webhook trigger (recommended)
Section titled “Method A: automation webhook trigger (recommended)”Feishu Bitable’s built-in Automation supports flows triggered by incoming Webhook requests. This is a completely separate path from the open-platform custom app: individuals and small teams can set it up in a few clicks, with no app application and no admin approval.
This is the recommended way to integrate BugCapturer.
Prerequisites
Section titled “Prerequisites”- A Feishu account with edit access to the target Bitable
- No Feishu app required
Step 1: Create an automation flow in Feishu
Section titled “Step 1: Create an automation flow in Feishu”- Open the target Bitable, click “Automation” in the top-right → “New flow”
- Choose “When a Webhook request is received” as the trigger
- Feishu generates a unique Webhook URL — copy it for the next step
- If you enable “Verify token”, note the generated Bearer token (optional, recommended to prevent forged requests)
- Keep the flow editor open and continue below
Step 2: Add the integration in BugCapturer
Section titled “Step 2: Add the integration in BugCapturer”- Sign in at app.bugcapturer.com and open the “Integrations” page
- Select “Feishu Bitable” in the left platform list → click “Add integration”
- Choose “Automation Webhook trigger” (recommended)
- Fill in:
- Name: anything recognizable, e.g. “Client bug ledger”
- Webhook URL: paste the URL from step 1
- Bearer token (optional): only if you enabled token verification in Feishu
- Click “Verify & save”
Step 3: Generate the field mapping
Section titled “Step 3: Generate the field mapping”On save, BugCapturer sends a test request to your Webhook URL. Back in the Feishu flow editor:
- In the flow’s “Output settings”, choose “Set via sent request”
- Feishu listens for requests arriving within 3 minutes, automatically lists every field of the test record it just received
- Map the fields you need to table columns, then save and enable the flow
Afterwards click “Test” on the integration card and confirm a new row appears in the table.
Field reference
Section titled “Field reference”The JSON body BugCapturer sends contains the following fields (all text, mappable to plain-text columns):
| Field | Meaning | Example |
|---|---|---|
source | Source marker, always BugCapturer | BugCapturer |
description | Problem description (truncated when too long) | Login button unresponsive |
feedback_type | Report type | bug / suggestion |
page_url | URL of the page where it happened | https://example.com/login |
page_title | Title of that page | Sign in - Example |
browser_info | Browser and OS | Chrome 128 / Windows 11 |
screen_resolution | Screen resolution | 1920x1080 |
console_errors | Console errors summary (count + first 3) | 2 items - TypeError: … |
network_errors | Network errors summary (count + first 3) | 1 item - GET /api → 500 |
screenshot_url | Screenshot link | https://…/api/shares/xxx/file |
report_link | Full link to the shared report | https://app.bugcapturer.com/share/xxx |
submitted_at | Submission time (Beijing time text) | 2026-09-09 14:30:00 |
expires_at | Share expiry time (Beijing time text) | 2026-12-08 14:30:00 |
“Validating Webhook URL” fails on save?
Make sure the URL was copied completely (including https://) with no stray spaces or line breaks. BugCapturer only accepts public https URLs.
Save succeeded but nothing appears in the table? Confirm the flow is saved and enabled; without output mappings an incoming request writes nothing. Click “Test” on the integration card to fire another test record.
Can screenshots go into native attachment columns?
No. Automation Webhooks only write text fields; screenshots are provided as a screenshot_url link. For native attachments use Method B.
Can one table have multiple integrations? Each table’s flow generates its own Webhook URL. Each BugCapturer account can hold up to 3 integrations.
Method B: custom app via the Lark Open Platform
Section titled “Method B: custom app via the Lark Open Platform”Use the Feishu open-platform “custom app” API when you want BugCapturer to auto-create standard columns and keep a unified table structure. This method requires creating an app on the open platform and suits admins setting up team ledgers; for quick trials prefer Method A (Automation Webhook trigger).
Prerequisites
Section titled “Prerequisites”- A Feishu account (individual accounts can create custom apps)
- Access to the target Bitable
- About 10 minutes
Step 1: Create a Feishu custom app
Section titled “Step 1: Create a Feishu custom app”- Open the Feishu open platform, sign in and enter the “Developer Console”
- Click “Create custom app”, fill in the name (e.g. BugCapturer) and description
- Once created, copy the App ID (starts with
cli_) and App Secret from “Credentials & basic info”
Step 2: Enable Bitable permissions and publish
Section titled “Step 2: Enable Bitable permissions and publish”- In the app, open “Permissions”, search and enable
bitable:app(view, comment, edit and manage Bitable) - Open “Version management & release”, create a version and publish
- Individual accounts usually need no admin approval; enterprise tenants might
Step 3: Add the app as a table collaborator
Section titled “Step 3: Add the app as a table collaborator”- Open the target Bitable, click ”…” in the top-right → “More” → “Add document app”
- Search for your app, add it with “Can edit” permission
Step 4: Add the integration in BugCapturer
Section titled “Step 4: Add the integration in BugCapturer”- Sign in at app.bugcapturer.com and open the “Integrations” page
- Select “Feishu Bitable” in the left platform list → click “Add integration” → choose “Custom app (API)”
- Fill in App ID, App Secret, and paste the Bitable URL from the browser address bar (must contain the
tableparameter, e.g.https://xxx.feishu.cn/base/bascnXXXX?table=tblYYYY&view=vewZZZ; wiki/wiki/links are supported too) - Click “Verify & save”
On save the server runs a four-step check: verify credentials → parse the table → auto-create missing standard columns → write one test record. Any failure is reported with its step on the page.
Standard columns created automatically
Section titled “Standard columns created automatically”If any of the following columns are missing, BugCapturer creates them (existing same-name columns are kept untouched):
| Column | Type | Meaning |
|---|---|---|
| 描述 (Description) | Text | Problem description |
| 类型 (Type) | Text | bug / suggestion |
| 页面 URL (Page URL) | Text | Page where it happened |
| 页面标题 (Page title) | Text | Title of that page |
| 浏览器 (Browser) | Text | Browser info |
| 操作系统 (OS) | Text | Operating system |
| 分辨率 (Resolution) | Text | Screen resolution |
| 控制台错误数 (Console errors) | Number | Console error count |
| 网络错误数 (Network errors) | Number | Network error count |
| 截图 (Screenshot) | Link | Screenshot URL |
| 分享链接 (Share link) | Link | Full link to the shared report |
| 提交时间 (Submitted at) | Date | Report submission time |
| 到期时间 (Expires at) | Date | Share expiry time |
| 同步时间 (Synced at) | Date | When this row was written |
Method A vs Method B
Section titled “Method A vs Method B”| Method A: Webhook trigger | Method B: Custom app (API) | |
|---|---|---|
| App required | No | Yes |
| Standard columns | Mapped manually | Auto-created |
| Attachment columns | Links only | Screenshot written as a link |
| Admin approval | Not needed | May be needed on enterprise plans |
| Best for | Individuals / small teams | Team ledgers with unified structure |
Both methods can coexist: the same account can configure Method A and Method B integrations for different tables (3 in total).
“Invalid credentials” error? Check that the App ID / App Secret were copied fully; credentials may reset after publishing a new version — always use the latest values from “Credentials & basic info”.
Do I need to re-enter the App Secret when editing? No. Leaving the Secret empty on edit keeps the old value; changing credentials or the table link triggers a re-verification.
Troubleshooting
Section titled “Troubleshooting”When saving fails, the page shows the exact error message and error code. Find yours below (all are real-world pitfalls observed during testing):
| Error / code | Cause & fix |
|---|---|
| “Missing required scopes” (code 99991672) | Scopes are incomplete or not yet effective: enable them via the link in the error (bitable:app for regular tables; wiki tables also need wiki:wiki:readonly), then create and publish a new app version — enabling scopes without publishing does not take effect |
| “Table not found” / “document not found” (code 131005) | Feishu returns “not found” for wiki nodes the app has no access to, so treat it as a permission issue first: 1) the app has the “Bot” capability added and a version published; 2) the app was added via ”…” → “More” → “Add document app” on the target table page; 3) the URL was copied in full from the browser address bar. Personal-edition wikis may lack the “Add document app” entry — move the table to “My Space” and use its /base/ link instead |
| “No collaboration permission” (code 91403) | The app was not added as a collaborator on that table: open the table → ”…” → “More” → “Add document app” → search the app name → add with “Can edit” |
| “Failed to create standard columns” | The collaborator permission was set to “Can read”: re-add the app with “Can edit” and retry. Existing same-name columns are skipped automatically — no need to delete any headers |