1. 執行摘要(一分鐘看懂)1. Executive summary
8,631
Supporter 進件——最大受眾,卻 0 捐款 ask、0 量測Supporter intake — largest audience, yet 0 donation ask, 0 measurement
52.7% → <1%
RG 首封開信 → 尾段點擊(注意力急速衰退)RG first-email open → tail click (attention drops fast)
43 / 670
電訪升級成功 / 撥打——約 50% 未接通、20% 尚未撥打phone upgrades / calls — ~50% not reached, ~20% never dialed
0.34%
倡議者最終捐款比例(M+R 2026 業界基準)advocates who later donate (M+R 2026 sector benchmark)
一句話:這四個 Welcome 流程把「捐款人最熱的時刻」用得不夠——SG 的升級 ask 埋在沒人看的信末、Supporter(最大受眾)完全沒有捐款 ask 也沒量測、Reactive 對回流老朋友用新人歡迎信,而真正的單筆→月捐轉換靠電訪、但約 一半打不通、另兩成根本還沒撥。
Bottom line: these four Welcome flows under-use the donor's hottest moment — SG buries the upgrade ask in emails nobody opens, Supporter (the largest audience) has no donation ask and no measurement, and Reactive sends returning long-time donors the new-member welcome. The real single-gift → monthly conversion runs through phone calls, but ~half can't be reached and another ~20% were never dialed.
- Email 是主軸;SMS 只有 RG/SG 各 1 封;只有 SG 會轉電訪建 Call Case。Email is the backbone; only RG/SG send 1 SMS each; only SG hands off to a phone Call Case.
- 首封信開信很好、後面急速衰退(RG 首封 open 52.7%/click 13.7% → 第 3 封後 click <1%)。First email performs strongly, then decays fast (RG first open 52.7% / click 13.7% → click <1% from email 3 on).
- SG 唯一的捐款 ask 在第 4–5 封(open 已掉到 17–26%),半年只帶進約 32 個 GA4 session;真正升級靠電訪:670 通→43 件成功,瓶頸是接通率(約 50% 未接通、20% 尚未撥打)。SG's only donation ask sits in emails 4–5 (open already down to 17–26%), driving only ~32 GA4 sessions in six months; real upgrades come from calls: 670 calls → 43 successes, bottlenecked by reach (~50% not reached, ~20% never dialed).
- Supporter 是最大受眾(約 8,631)卻沒捐款 ask、轉換未量測。Supporter is the largest audience (~8,631) yet has no donation ask and no conversion measurement.
- 進件量(推估):Supporter ~8,631 · RG ~2,248 · SG ~794 · Reactive ≥534。Intake (estimated): Supporter ~8,631 · RG ~2,248 · SG ~794 · Reactive ≥534.
名詞速查 / Quick glossary
- UTM:掛在連結網址上的標記,讓 GA4 能辨認「這個點擊來自哪一封信/哪個活動」。UTM: tags on a link's URL that let GA4 attribute a click to a specific email / campaign.
- 進件 proxy(代理值):因後台無法回溯精準人數,改用「首封信寄出量」當近似的進件人數。Intake proxy: because exact entry counts aren't retrievable retroactively, we approximate intake with the first email's send count.
- bounce / dropped:bounce=信箱退信(地址無效);dropped=HubSpot 寄送前主動攔下(多為名單品質問題)。bounce / dropped: bounce = the mailbox rejected it (bad address); dropped = HubSpot withheld it before sending (usually a list-quality issue).
2. 四流程速覽2. Four-flow scorecard
| 指標Metric |
Supporter | RG | SG | Reactive |
| 進件(proxy/SF 基準)Intake (proxy / SF baseline) | ~8,631 | ~2,248/SF 2,418 | ~794/SF 1,660 | ≥534(無法切分) (can't split) |
| Email 封數(不重複)Emails (unique) | 2 | 8 | 8 | 7(6 封與 RG 共用)7 (6 shared with RG) |
| 寄送時程(Day,自進入流程起算)Cadence (Day from entry) | 0、2 | 0、1、7、14、21、28、35、42 | 0、1、7、14、21、28 | 1、7、14、21、28、35、42 |
| 首封開信率First-email open | 20.5% | 52.7% | 46.0% | ~41%(共用)~41% (shared) |
| 首封點擊率First-email click | 0.7% | 13.7% | 5.0% | ~1.6%(共用)~1.6% (shared) |
| SMS | 無none | 1 封(交易)1 (transactional) | 1 封(交易)1 (transactional) | 無none |
| Call Case(電訪)Call Case (phone) | 無none | 無none | ✓ 有yes | 無none |
| 帶捐款 CTA 的信Emails with a donation CTA | ✗ 無none | 無none | 有(第 4、5 封)yes (emails 4–5) | 無none |
3. 關鍵發現3. Key findings
✅ 做得好✅ Working well
- 首封歡迎信表現強(RG 52.7% open/13.7% click、SG 46% open)——捐款人剛加入時注意力很高。The first welcome email is strong (RG 52.7% open / 13.7% click, SG 46% open) — attention is high right after joining.
- 交易型感謝 SMS 即時、貼心(RG/SG 捐款當日寄出)。Transactional thank-you SMS is timely and warm (RG/SG, sent the day of the gift).
- SG 確實有把名單交棒電訪做升級——接通後升級率其實不差(約 22%,見下方更正)。SG does hand off to the phone team for upgrades — and among those actually reached, the upgrade rate is decent (~22%, see correction below).
⚠️ 待改善 / 風險⚠️ To improve / risks
- 把最重要的「捐款 ask」放在最少人看的地方(SG 第 4–5 封)。The most important donation ask sits where fewest people look (SG emails 4–5).
- 最大受眾 Supporter 完全沒被當募款對象(無 ask、無量測)。The largest audience, Supporter, isn't treated as a fundraising audience (no ask, no measurement).
- 轉換高度依賴一個接通率偏低的電話渠道(670 通→43 升級;約 50% 未接通、20% 尚未撥打)。Conversion leans heavily on a phone channel with low reach (670 calls → 43 upgrades; ~50% not reached, ~20% never dialed).
- 回流月捐者收到新人歡迎信(Reactive 重用 RG 信)。Returning monthly donors get the new-member welcome (Reactive reuses RG emails).
- 後段信「只開不點」+部分信件 bounce/dropped 偏高(送達/名單健康風險);SG 第 5 封疑似故障(0% 點擊)。Later emails are "opened but not clicked", and some have high bounce/dropped (deliverability / list-health risk); SG email 5 looks broken (0% click).
4. 各流程明細(含每封信預覽連結)4. Per-flow detail (with preview links)
「預覽」連結會開啟該封 Email 在 HubSpot 的詳情頁(含縮圖、預覽文字與官方成效;需登入 HubSpot)。開信/點擊率為 H1 2026、以 open÷delivered、click÷delivered 計。"Preview" opens the email's HubSpot details page (thumbnail, preview text, official stats; HubSpot login required). Open/click rates are H1 2026, computed as open÷delivered and click÷delivered.
5.1 RG —《新進月捐會員歡迎》5.1 RG — New monthly-donor welcome 2843532534
35 個動作=8 封不重複 Email(分支重複寄出共 15)+ 1 封 SMS + delay + 分支。Enrollment:List = tw-trans-automd-welcome_1st_rg 且 物件建立 <3 天。35 actions = 8 unique emails (15 with branch duplicates) + 1 SMS + delays + branches. Enrollment: list tw-trans-automd-welcome_1st_rg and object created <3 days ago.
- Day 0感謝您加入捍衛地球生態的行列(入會歡迎)Thank you for joining (welcome) — open 52.7% / click 13.7% / sent ~2,248 預覽 / preview ↗
- Day 1你知道嗎?五十多年前…(起源故事)Did you know? 50+ years ago… (origin story) [與 Reactive 共用shared w/ Reactive] — open 41.4% / click 1.6% 預覽 / preview ↗
- Day 773,601 海哩的故事(成果敘事)The story of 73,601 nautical miles (impact) [共用shared] — open 31.8% / click 0.7% 預覽 / preview ↗
- Day 14氣溫越來越高、天災越來越頻繁(氣候)Rising heat, more disasters (climate) [共用shared] — open 32.2% / click 0.5% 預覽 / preview ↗
- Day 21呼籲企業承諾減塑真的不容易(減塑)Pushing companies on plastic isn't easy [共用shared] — open 32.2% / click 1.0% 預覽 / preview ↗
- Day 28想親身參與在環境行動當中(參與邀請)Get involved in action (invitation) [共用shared] — open 30.2% / click 1.6% 預覽 / preview ↗
- Day 35給予回饋,領取專屬好禮(問卷+會員禮)Give feedback, get a member gift (survey) — open 24.4% / click 2.7% 預覽 / preview ↗
- Day 42一同啟航這趟守護環境的旅程(收束)Setting sail together (wrap-up) [共用shared] — open 33.0% / click 0.5% 預覽 / preview ↗
Day 0📱 SMS(交易型,Paasoo TW,捐款當日):「【綠色和平】感謝[名]您今日新增[金額]元月捐計畫…歡迎成為會員…會員服務專線(02)2361-2025」SMS (transactional, Paasoo TW, day of gift): "Greenpeace — thank you [name] for your new NT$[amount] monthly plan… welcome… member line (02)2361-2025."
CTA:多為 FAQ/會員禮 Drive/議題文章;無捐款 CTA。Call Case:無。CTA: mostly FAQ / member-gift Drive / issue articles; no donation CTA. Call Case: none.
5.2 SG —《新單筆捐款者歡迎》5.2 SG — New single-gift donor welcome 4067609839
32 個動作=8 封 Email + 1 封 SMS + 3 個加入名單(交棒電訪建 Call Case)+ delay + 分支。32 actions = 8 emails + 1 SMS + 3 add-to-list (hands off to the phone team's Call Case) + delays + branches.
- Day 0感謝您加入捍衛地球生態的行列Thank you for joining — open 46.0% / click 5.0% / sent ~794 預覽 / preview ↗
- Day 1謝謝您相信綠色和平Thank you for trusting Greenpeace — open 40.3% / click 1.3% 預覽 / preview ↗
- Day 7謝謝您選擇讓我們「說實話」Thank you for letting us tell the truth — open 35.1% / click 1.7% 預覽 / preview ↗
- Day 14我一個人的力量有用嗎?Can one person make a difference? [含捐款 CTAdonation CTA] — open 26.3% / click 2.2% 預覽 / preview ↗
- Day 21您為什麼想支持綠色和平?Why do you support Greenpeace? [含捐款 CTAdonation CTA] — open 16.9% / click 0.9% 預覽 / preview ↗
- Day 28你一生中堅持最久的一件事?What have you stuck with longest? [⚠️ 0% 點擊,疑似故障0% click, looks broken] — open 30.1% / click 0% 預覽 / preview ↗
- 分支branch感謝您加入…(分支版,非主序列)Thank you for joining… (branch variant, off the main sequence) — open 48.9% / click 7.1% 預覽 / preview ↗
Day 0📱 SMS(交易型,捐款當日):感謝新增[金額]元單筆捐款…歡迎成為會員,會員服務專線(02)2361-2025。SMS (transactional, day of gift): thank you for your NT$[amount] single gift… welcome… member line (02)2361-2025.
捐款 CTA:第 4 封 → donation-general-general?utm_campaign=sg2rg&utm_content=...email-4;第 5 封同捐款頁 email-5。部分信用 maac.io(LINE 綁定,站外,GA4 無法追蹤)。Donation CTA: email 4 → donation-general-general?utm_campaign=sg2rg&utm_content=...email-4; email 5 to the same page (email-5). Some links use maac.io (LINE binding, off-site, not GA4-trackable).
GA4 CTA 成效(sg2rg,至 6/17):email-2 10 session/9 key event · email-3 9/7 · email-4 6 session / 33 key event(轉換最集中) · email-5 5/0 · sg2rg_link_tc 2/12。合計 32 session(到站量極低)。GA4 CTA performance (sg2rg, to 6/17): email-2 10 sessions/9 key events · email-3 9/7 · email-4 6 sessions / 33 key events (most concentrated) · email-5 5/0 · sg2rg_link_tc 2/12. Total 32 sessions (very low traffic).
Call Case:有(→ SF「New Donor Upgrade」電訪,見第 8 節驗證)。Call Case: yes (→ SF "New Donor Upgrade" calling; see §8 validation).
5.3 Reactive —《回流月捐者再歡迎》5.3 Reactive — Returning monthly-donor re-welcome 2866280642
19 個動作=7 封 Email + delay + 分支。無 SMS、無 Call Case。對象=流失 >12 個月後又回來重新月捐的人。19 actions = 7 emails + delays + branches. No SMS, no Call Case. Audience = donors who lapsed >12 months then returned to monthly giving.
- Day 1你知道嗎?五十多年前…Did you know? 50+ years ago… [與 RG 共用shared w/ RG] 預覽 / preview ↗
- Day 773,601 海哩的故事The story of 73,601 nautical miles [共用shared] 預覽 / preview ↗
- Day 14氣溫越來越高…Rising heat… [共用shared] 預覽 / preview ↗
- Day 21呼籲企業承諾減塑…Pushing companies on plastic… [共用shared] 預覽 / preview ↗
- Day 28想親身參與…Get involved… [共用shared] 預覽 / preview ↗
- Day 35給予回饋,領取專屬好禮Give feedback, get a member gift [Reactive 專屬Reactive-only] — open 24.6% / click 1.9% / sent 534 預覽 / preview ↗
- Day 42一同啟航…Setting sail together… [共用shared] 預覽 / preview ↗
問題:7 封中 6 封與 RG 新人信相同 → 回流老朋友被當新人對待。CTA:FAQ/議題文章類,無捐款 CTA。Problem: 6 of 7 emails are identical to RG's new-member emails → returning long-time donors are treated as strangers. CTA: FAQ / issue articles, no donation CTA.
5.4 Supporter —《連署者歡迎》(量最大)5.4 Supporter — Petition-signer welcome (largest) 3600140512
8 個動作=2 封 Email + delay + 分支。無 SMS、無 Call Case。8 actions = 2 emails + delays + branches. No SMS, no Call Case.
- Day 0行動,真的能改變世界Action really can change the world — open 20.5% / click 0.7% / sent 8,631 · CTA:閱讀年報Read the annual report(非捐款) (not donation) 預覽 / preview ↗
- Day 2不是專家也能做到:環境改變,需要你的參與You don't need to be an expert: change needs you — open 17.8% / click 1.2% / sent 8,172 · CTA:近期活動一覽Upcoming events(非捐款) (not donation) 預覽 / preview ↗
已逐封檢查Checked link-by-link:這兩封信都沒有捐款 CTA(第 1 封=「閱讀年報」、第 2 封=「近期活動一覽」)。若有此「捐款 ask」,應在其他連署流程(各議題的 instant_thankyou/lead_conversion),不在這條 Welcome Supporter。量測方式見「建議修改」。: neither email has a donation CTA (email 1 = "read the annual report", email 2 = "upcoming events"). Any donation ask lives in other petition flows (per-issue instant_thankyou / lead_conversion), not in this Welcome Supporter flow. Measurement is covered in Recommended changes.
5. 最佳實務(環境 NGO 募款)5. Best practices (environmental NGO fundraising)
分流程主題研究,聚焦非營利/環境 NGO(非商業電商)。經多輪獨立 AI agent 批判迭代至共識。標 vendor/directional 為廠商部落格、僅供方向;M+R/NextAfter/DataReportal 為可信來源(出處見第 8 節)。Research is split by flow topic, focused on nonprofit / environmental NGOs (not commercial e-commerce), iterated to consensus by independent AI critique agents. Items marked vendor/directional are vendor blogs (direction only); M+R / NextAfter / DataReportal are credible sources (see §8).
跨流程通則Cross-flow principles
- A. 先定義每封信的「任務」再選 KPI。 點擊是診斷不是目的:陪伴信(感謝/成果)可低點擊;轉換信才以下游行動/收入評斷。A. Define each email's job before picking its KPI. Clicks are a diagnostic, not the goal: stewardship emails (thanks/impact) can have low clicks; only conversion emails are judged on downstream action/revenue.
- B. Offer-focused(給價值)優於 Org-focused(講自己)。 NextAfter 對 The Fund for American Studies 的實驗:把 welcome 從「組織導向」改成「價值導向」,首次捐款轉換率 0.02% → 0.19%(+920% 相對、99.9% 信心、n=34,096)。B. Offer-focused (give value) beats org-focused (talk about yourself). NextAfter's experiment with The Fund for American Studies: shifting the welcome from organization-focused to value-focused moved first-gift conversion 0.02% → 0.19% (+920% relative, 99.9% confidence, n=34,096).
注意:得勝版同時改了兩件事——內容變價值導向、序列變短更緊湊(約 45 天 vs 對照組約 1 年)。所以 +920% 是「價值導向+較短」的合併效果,無法單獨分離。意義:方向穩健(給價值、別只講機構故事然後伸手要錢),但別把 +920% 當承諾;落地自己 A/B 驗證並考慮縮短序列。NextAfter 另佐證:新捐款者二次贈與/轉月捐多在首 45 天內。Caveat: the winning version changed two things at once — value-focused content AND a shorter, tighter sequence (~45 days vs ~1 year). So +920% is the combined effect of "value-focused + shorter" and can't be isolated. Takeaway: the direction is robust (give value; don't just tell your story then ask for money), but don't treat +920% as a promise; A/B test it yourself and consider shortening the sequence. NextAfter also finds second gifts / monthly conversions cluster in the first 45 days.
- C. 台灣=LINE。 約 93% 人口在 LINE(22M MAU;DataReportal Digital 2026 Taiwan)。四流程都應把 LINE 綁定 opt-in 當主要 CTA。注意:台灣捐款流程末段常以 LINE 綁定取代填地址,donor 因此跳過填址——故 welcome 流程除了補放綁定 CTA,也要補收地址(見「建議修改」的 LINE 綁定與補收地址兩項)。C. Taiwan = LINE. ~93% of the population is on LINE (22M MAU; DataReportal Digital 2026 Taiwan). All four flows should treat a LINE-binding opt-in as a primary CTA. Note: TW donation flows often replace the address step with LINE binding, so donors skip entering an address — the welcome flow must add both a binding CTA and address re-collection (see the LINE-binding and address-recollection items in Recommended changes).
- D. 前段重、頻率遞減的短序列。 「2–4 封+即時感謝」屬 vendor/directional 經驗值;真正槓桿是相關性/價值。D. Front-load, then taper — a short sequence. "2–4 emails + an instant thank-you" is a vendor/directional rule of thumb; the real lever is relevance/value.
RG — 新月捐會員(首年留存)RG — new monthly members (first-year retention)
- 把歡迎信改成 offer-focused(給價值),而非組織起源故事(通則 B)。Make the welcome offer-focused (give value), not an org origin story (principle B).
- 以北極星管理:首年留存(day 30/60/90 首期付款留存),不是點擊。Manage to a north star: first-year retention (day 30/60/90 first-payment retention), not clicks.
- 重新檢視 8 封長度:HK 用 1 封、KR 用 3 封;8 封維持 <1% 點擊有名單健康/送達風險,測更短、更高訊號的序列。Revisit the 8-email length: HK uses 1, KR uses 3; eight emails stuck at <1% click is a list-health / deliverability risk — test a shorter, higher-signal sequence.
- 前段就放 LINE opt-in(通則 C)。Put the LINE opt-in early (principle C).
- 把早期 stewardship/welcome pack 當留存投資:Treat early stewardship / a welcome pack as a retention investment:
是什麼:捐款人剛加入時主動寄的「歡迎包」——實體(小冊、貼紙、感謝卡)或數位(影片、會員專屬內容),核心不是要錢,而是讓新捐款人覺得被重視。為什麼:SOFII 引 WWF Canada——超過一半新捐款人從不捐第二次,昂貴開發成本只有「留住他們」才回本;welcome pack 目的是提高二次贈與、攤平開發成本,本質是「留存投資」。對我們:RG/SG 的 welcome 應以留存評估,不是看點擊。(來源:SOFII/WWF Canada,質性)What: a "welcome pack" proactively sent right after joining — physical (booklet, stickers, thank-you card) or digital (video, member-only content); the point is not to ask for money but to make the donor feel valued. Why: SOFII cites WWF Canada — more than half of new donors never give a second time, and the expensive acquisition cost only pays back when you keep them; the welcome pack exists to lift second gifts and amortize acquisition — a retention investment. For us: judge RG/SG welcomes on retention, not clicks. (Source: SOFII / WWF Canada, qualitative)
對照基準:NGO email open ~28–29% / click ~3.3%(Neon One,vendor 資料集)。月捐人價值可達單筆約 4×(NextAfter)。我們 RG 首封 52.7%/13.7%(強)vs 尾段 0.5%。Benchmarks: NGO email open ~28–29% / click ~3.3% (Neon One, vendor dataset). A monthly donor can be worth ~4× a single gift (NextAfter). Our RG first email 52.7%/13.7% (strong) vs tail 0.5%.
SG — 單筆 → 月捐(SG2RG)SG — single gift → monthly (SG2RG)
- 數位渠道必須承載升級:電話只接通約 30%(670 通→43 升級;約 50% 未接通、20% 尚未撥打);email/SMS/LINE 不能是配角。Digital must carry the upgrade: the phone reaches only ~30% (670 calls → 43 upgrades; ~50% not reached, ~20% never dialed); email / SMS / LINE can't be a sideshow.
- 升級 ask 要早且重複:目前埋在第 4–5 封(open 17–26%);應從第 2 封、open 還有 40–46% 時就鋪。NextAfter 有專門指南「把月捐 ask 加進 welcome series」。Ask early and repeat: the upgrade ask is buried in emails 4–5 (open 17–26%); start from email 2, while open is still 40–46%. NextAfter has a dedicated guide on adding a monthly ask to a welcome series.
- 把月捐做成容易、同等顯著、清楚標示的選項,而非預先勾選的預設。M+R:僅 35% 非營利預設月捐、64% 預設單筆——結構機會,但要透明做。Make monthly an easy, equally prominent, clearly labelled option — not a pre-checked default (donor consent). M+R: only 35% of nonprofits default to monthly, 64% default to single — a structural opportunity, done transparently.
- 善用最高注意力時刻:當日感謝簡訊是最被閱讀的觸點;在此加輕量「1-click 升級月捐」。Use the highest-attention moment: the same-day thank-you SMS is the most-read touchpoint; add a lightweight "one-click upgrade to monthly" there.
- Offer-focused 同樣適用(通則 B)。Offer-focused applies here too (principle B).
對照基準:月捐=線上收入 27%(M+R 2026)、成長主引擎;新線上捐款者留存僅 24%,但把單筆轉 sustainer 的 sector 月捐成長 +40%(M+R 2026);fundraising email 點擊 0.59%/回應 0.05%(M+R)。我們 sg2rg 捐款 CTA 半年僅 32 GA4 session。Benchmarks: monthly = 27% of online revenue (M+R 2026) and the main growth engine; new online donor retention is only 24%, yet sector monthly grew +40% by converting single-gift donors to sustainers (M+R 2026); fundraising-email click 0.59% / response 0.05% (M+R). Our sg2rg donation CTA drove only 32 GA4 sessions in six months.
Reactive — 回流後「再歡迎」(>12 個月後回流的月捐者)Reactive — re-welcome after return (monthly donors back after >12 months)
前提Premise:對象是流失 >12 個月、期間已試過各種更新付款連結等、最後又回來重新月捐的人——他們已經被贏回。所以一般 lapsed-donor 的「區分自願/非自願流失、更新付款、流失後 14–30 天接觸」那套不適用。這條的正確定位是「回流後的再歡迎 + 重建關係」,不是 win-back。: the audience already lapsed >12 months, was tried with payment-update links during that time, and chose to return to monthly giving — they are already won back. So the usual lapsed-donor playbook (separate voluntary vs involuntary churn, update payment, contact 14–30 days after lapse) does not apply. The right framing is "re-welcome and rebuild the relationship after return", not win-back.
- 停止重用新人歡迎信。 目前 Reactive 收到與 RG 一樣的「歡迎加入/組織起源故事」。對「曾捐過、離開過、現在回來」的人,這等於把老朋友當陌生人。應寫專屬:承認這段空白、感謝願意回來、簡述他離開期間我們完成了什麼。Stop reusing the new-member welcome. Reactive currently gets RG's "welcome / origin story" — for someone who gave, left, and came back, that treats an old friend as a stranger. Write a dedicated version: acknowledge the gap, thank them for returning, briefly recap what we achieved while they were away.
- 用「值得再相信」的內容:回流者潛在問題是「之前停掉是有原因的,這次值得嗎?」。重點不是再講起源,而是——Use "worth trusting again" content: the returner's quiet question is "I stopped for a reason — is it worth it this time?" The focus isn't the origin story but —
(a) 這段期間的具體成果/進展:讓他知道離開時我們仍在前進、回歸有意義;(b) 真誠的「歡迎回來」與感謝:情感連結 > 募款訴求;(c) 依過去捐贈水準分層投入:高價值回流者值得更個人化接觸,一般回流者用自動化——把有限人力投在最有價值的回流者身上。(a) concrete results/progress during their absence — show we kept moving and their return matters; (b) a genuine "welcome back" and thanks — emotional connection > the ask; (c) tier effort by past giving level — high-value returners deserve more personal contact, ordinary returners get automation — spend scarce human time on the most valuable returners.
- 通路符合台灣現實:LINE + email 為主;不要依賴電話(資料顯示電話只接通約 30%)。Match Taiwan's channel reality: LINE + email first; don't rely on the phone (data shows it reaches only ~30%).
量測重點:此流程對象已回流,應追「回流後的二次留存率」(再次穩定月捐多久),而非 win-back/喚回率。What to measure: since the audience has already returned, track "second retention after return" (how long they keep giving monthly again), not a win-back/reactivation rate.
Supporter — 連署者 → 首次捐款Supporter — petition signer → first gift
現況(已實測)Current state (verified live):此流程 2 封信都沒有捐款 CTA(第 1 封=「閱讀年報」、第 2 封=「近期活動一覽」)。捐款 ask 應在其他連署流程,不在這條。: both emails have no donation CTA (email 1 = "read the annual report", email 2 = "upcoming events"). The donation ask belongs to other petition flows, not this one.
- 先決定是否在此流程要捐款,並建立量測。 8,631 是最大受眾,目前沒 ask、沒量轉換。Decide whether to ask for a gift here, and build measurement first. 8,631 is the largest audience with no ask and no conversion tracking.
- 量測:捐款 CTA 一律掛 UTM。 GA4 即可看每封信的「點擊→捐款頁→轉換」,簡單、幾天可上線(見「建議修改」)。若要回答逐人層級「這位連署者後來是否捐款」,UTM 不夠,需把 HubSpot 名單(含 SF Contact Id)對 Salesforce 捐款做時間軸 join。Measurement: always tag the donation CTA with UTM. GA4 then shows each email's click → donation page → conversion — simple, live in a few days (see Recommended changes). To answer the person-level "did this signer later donate", UTM isn't enough; join the HubSpot list (with SF Contact Id) to Salesforce gifts on a timeline.
- engagement ladder:連署 → 小額首捐 → 月捐 → 倡議/募款;循序、溫和,別一步到位。Engagement ladder: sign → small first gift → monthly → advocacy/fundraising; step by step and gentle, not all at once.
- 規模預期:Scale expectation:
M+R 2026:採取倡議行動的人中,只有 0.34% 後來會捐款——倡議名單會轉成捐款人、但比例不高;以 8,631 粗估約 29 位首捐。但要分清:倡議信的互動遠優於募款信(倡議信點擊 2.3%/回應 1.4% vs 募款信 0.59%/0.05%)——連署者願意點、願意行動,只是「直接掏錢」比例低。含意:別期待一封信就把連署者變大筆捐款人;善用高互動,循序往上帶。(來源:M+R 2026)M+R 2026: only 0.34% of people who take an advocacy action later donate — advocacy lists do convert, but at a low rate; 8,631 implies roughly 29 first gifts. But: advocacy emails far out-engage fundraising emails (click 2.3% / response 1.4% vs 0.59% / 0.05%) — signers will click and act, they just rarely donate directly. Implication: don't expect one email to turn a signer into a major donor; use the high engagement to walk them up the ladder. (Source: M+R 2026)
- 連署後做 LINE opt-in(通則 C)。Offer a LINE opt-in after signing (principle C).
對照基準:連署→捐款 5 個月內最高約 2.5%、首次 appeal 回應約業界 3 倍(Care2 單一平台案例,directional,非目標值)。新線上捐款者=線上收入 31%、留存 24%(M+R 2026)。Benchmarks: signer→donor up to ~2.5% within 5 months, first-appeal response ~3× the sector (Care2 single-platform case, directional, not a target). New online donors = 31% of online revenue, 24% retention (M+R 2026).
6. 建議修改6. Recommended changes
綜合上述發現與最佳實務的具體修改建議,依重要性排序。Impact=對捐款/留存的潛在影響;Effort=投入;建議負責=主責團隊。Concrete changes combining the findings and best practices, ordered by importance. Impact = potential effect on giving/retention; Effort = work required; Owner = lead team.
本次新增的兩項團隊需求(已納入下表 #3、#4)Two team-requested additions (rows #3, #4)
- 加入 LINE 綁定 CTA:依 best practice(台灣主溝通渠道為 LINE)應作為主要 CTA,建議放在前段高開信信件(Day 0/1)+當日感謝 SMS(注意力最高);目的是補捉在捐款流程末段「尚未完成綁定」的人,並強化多渠道經營。Add a LINE-binding CTA: per best practice (LINE is Taiwan's primary channel) it should be a primary CTA, placed in the early high-open emails (Day 0/1) + the same-day thank-you SMS (highest attention); the goal is to capture donors who didn't finish binding at the end of the donation flow and to strengthen multi-channel reach.
- 流程內補收地址:因線上捐款最後一步改導 LINE 綁定,donor 會跳過填地址→ 沒有地址就無法寄年度捐款收據、welcome pack/紙本溝通。RG/SG/Reactive 需在流程中重新收集地址。best practice 是價值導向、漸進式(progressive profiling):以「寄送年度收據/會員小禮」為由、一次只問必要欄位、預填已知資料降低摩擦;最順的做法是綁定完成後直接於 LINE 內收集,email 表單為備援。(Supporter 為非捐款者,不適用。)Re-collect the postal address inside the flow: because the donation flow now ends in LINE binding, donors skip the address step → without an address we can't send the annual tax receipt, welcome pack, or print mail. RG/SG/Reactive should re-collect the address in-flow. Best practice is value-focused, progressive profiling: justify it with "to send your annual receipt / a member gift", ask only the needed fields, pre-fill known data to cut friction; the smoothest path is to collect inside LINE right after binding, with an email form as backup. (Supporter are non-donors — not applicable.)
best practice 依據:年度合併捐款收據需寄送地址(GiveForms/Donorbox 收據指南);welcome pack 為留存投資、需地址(SOFII);漸進式資料收集+價值導向 ask(NextAfter/通則 B);台灣主渠道 LINE(通則 C)。Basis: annual consolidated tax receipts need a mailing address (GiveForms / Donorbox receipt guides); welcome packs are retention investments needing an address (SOFII); progressive profiling + value-focused asks (NextAfter / principle B); LINE as Taiwan's primary channel (principle C).
| # |
建議修改Change |
為什麼(依據)Why |
Impact | Effort |
建議負責Owner |
| 1 | SG:升級 ask 前移到第 1–2 封 + 加「1-click 升級月捐」SG: move the upgrade ask to emails 1–2 + add one-click upgrade-to-monthly | 目前 ask 在第 4–5 封、open 僅 17–26%;首封 open 46%。電話約半數打不通,數位須承接。Ask is in emails 4–5 (open 17–26%); first email is 46%. The phone misses ~half — digital must catch them. | 高 High | 中 / Med | 募款 + CRMFundraising + CRM |
| 2 | Supporter:加一個柔性首捐 CTA(掛 UTM)+ 建立轉換歸因Supporter: add a soft first-gift CTA (with UTM) + build attribution | 最大受眾 ~8,631、目前無 ask、未量測;倡議名單會捐但需循序培養。Largest audience ~8,631 with no ask or measurement; advocacy lists do convert but need nurturing. | 高 High | 中 / Med | 募款 + CRMFundraising + CRM |
| 3 | 全流程:加入 LINE 綁定 CTA(前段高開信信件 Day 0/1 + 當日感謝 SMS)All flows: add a LINE-binding CTA (early high-open emails Day 0/1 + same-day SMS) | 台灣主溝通渠道為 LINE(通則 C);捐款流程末段雖已導綁定,仍有人未完成——在高注意力觸點補捉未綁定者。LINE is Taiwan's primary channel (principle C); even with binding at the end of the donation flow, some don't finish — catch them at high-attention touchpoints. | 高 High | 中 / Med | 內容 + CRMContent + CRM |
| 4 | RG/SG/Reactive:在流程中補收地址RG/SG/Reactive: re-collect the postal address in-flow | 線上捐款最後一步改導 LINE 綁定,donor 跳過填址 → 無地址無法寄年度收據、welcome pack/紙本。以「寄送年度收據+會員禮」為由、低摩擦(最佳:綁定後於 LINE 內收)。Supporter 非捐款者、不適用。The donation flow ends in LINE binding so donors skip the address → no address means no annual receipt, welcome pack, or print mail. Justify with "annual receipt + member gift", low friction (best: collect inside LINE after binding). Supporter are non-donors — N/A. | 高 High | 中 / Med | CRM + 募款CRM + Fundraising |
| 5 | 捐款 CTA 一律掛 UTM 追蹤(量每封信的點擊→捐款轉換)Tag every donation CTA with UTM (measure each email's click → donation conversion) | sg2rg 已有、其餘缺;掛上 UTM 後 GA4 即可逐封看轉換——低成本的量測基礎,幾天可上線。sg2rg already has it, others don't; once tagged, GA4 shows conversion per email — a low-cost measurement foundation, live in days. | 中(量測基礎)Med (foundation) | 低 / Low | CRM/數據CRM/Data |
| 6 | 修 SG 第 5 封信(疑似故障)Fix SG email 5 (looks broken) | 0% 點擊 + 三 CTA 同連結 + 12% bounce,明顯異常。0% click + three CTAs to the same link + 12% bounce — clearly abnormal. | 中 Med | 低(快修)Low (quick) | 內容/OpsContent/Ops |
| 7 | Reactive:改用「歡迎回來」專屬文案Reactive: switch to dedicated "welcome back" copy | 目前對回流老朋友重用新人「歡迎加入/起源故事」,relevance 錯配。Returning donors get the new-member "welcome / origin story" — a relevance mismatch. | 中 Med | 低 / Low | 內容/募款Content/Fundraising |
| 8 | RG:縮短序列 + 改 offer-focused(給價值)RG: shorten the sequence + go offer-focused | 8 封維持 <1% 點擊有名單健康風險;HK 用 1 封、KR 用 3 封。Eight emails at <1% click is a list-health risk; HK uses 1, KR uses 3. | 中 Med | 中 / Med | 內容/募款Content/Fundraising |
7. 多方觀點 Q&A(營運 / 募款主管視角)7. Perspectives Q&A (Operator / Fundraising Manager view)
以「營運(Operator)」與「募款主管(Fundraising Manager)」兩種會彼此質疑的視角,對驗證過的數據提出最可能的提問並作答(AI 角色扮演;數字皆已驗證)。Two perspectives that would genuinely challenge each other — Operator and Fundraising Manager — raise the most likely questions about the verified data and answer them (AI role-play; all figures verified).
Operator:SG/Supporter 首封 bounce/dropped 偏高,要清名單嗎?SG/Supporter first-email bounce/dropped is high — clean the list?
SG 首封 bounce 約 11.7%、Supporter 首封 dropped 約 8.0%SG first bounce ~11.7%, Supporter first dropped ~8.0% 已驗證 / verified。bounce 高=進件 email 品質差(表單未驗證);dropped 高=HubSpot 寄前攔。行動:bounce 回寫 SF、表單加 email 即時驗證、首封 bounce >5% 告警。 High bounce = poor intake email quality (unvalidated forms); high dropped = HubSpot withholding pre-send. Actions: write bounces back to SF, add real-time email validation to forms, alert when first-email bounce >5%.
Operator:SG 第 5 封 0% 點擊、三 CTA 同連結,壞了嗎?SG email 5 has 0% click and three CTAs to one link — is it broken?
判定壞掉:開信卻 0 點擊 + 12% bounce + 三 CTA 全指同一短網址Judged broken: opened but 0 click + 12% bounce + three CTAs all pointing to one short URL 已驗證 / verified。對照 email-4(33 GA4 key event 正常)。可立即驗證的具體故障。 Compare email-4 (33 GA4 key events, normal). A concrete, immediately verifiable fault.
Operator:升級靠電訪但接通率低,是資料爛還是時機?Upgrades rely on calls but reach is low — bad data or timing?
要把三種狀態分開:Not Reached 333(打不到)、未撥 139(還沒撥)、已接通 198。以已接通為分母升級率約 22%(43/198),遠高於整體 6.4%——瓶頸在接通率(資料品質+撥打量能),不在話術。 Separate three states: Not Reached 333 (couldn't connect), never dialed 139 (backlog), connected 198. Upgrade rate among connected is ~22% (43/198), far above the 6.4% overall — the bottleneck is reach (data quality + dialing capacity), not the script. 已驗證 / verified
Fundraising:SG→月捐轉換率多少?好不好?What's the SG→monthly rate? Is it good?
三種看法並列:以全部撥打計 6.4%(43/670)、以已接通計 22%(43/198)、以新單筆池計 2.6%(43/1,660,分母推估)。接通後說服力佳(22%),但整體只觸及一小部分新單筆池——把錢留在桌上。 Three lenses side by side: 6.4% of all calls (43/670), 22% of connected (43/198), 2.6% of the single-gift pool (43/1,660, denominator estimated). Persuasion among connected is strong (22%), but overall only a sliver of the single-gift pool is touched — money left on the table.
Fundraising:8,631 連署者完全沒量測,是最大被忽略機會嗎?8,631 signers, zero measurement — the biggest missed opportunity?
是。最大進件量、無 ask、未量測Yes. Largest intake, no ask, no measurement 已驗證 gap / verified gap。先掛 UTM 把量測建起來(見「建議修改」),再加柔性首捐 ask。 First stand up measurement with UTM (see Recommended changes), then add a soft first-gift ask.
Fundraising:每個流程該被什麼 KPI 管理?What KPI should govern each flow?
SG=升級率(以已接通為分母);Supporter=連署→首捐率與金額(先算出來);RG=首年留存/追加捐款率;Reactive=回流後二次留存率。共同前提:HubSpot 進件↔SF 捐款逐筆 join。 SG = upgrade rate (among connected); Supporter = signer→first-gift rate and amount (compute it first); RG = first-year retention / additional-gift rate; Reactive = second retention after return. Shared prerequisite: a row-level HubSpot-intake ↔ SF-gift join.
8. 數據驗證 · 方法論限制 · 來源8. Validation · limitations · sources
8.1 數據驗證(已驗證 vs 推估)Validation (verified vs estimated)
已驗證 / verified 本回合直接從來源系統重新確認; re-confirmed directly from source systems this round; 推估 / estimated proxy/估算/定義依賴。 proxy / inferred / definition-dependent.
2026-06-18 實機重新驗證:11 項中 11 項通過 ✓(HubSpot 9 項開信/點擊率與寄出量、Salesforce 2 項 TFR 數字,且升級成功數經兩個獨立欄位互證)。Live re-validation 2026-06-18: 11 of 11 checks passed ✓ (9 HubSpot open/click/send figures, 2 Salesforce TFR figures, with the upgrade-success count corroborated across two independent fields).
- 動作數 RG 35/SG 32/Reactive 19/Supporter 8;只有 RG/SG 帶 SMS;只有 SG 加入名單交棒電訪Action counts RG 35 / SG 32 / Reactive 19 / Supporter 8; only RG/SG carry SMS; only SG hands off to the phone team 已驗證 / verified
- RG 首封 open 52.7%/click 13.7%;SG 首封 46%;Supporter 首封 20.5%RG first open 52.7% / click 13.7%; SG first 46%; Supporter first 20.5% 已驗證 / verified
- RG 與 Reactive 共用 6 封信(content_id 交集)RG and Reactive share 6 emails (content_id overlap) 已驗證 / verified
- GA4 sg2rg 約 32 session、email-4=33 key event(含 sg2rg_link_tc 2/12)GA4 sg2rg ~32 sessions, email-4 = 33 key events (incl. sg2rg_link_tc 2/12) 已驗證 / verified;key event ≠ 捐款 key event ≠ donation
- SF 正式環境 IsSandbox=false;New Donor Upgrade 電訪 670 通、成功升級 43;Not Reached 333(約 50%)、未撥 139(約 20%)、已接通 198。升級率:以全部撥打計 6.4%(43/670)、以已接通計 22%(43/198)、以新單筆池計 2.6%(43/1,660,分母定義依賴)。SF production IsSandbox=false; New Donor Upgrade calling = 670 calls, 43 successful upgrades; Not Reached 333 (~50%), never dialed 139 (~20%), connected 198. Upgrade rate: 6.4% of all calls (43/670), 22% of those connected (43/198), 2.6% of the single-gift pool (43/1,660, denominator definition-dependent). 已驗證(率為推導)/ verified (rates derived)
- 新單筆 ~1,660/新月捐 ~2,418(定義依賴,無法精確重現)New single gifts ~1,660 / new monthly ~2,418 (definition-dependent, not exactly reproducible) 推估 / estimated
- 各流程進件數(proxy=首封 sent,擷取時點、持續累積)、完成率、SMS 寄送量Per-flow intake (proxy = first-email sent, as-of extract, still accruing), completion rates, SMS volume 推估 / estimated;⚠️ HubSpot v4 流程後台無法回溯取得精準進件/完成(Metrics 只往未來算;本區間跨多版本→細節隱藏),唯一精準法=匯出 Enrollment history CSV 數列數。本次沿用 proxy。 ⚠️ HubSpot v4 flows can't be queried retroactively for exact intake/completion (Metrics only counts forward; this window spans multiple revisions → detail hidden); the only exact method is exporting the Enrollment-history CSV and counting rows. We used the proxy.
8.2 方法論限制(解讀數據時注意)Methodology limitations (read with care)
- 進件用首封 sent proxy → 低估(漏掉 dropped 前的人),且為擷取時點、持續累積;精確值改用 HubSpot 後台 Export 數列數。Intake uses the first-email sent proxy → undercounts (misses those dropped before send) and is as-of the extract, still accruing; for exact values export the Enrollment-history CSV.
- 共用信混兩受眾(RG 第 2–8 封 sent 含 RG+Reactive)→ 依 enrollment membership 拆分。Shared emails blend two audiences (RG emails 2–8 sent include RG + Reactive) → split by enrollment membership.
- GA4 keyEvents ≠ 捐款;revenue 因區間含未來日期+幣別換算被略過。GA4 keyEvents ≠ donations; revenue was skipped because the window includes future dates + currency conversion.
- 無逐筆 HubSpot↔SF join → 670 通/43 升級僅類別歸因;建時間軸 join 才能逐人歸因。No row-level HubSpot↔SF join → 670 calls / 43 upgrades is category-level only; a timeline join is needed for person-level attribution.
- 開信率衰退有倖存者偏差 + Apple MPP 灌水 → 以 click 為主述事。Open-rate decay has survivorship bias + Apple MPP inflation → narrate on clicks.
- 交易型 SMS 寄送量無 API 來源(走 Paasoo)→ 需後台/log。Transactional SMS volume has no API source (via Paasoo) → needs the console/logs.
- 區間到 6/30 但 6/17 擷取,近期 cohort 後段被機械性壓低。Window runs to 6/30 but was extracted 6/17, so recent cohorts' later emails are mechanically suppressed.
- 「打不通」應指 Not Reached(約 50%);本報告的「約 70% 未成功接觸」是把「尚未撥打的 139」一併計入,兩者請分開解讀。"Couldn't connect" should mean Not Reached (~50%); this report's "~70% not successfully contacted" includes the 139 never-dialed — read the two separately.
8.3 研究來源(出處)Research sources
- M+R Benchmarks 2026 — mrbenchmarks.com(月捐 27%、新捐款者 31%/留存 24%、倡議 0.34%、CTR/回應、捐款頁預設 64%/35%) (monthly 27%, new donors 31% / retention 24%, advocacy 0.34%, CTR/response, donation-page default 64%/35%)
- NextAfter — donor retention · recurring giving · add monthly ask to welcome series · donor cultivation (offer-focused +920%、首 45 天、4× 價值)(offer-focused +920%, first 45 days, 4× value)
- Neon One Nonprofit Email Report — neonone.com (NGO open ~28–29%/click ~3.3%)(NGO open ~28–29% / click ~3.3%)
- SOFII (WWF Canada / Greenpeace International 案例)(WWF Canada / Greenpeace International cases) — sofii.org (welcome pack 留存投資)(welcome pack as retention investment)
- DataReportal Digital 2026 Taiwan / LY Corporation — datareportal.com (LINE ~93%)(LINE ~93%)
- BLUF / Minto Pyramid (本報告結構)(this report's structure) — Minto Pyramid · Pyramid Principle
- Lapsed-donor / engagement ladder (vendor/directional) — Donorbox / Qgiv / kindsight / Bonterra / Quorum; Care2 連署→捐款案例(directional)Care2 signer→donor case (directional)
- 本機知識庫Local knowledge base:
~/.claude/knowledge/ngo-donor-welcome-email-best-practices.md
技術重現:每個數字怎麼來的Reproducibility: how every number was obtained
本頁假設讀者沒有任何本機檔案,只要有下列存取權即可從零重算所有數字。所有查詢皆為唯讀(GET/SELECT)。This page assumes the reader has no local files — with the access below, every number can be recomputed from scratch. All queries are read-only (GET / SELECT).
1. 環境與存取1. Environment & access
| 系統System | 識別碼 / 存取ID / access | 用途Used for |
| HubSpot | Portal 144636797(EU,app-eu1);API host api.hubapi.com;PAT 存於 monorepo 根目錄 .env.local 的 HUBSPOT_PAT。Portal 144636797 (EU, app-eu1); API host api.hubapi.com; PAT in the monorepo-root .env.local as HUBSPOT_PAT. | 流程動作、Email 主旨/CTA、開信/點擊/寄出統計flow actions, email subject/CTA, open/click/send stats |
| GA4 | 台灣 property 251984551(analytics-mcp)Taiwan property 251984551 (analytics-mcp) | sg2rg 捐款 CTA 的 session / key eventsg2rg donation-CTA sessions / key events |
| Salesforce | 正式環境 orgId 00D2v000001f7liEAA(sf CLI);IsSandbox=falseproduction orgId 00D2v000001f7liEAA (sf CLI); IsSandbox=false | TFR「New Donor Upgrade」電訪結果TFR "New Donor Upgrade" call outcomes |
| 區間Window | 2026-01-01T00:00:00Z → 2026-06-30T23:59:59Z | 擷取於 2026-06-17,2026-06-18 重驗extracted 2026-06-17, re-validated 2026-06-18 |
2. 來源物件與欄位2. Source objects & fields
- HubSpot v4 流程:
GET /automation/v4/flows/{id} → actions[](actionTypeId:0-1 delay、0-4 send email(fields.content_id)、1-241321279 SMS、0-63809083 add-to-list、LIST_BRANCH 分支)。流程 ID:RG 2843532534/SG 4067609839/Reactive 2866280642/Supporter 3600140512。注意:v4 流程不在 /automation/v3/workflows 清單。HubSpot v4 flows: GET /automation/v4/flows/{id} → actions[] (actionTypeId: 0-1 delay, 0-4 send email (fields.content_id), 1-241321279 SMS, 0-63809083 add-to-list, LIST_BRANCH branch). Flow IDs: RG 2843532534 / SG 4067609839 / Reactive 2866280642 / Supporter 3600140512. Note: v4 flows are not in /automation/v3/workflows.
- HubSpot Email 統計:
GET /marketing/v3/emails/statistics/list?startTimestamp=&endTimestamp=&emailIds={cid} → aggregate.counters(sent / delivered / open / click / bounce / dropped)。開信率 = open ÷ delivered;點擊率 = click ÷ delivered。Email 內容/CTA:GET /marketing/v3/emails/{cid}?statistics=true。HubSpot email stats: GET /marketing/v3/emails/statistics/list?startTimestamp=&endTimestamp=&emailIds={cid} → aggregate.counters (sent / delivered / open / click / bounce / dropped). Open = open ÷ delivered; click = click ÷ delivered. Content/CTA: GET /marketing/v3/emails/{cid}?statistics=true.
- Salesforce Case:
Category__c='TFR'、Sub_Category__c='New Donor Upgrade'、Market__r.Name='Taiwan'、CreatedDate 落在區間;結果欄位 TFR_Call_Outcome__c('Not Reached' / 'Yes'…)、TFR_Call_Response_Code__c('Accepted (Upgrade)'…)。Salesforce Case: Category__c='TFR', Sub_Category__c='New Donor Upgrade', Market__r.Name='Taiwan', CreatedDate in window; outcome fields TFR_Call_Outcome__c ('Not Reached' / 'Yes'…), TFR_Call_Response_Code__c ('Accepted (Upgrade)'…).
3. 三步流程(可直接執行)3. 3-step pipeline (copy-runnable)
步驟 1 — 流程 + Email + 統計(自 monorepo 根目錄執行;完整腳本如下,輸入路徑為相對路徑):Step 1 — flows + emails + stats (run from the monorepo root; full script below, relative paths):
#!/usr/bin/env python3
# Extract the 4 TW HubSpot Welcome v4 flows -> ordered steps + per-email subject/CTA + H1-2026 stats.
import json, urllib.request, urllib.error, os, re, html
TOK = os.environ["HUBSPOT_PAT"]
WIN_START, WIN_END = "2026-01-01T00:00:00Z", "2026-06-30T23:59:59Z"
FLOWS = {
"RG":{"id":"2843532534"}, "SG":{"id":"4067609839"},
"Reactive":{"id":"2866280642"}, "Supporter":{"id":"3600140512"},
}
ACTION = {"0-1":"DELAY","0-4":"SEND_EMAIL","0-5":"SET_PROPERTY","0-31":"SET_MARKETABLE",
"LIST_BRANCH":"IF_THEN_BRANCH","1-218849820":"DATE_FORMAT","1-241321279":"SEND_SMS","0-63809083":"ADD_TO_LIST"}
def get(url):
req = urllib.request.Request(url, headers={"Authorization":"Bearer "+TOK})
try: return json.load(urllib.request.urlopen(req)), 200
except urllib.error.HTTPError as e: return e.read().decode()[:400], e.code
STAT = ["sent","delivered","open","click","bounce","unsubscribed","dropped","spamreport"]
def email_stats(cid):
r,code = get("https://api.hubapi.com/marketing/v3/emails/statistics/list"
"?startTimestamp=%s&endTimestamp=%s&emailIds=%s"%(WIN_START,WIN_END,cid))
if code!=200: return {"error":code}
c = (r.get("aggregate",{}) or {}).get("counters",{}) or {}
d = {k:c.get(k,0) for k in STAT}; deliv = d["delivered"] or 0
d["open_rate"] = round(d["open"]/deliv,4) if deliv else None # open / delivered
d["click_rate"] = round(d["click"]/deliv,4) if deliv else None # click / delivered
return d
out = {"flows":{}, "emails":{}}; need=set()
for label,m in FLOWS.items():
d,_ = get("https://api.hubapi.com/automation/v4/flows/%s"%m["id"]); steps=[]
for a in d.get("actions",[]):
t = a.get("actionTypeId") or a.get("type"); f = a.get("fields",{}) or {}
e = {"type":ACTION.get(t,t)}
if e["type"]=="SEND_EMAIL" and f.get("content_id"):
e["content_id"]=f["content_id"]; need.add(str(f["content_id"]))
elif e["type"]=="DELAY": e["delay"]="%s %s"%(f.get("delta"),f.get("time_unit"))
steps.append(e)
out["flows"][label]={"total_actions":len(steps),"steps":steps}
for cid in sorted(need):
em,code = get("https://api.hubapi.com/marketing/v3/emails/%s?statistics=true"%cid)
out["emails"][cid] = {"error":code} if code!=200 else {
"subject":em.get("subject"), "stats_h1_2026":email_stats(cid)}
print(json.dumps(out, ensure_ascii=False, indent=2))
步驟 2 — GA4 sg2rg 捐款 CTA(analytics-mcp run_report):property 251984551、日期 2026-01-01→2026-06-17(勿用未來日期,totalRevenue 會因幣別換算 400 錯誤)、維度 sessionManualAdContent、指標 sessions+keyEvents、過濾 sessionManualCampaignName = sg2rg。Step 2 — GA4 sg2rg donation CTA (analytics-mcp run_report): property 251984551, dates 2026-01-01→2026-06-17 (no future dates — totalRevenue 400s on currency conversion), dimension sessionManualAdContent, metrics sessions+keyEvents, filter sessionManualCampaignName = sg2rg.
步驟 3 — Salesforce TFR 電訪(唯讀 SOQL):Step 3 — Salesforce TFR calling (read-only SOQL):
sf data query --target-org 00D2v000001f7liEAA --json --query "
SELECT TFR_Call_Outcome__c, TFR_Call_Response_Code__c, COUNT(Id)
FROM Case
WHERE Category__c='TFR' AND Sub_Category__c='New Donor Upgrade'
AND Market__r.Name='Taiwan'
AND CreatedDate >= 2026-01-01T00:00:00Z AND CreatedDate <= 2026-06-30T23:59:59Z
GROUP BY TFR_Call_Outcome__c, TFR_Call_Response_Code__c"
# Totals: 670 cases; upgrades = (Outcome='Yes') = (Response='Accepted (Upgrade)') = 43;
# Not Reached = 333 (~50%); no outcome / never dialed = 139 (~20%); connected = 198.
4. 逐數字溯源4. Number-by-number lineage
| § | 數字Number | 怎麼來的How obtained |
| 1/2/8 | RG open 52.7% / click 13.7% | HubSpot stats, cid 287564959972: open÷delivered, click÷delivered v |
| 1/2/8 | RG sent ~2,248 · SG ~794 · Supporter 8,631 | 各流程首封 sent(擷取時點 proxy;實機重驗時已續增至 2,270/800/8,657)first-email sent per flow (as-of proxy; live re-check had grown to 2,270/800/8,657) a |
| 2 | 寄送時程 Day 0/1/7/14/21/28/35/42cadence Day 0/1/7/14/21/28/35/42 | 遍歷流程圖 startActionId → connection.nextActionId,加總 0-1 delaytraverse the flow graph startActionId → connection.nextActionId, sum 0-1 delays v |
| 1/5/8 | SG email-4 = 33 key events | GA4 run_report, sessionManualAdContent contains email-4, keyEvents v |
| 1/3/8 | 670 calls → 43 upgrades | SF SOQL count (Step 3); 43 corroborated by Outcome='Yes' AND Response='Accepted (Upgrade)' v |
| 3/8 | ~50% not reached · ~20% never dialed · 22% of connected | SF SOQL: 333/670, 139/670, 43/198 (198=670−333−139) v (rate derived) |
| 8 | SG bounce 11.7% · Supporter dropped 8.0% | HubSpot counters: bounce÷sent (93/794) · dropped÷sent (687/8,631) v |
| 8 | RG 2,418 / SG 1,660 baseline | SF 新捐款者計數,定義依賴、無法精確重現SF new-donor counts, definition-dependent, not exactly reproducible a |
| 1/5/b4 | 0.34% · +920% · 27% · 24% · 31% · 93% | 外部基準(M+R 2026 / NextAfter / DataReportal),非本資料計算external benchmarks (M+R 2026 / NextAfter / DataReportal), not computed from this data a |
5. 重現時的陷阱5. Pitfalls when recomputing
- v4 流程不在 v3 workflow 清單;要用
/automation/v4/flows(分頁 paging.next.after)。v4 flows are not in the v3 workflow list; use /automation/v4/flows (paginate paging.next.after).
statistics/list 不帶 emailIds 時只回全域彙總;必須單獨帶一個 emailIds 才能拿到該封的 counters。Without emailIds, statistics/list returns only the global aggregate; pass a single emailIds to get one email's counters.
- 開信/點擊率分母是
delivered 不是 sent;bounce/dropped 率分母才是 sent。Open/click denominators are delivered, not sent; bounce/dropped rates use sent.
- 「約 70% 未接觸」包含「139 尚未撥打」;單講「打不通」(Not Reached) 只有約 50%——兩者要分開。已接通分母 = 670−333−139 = 198。"~70% not contacted" includes the 139 never-dialed; "couldn't connect" (Not Reached) alone is only ~50% — keep them separate. Connected base = 670−333−139 = 198.
- Email 預覽連結用
/email/144636797/details/{id};/preview/{id}?preview_key= 形式會 404。Email preview link is /email/144636797/details/{id}; the /preview/{id}?preview_key= form 404s.
- GA4
totalRevenue 遇未來日期會 400(幣別換算)→ end date 設到 6/17。GA4 totalRevenue 400s on future dates (currency) → cap end date at 6/17.
- 進件 proxy(首封 sent)會持續累積;不同日重抓數字會略增(snapshot 漂移)。The intake proxy (first-email sent) keeps accruing; re-pulling on a later day gives slightly higher numbers (snapshot drift).
- RG 與 Reactive 共用 6 封信 → 這些信的 sent 是兩條流程合計,不能當單一流程量。RG and Reactive share 6 emails → those emails' sent counts are combined across both flows, not one flow's volume.