遇到重複痛點的第一反應是「做個工具」,而不是忍耐——而且不只解自己的痛,也解 Sales、CS、PM 的痛。這一頁收錄五件自建工具:從 Slack 上一鍵呼叫的 AI 評論分析、資安問卷回覆 AI Bot,到讓 CS 與 PM 的日常自動化的 Apps Script 系統。
Sales 向客戶銷售 XM 時,最有力的展示是「把你們家的真實評論丟進來,馬上看 AI 分析結果」。我做了一套 Slack 進、Slack 出的非同步分析工具:在 Slack 呼叫 Lambda 傳入評論文字,任務進 SQS 佇列,另一隻掛著 AI 的 Lambda(內含 Prompt 設計,透過 API 呼叫 Azure 情緒分析)消化任務,完成後把結果回覆到 Slack 給呼叫者。
flowchart LR
subgraph SL1["Sales(在 Slack)"]
A["貼上客戶評論文字
呼叫分析指令"]
E["在 Slack 收到
AI 分析結果"]
end
subgraph SL2["雲端(AWS)"]
B["Lambda 接單
任務放入 SQS"]
C["AI Lambda 消化佇列
Prompt + Azure 情緒分析"]
D["整理分析結果"]
end
A --> B --> C --> D --> E
sequenceDiagram autonumber actor S as Sales(Slack) participant L1 as Lambda(接單) participant Q as SQS 佇列 participant L2 as AI Lambda(Prompt) participant AZ as Azure 情緒分析 API S->>L1: Slack 指令傳入評論文字 L1->>Q: 任務置入佇列 L1-->>S: 即時回覆「已收單,分析中」 Q->>L2: 觸發消化任務 L2->>AZ: 帶 Prompt 呼叫情緒分析 AZ-->>L2: 情緒分數/關鍵字 L2->>L2: 整理為可讀的分析摘要 L2-->>S: 透過 Slack 回覆呼叫者 Note over S,L2: 非同步設計——大量評論也不會讓 Slack 卡住
企業客戶的資安問卷動輒上百題,而多數題目過去其實都答過。我用 n8n 開發了資安問卷回覆 AI Bot:使用者在聊天介面傳入資安題目,n8n 作為 AI Agent 爬梳 CSV 與資料庫中過去的資安回答紀錄,為每一題產生答覆回傳——把「翻舊檔案找答案」變成「問一句就有草稿」。
flowchart LR
subgraph N1["使用者"]
A["聊天介面貼入
資安問卷題目"]
E["收到逐題答覆草稿
校對後即可回覆客戶"]
end
subgraph N2["n8n AI Agent"]
B["解析題目"]
C["爬梳 CSV 與資料庫
過去的資安回答紀錄"]
D["為每一題
生成答覆"]
end
A --> B --> C --> D --> E
sequenceDiagram
autonumber
actor U as 使用者(聊天介面)
participant N as n8n(AI Agent)
participant D as 知識來源(CSV/資料庫)
participant L as LLM
U->>N: 傳入資安問卷題目(可多題)
N->>N: 拆解題目清單
loop 每一題
N->>D: 檢索過去的資安回答紀錄
D-->>N: 相關歷史答覆
N->>L: 題目+歷史答覆 → 生成本題回覆
L-->>N: 答覆草稿
end
N-->>U: 回傳逐題答覆
Note over U,L: 過去的回答紀錄=最合規的答案庫——AI 負責檢索與改寫,人負責最終把關
CS 每天要出報價單與授權書,手動複製貼上既慢又容易錯。我在 Google Sheet 上用 Apps Script 做了自動產生工具:依照欄位內容(客戶、品項、金額、期間)一鍵生成格式化的報價單與授權書文件——CS 只要維護表格,文件自己長出來。
flowchart LR
subgraph C1["CS"]
A["在 Google Sheet
維護客戶與品項欄位"]
D["取得可寄出的
報價單/授權書"]
end
subgraph C2["Apps Script"]
B["讀取欄位內容
套入文件模板"]
C["自動產生
格式化文件(PDF)"]
end
A --> B --> C --> D
PM 管理產品 bug 要在 GitLab、Jira、Slack 三個系統間來回。我用 Apps Script 做了一套整合系統:監聽 GitLab Webhook,工單建立時自動寫入 Sheet 並通知 Slack 上的指定 PM;PM 在 Sheet 上按一顆按鈕,就能透過 API 把工單轉成 Jira issue;系統同時監聽 Jira 的狀態變更事件回寫 Sheet,每日再定時到 Slack 提醒 PM 尚未處理的工單。
flowchart LR
subgraph P1["工程端"]
A["GitLab 建立工單"]
end
subgraph P2["自動化系統(Apps Script)"]
B["Webhook 觸發
自動寫入 Sheet"]
C["Slack 通知指定 PM"]
F["Jira 狀態變更
自動回寫 Sheet"]
G["每日定時 Slack 提醒
未處理工單"]
end
subgraph P3["PM"]
D["在 Sheet 檢視工單
按鈕一鍵轉 Jira"]
E["Jira issue
自動建立"]
end
A --> B --> C --> D --> E --> F --> G
sequenceDiagram
autonumber
participant GL as GitLab
participant AS as Apps Script
participant SH as Google Sheet
participant SK as Slack
actor P as PM
participant J as Jira API
GL->>AS: Webhook——工單建立事件
AS->>SH: 工單自動寫入
AS->>SK: 通知指定 PM
P->>SH: 檢視工單,按鈕觸發轉單
SH->>AS: 按鈕事件
AS->>J: 建立 Jira issue(API)
J-->>AS: issue 建立完成
AS->>SH: 回寫 Jira 連結與狀態
J->>AS: 狀態變更事件
AS->>SH: 同步更新工單狀態
loop 每日定時
AS->>SH: 掃描未處理工單
AS->>SK: 提醒 PM 待辦清單
end
行銷團隊想知道「問卷發出去之後,人是在哪一題流失的」——但問卷平台的統計只有回收數。我開發了一支可掛載於問卷頁的 JavaScript 套件:捕捉填答者與問卷的互動事件(點擊題目、點選選項、填寫、進度變化、條件轉址),即時傳送到 Google Analytics 4,並內建重複事件排除確保數據準確;GA4 辨識碼與謝謝頁轉址皆可由 JSON 設定檔配置。
flowchart LR
subgraph T1["填答者"]
A["開啟並填寫問卷"]
end
subgraph T2["追蹤套件(JS)"]
B["捕捉互動事件
點題/選項/進度/轉址"]
C["去重與整理"]
D["即時送入 GA4"]
end
subgraph T3["行銷團隊"]
E["在 GA 看漏斗
找出流失的那一題"]
end
A --> B --> C --> D --> E