kevin-shu/bni-submit · Archived

bni-121

自動在 BNI Connect 批次新增一對一 (121) 會面記錄與引薦記錄。當用戶需要記錄 BNI 121 會面、批次填寫一對一、記錄引薦、登?

First seen Apr 30, 2026

Installation

$ npx skills add kevin-shu/bni-submit --skill bni-121

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsBash(agent-browser:*) Bash(/usr/bin/curl:*) Bash(python3:*) Bash(bash:*)
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,073 B
  • docs SUMMARY.md 322 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

BNI 121 & 引薦自動填報

透過 API 直接批次提交一對一 (121) 會面記錄與引薦記錄,不需要操作 UI。

執行步驟

Step 1:收集資訊

一次向用戶詢問以下資訊:

  1. BNI Connect 帳號密碼(Email & 密碼)
  2. 121 名單:每行一筆,只需姓名
  3. 會面地點
  4. 會面日期(預設今天,格式 YYYY-MM-DD)
  5. 引薦名單(可選):每行格式 引薦給誰 | 被引薦人姓名

Step 2:登入取得 JWT Token

用 agent-browser 登入,從 localStorage 取出 JWT token。

⚠️ 登入陷阱:登入後 get url 可能仍顯示 /login/,這是 React SPA 的行為,並不代表失敗。以 localStorage 中是否有 token 作為成功依據。

agent-browser --session-name bni open "https://www.bniconnectglobal.com/login/"
agent-browser --session-name bni wait --load networkidle

# 取得 ref(每次重新登入 ref 可能不同,必須先 snapshot 再使用)
agent-browser --session-name bni snapshot -i
# 通常:使用者名稱=e11, 密碼=e12, 登入按鈕=e8

agent-browser --session-name bni fill e11 "<email>"
agent-browser --session-name bni fill e12 "<password>"
agent-browser --session-name bni click e8
agent-browser --session-name bni wait --load networkidle
agent-browser --session-name bni wait 2000   # 等 localStorage 寫入完成

# 取出 JWT(不用 get url 判斷,直接讀 token)
TOKEN=$(agent-browser --session-name bni eval "JSON.parse(localStorage.getItem('bniconnect:portal:session')).access_token" | tr -d '"')
echo "Token length: ${#TOKEN}"  # 應為 700+ 字元

Step 3:批次提交 121

使用技能目錄下的 scripts/submit-121.sh,透過環境變數傳入參數,姓名作為位置參數:

SKILL_DIR="/Users/kevinshu/Projects/bni/.claude/skills/bni-121"
TOKEN="<jwt>" DATE="2026-04-29" LOCATION="東京" COMMENTS="商務交流" \
  bash "$SKILL_DIR/scripts/submit-121.sh" 周澐 張家綺 王大明

⚠️ 姓名顛倒:BNI API 的 firstName 存中文「姓」,lastName 存中文「名」(與英文慣例相反)。腳本已處理。

⚠️ 用 curl,不用 Python urllib:Python urllib 可能遇到 403,腳本使用 /usr/bin/curl。

Step 4:批次提交引薦(可選)

使用技能目錄下的 scripts/submit-referral.sh,每個引薦以 接收者|被引薦人 格式傳入:

SKILL_DIR="/Users/kevinshu/Projects/bni/.claude/skills/bni-121"
TOKEN="<jwt>" bash "$SKILL_DIR/scripts/submit-referral.sh" \
  "江大大|攤位對面活動廠商" \
  "陳蕃薯|王小明"

⚠️ 預設為外分會(跨分會):121 與引薦均預設以外分會模式提交(referralType: OUTSIDE)。

Step 5:完成回報

向用戶報告 121 與引薦各自的成功筆數,以及任何失敗的姓名與原因。

API 參考

功能 方法 路徑
本分會成員清單 GET /member-api/slips/available-members-list
跨分會搜尋 POST /member-api/cross-chapter-search
提交 121 PUT /member-api/slips/one2one
提交引薦 PUT /member-api/slips/referral
  • Base URL:https://api.bniconnectglobal.com
  • Auth:Authorization: Bearer <JWT>
  • dateMet 格式:YYYY-MM-DDTHH:mm:ss(時間固定填 00:00:00)
  • comments:談話主題欄位
  • HTTP 428:重複記錄偵測,重送時 header 改為 bypassCheck: true(submit-121.sh 已處理)
  • Token 有效期:約 2 小時(expires_in: 7199)
  • 引薦預設值:referralType: OUTSIDE、temperature: 5、cardGiven: true