UGOMK 操作手冊
07 章 / 共 18

成就系統

成就(Achievements)是需要累積進度才能完成的長期目標,與勳章的差別在有進度條。會員在 LIFF profile 可以看「還差多少完成」,是「目標感」的核心設計。

進入路徑

後台左側 社群 & 遊戲化 → 成就管理

勳章 vs 成就 差異

面向勳章(Badge)成就(Achievement)
進度條無(拿或沒拿)有(0/100 → 47/100 → 100/100)
顯示勳章牆 icon 網格進度列 + 已解 / 未解分類
觸發條件達成瞬間發每次行為更新 progress
加分points_reward 一次性完成時 points_reward + 過程無分
適合里程碑(第一次、連續 7 天)長期目標(發滿 100 篇、拿滿 10 個勳章)

預設成就(30 個 seed)

模組首次啟用 seed 30 個常見成就,涵蓋發文 / 留言 / 打卡 / 讚 / 勳章 / MGM 6 大類:

Key名稱條件完成加分
post_10十發之貼發 10 篇+20
post_50五十連發發 50 篇+50
post_100百篇作者發 100 篇+100
comment_50熱心參與留 50 則+30
checkin_30一月不斷累積打卡 30 天+50
like_500人氣爆棚累積收 500 讚+100
badge_10勳章收藏家拿到 10 個勳章+50
mgm_10推廣達人推薦 10 人+100
...(共 30 個)......

欄位說明

Key / 名稱 / Icon / 顏色 同勳章。

分類(category) content / social / streak / collection / mgm / special 6 種,LIFF 按分類 tab 展示。

目標數(target) 例如「發滿 50 篇」的 50。

條件事件(tracked_event) 哪個 point event 累加進度。預設對應:

  • post_countpost_created 事件計數
  • comment_countcomment_created 事件計數
  • checkin_totaldaily_checkin 事件計數
  • received_like_totalreceived_like 事件計數
  • badge_count → 拿到的勳章數
  • mgm_signupreferral_signup 事件計數

完成加分(points_reward) 達到 target 時一次性加分。

啟用(is_active) 關閉後不再追蹤進度,已完成的保留。

進度追蹤機制

會員每次觸發相關 point event,系統呼叫 evaluateRewards helper(位於 badge-helper.ts):

  1. 對照 achievement 的 tracked_event(如 post_count / comment_count / streak_days
  2. 找出該會員該成就的 gc_achievement_progress row(沒有就插入)
  3. current_value 依最新計數更新
  4. current_value >= target 且尚未 completed_at,標記完成 + 發 points_reward + fire achievement_completed trigger

evaluateRewards 在兩個時機呼叫:

  • 即時:會員發文 / 留言 / 打卡等動作完成後立即觸發(liff.ts
  • 排程:每日 Cron 批次掃所有會員重算(gc-runners.ts),補償即時觸發可能漏掉的邊界情況

操作

新增成就

  • + 新增成就 → 填 name / category / tracked_event / target / points_reward → 儲存

查看某會員進度

  • 「積分事件」頁選會員 → 側欄「成就進度」看該會員全部成就當前 %

批次調整 target

  • 若已上線後發現「post_100 太難」,直接編輯 target 改成 50,已完成的會員不受影響(保留 completed 狀態),未完成的會員 progress % 立刻重算。

成就設計建議

分類要清楚 content / social / streak / collection / mgm 讓會員 LIFF 端 tab 清晰。

每分類階梯化 post_10 / post_50 / post_100,一個成就完成解鎖下個目標感。

別堆到 100 個 30-50 個成就剛好,太多會員看膩。

特殊事件成就special 分類):季節、活動、限量。

常見情境

新客戶開通模組要客製化 保留系統預設 30 個 → 依客戶行業把「發滿 100 篇」改成「發滿 20 篇」(低頻社群)或加入「參加線下聚會 3 次」(活動導向)。

追蹤 KPI 「勳章收藏家(拿 10 個勳章)」的完成率能反映會員黏著度,在「模組儀表板」看比例。

常見問題

Q1 成就進度會不會 reset

不會current_value 只累加不減,即使會員被扣分或違規也不影響進度。這保護會員的努力感。

Q2 完成成就後,成就本身變什麼樣

LIFF 端該成就從「進度中」tab 移到「已完成」tab,completed_at 打時間戳,points_reward 一次性發到 current_points。可炫耀顯示於 profile。

Q3 同一 tracked_event 有多個成就會怎樣

都同步累加。例如 post_created 同時追蹤 post_10 / post_50 / post_100 3 個成就,會員發第 10 篇時 post_10 完成,繼續發到 50 時 post_50 完成。

Q4 可以加「多重條件」的成就嗎(例如「發 10 篇 AND 拿 3 個勳章」)

Phase 1 不支援。目前只支援單 tracked_event。多重條件是 Phase 2 park 的「自訂規則 builder」。若真的需要,可暫時分成兩個成就。