- Redmine
- 4、5、6 與 7
- 目標
- 4 個獨立計時器
- 資料庫
- PostgreSQL, MySQL, MariaDB, SQLite
- 報表
- 4 種,可匯出 CSV
- 額外 gem
- 無
- 修改的核心檔案
- 無
正確計算工作時間
支援分段班別的每週排程、各行事曆獨立時區、固定與週期性假日,以及特殊上班日。跨越日光節約時間時依牆上時鐘計算,09:00–18:00 永遠是 09:00–18:00。
四個獨立計時器
首次回應、確認受理、解決與結案,各自擁有目標、狀態與暫停行為。只需設定您實際使用的項目。
等待客戶回覆
依狀態設定的規則決定哪些計時器停止。「等待客戶回覆」可凍結解決時間,同時讓首次回應持續計時,因為那仍是您的責任。
以白話設定條件
可依專案、追蹤標籤、狀態、分類、被分派者、群組、客戶或任何自訂欄位比對,使用實際名稱,絕不使用紀錄 ID。
警告、嚴重、違約
門檻在期限之前觸發,而不是之後。郵件透過 Redmine 本身的郵件寄送程式送出,並以唯一索引登記,確保同一則警示絕不會寄送兩次。
經得起檢驗的達成率
依目標統計的達成率、含中位數與離群值的回應及解決時間分布,以及列出到期日、實際日期與超時幅度的違約表。
團隊下班,計時就停止
直接把兩個時間戳記相減,等於讓週末也算進您的時限。Redmine SLA 會依照您的營業行事曆,只計算您營業中的分鐘數;因此週五傍晚提出、目標為四小時的議題,到期時間是週一,而不是當天晚上。
| 議題提出時間 | 計入的工作時間 | 到期 | 實際經過時間 |
|---|---|---|---|
| 週二 09:30 | 連續 4 小時 | 週二 13:30 | 4 小時 |
| 週五 17:00 | 週五 1 小時,週一 3 小時 | 週一 12:00 | 67 小時 |
| 週五 17:00,週一為假日 | 週五 1 小時,週二 3 小時 | 週二 12:00 | 91 小時 |
| 任何時間,24×7 行事曆 | 經過 4 小時 | 四小時後 | 4 小時 |
行事曆支援分段班次、各自的時區、單次與週期性假日,以及特殊工作日。
四個計時器,各有各的規則
只設定您實際承諾的目標。每個目標都依各自的事件開始、暫停與停止,因此「等待客戶回覆」可以凍結解決時間,同時首次回應繼續計時。
首次回應:有人回覆了
在作者以外的任何人留下第一則公開留言時停止。什麼算作回覆,可依政策個別設定。
確認受理:有人負責了
在議題被分派,或進入您選定的狀態時停止。
解決:問題已修正
在議題進入已結束狀態,或您選定的任一解決狀態時停止。
結案:工單已完成
為最終結案另設的目標,適合先解決問題、之後再與客戶確認的團隊。
看起來就像 Redmine,因為它就是 Redmine
沒有 iframe、沒有獨立應用程式,也不必再登入一次。以下是本外掛在 Redmine 7.0 上的真實畫面,展示一個涵蓋所有 SLA 狀態議題的示範專案。
客服人員:每個議題上的 SLA 面板
每個目標一列,顯示其狀態、剩餘時間、已使用的目標比例,以及確切的到期時間。


團隊主管:依即將出問題的程度排序的工作佇列
可依狀態、健康狀態、政策或是否違約篩選,依到期時間排序,並匯出 CSV。同樣的欄位在 Redmine 原生的議題清單中也可作為篩選條件與欄位使用。
經理:可以直接拿給客戶看的報表
達成率、回應時間、解決時間與違約,可依期間、政策、追蹤標籤與優先權篩選。每份報表都能匯出 CSV。


管理員:用白話寫成的政策
「當議題的優先權為 Urgent、Immediate 之一時。」條件使用選單中的實際名稱,而不是紀錄 ID。時長可輸入 30、4h 或 1d 4h。




維運:在同一處確認一切都正常運作


服務台真正會爭論的每一件事
爭議很少是關於工單有沒有逾時,而是哪些時數該算、計時何時該停止,以及當時的目標是多少。
工作時間,正確處理
支援分段班次的每週排程、每個行事曆各自的時區、固定與週期性假日,以及特殊工作日。日光節約時間切換前後,09:00 依然是 09:00。
等待客戶回覆
可依狀態設定暫停規則,套用於全域或個別政策。只扣回工作時間,因此跨週末的暫停不會造成任何影響。
警告、嚴重、違約
門檻值在期限之前就會觸發。每則通知只透過 Redmine 原生的郵件寄送程式發送一次,範本可依事件與語言個別編輯。
每個議題套用正確的政策
可依專案與子專案、追蹤標籤、優先權、狀態、分類、作者、被分派者、群組或任何自訂欄位比對。多個政策同時符合時,排序順序較前者優先。
直接整合在議題清單中
SLA 政策、狀態、健康狀態、是否違約、到期時間與剩餘時間,都能在 Redmine 議題清單中作為篩選條件與欄位:可排序、可分組、可匯出。
修改不會改寫歷史
每個 SLA 都會保存開始時所用政策的快照。下一季調整目標,不會影響上一季的數字。重新計算必須由管理員刻意執行。
一個議題會經歷什麼
週五下午提出的一個嚴重錯誤,採用週一至週五 09:00 至 18:00 的行事曆,首次回應目標為 30 分鐘,解決目標為四小時。
| 時間 | 事件 | 外掛的動作 |
|---|---|---|
| 週五 15:00 | 提出 | 第一個符合的政策被套用,其計時器開始計時。當天剩下三個工作小時,因此有一小時順延到週一。 |
| 週五 15:20 | 首次回覆 | 客服人員的公開留言讓首次回應計時器停在 20 分鐘,在 30 分鐘目標之內。 |
| 週五 16:00 | 等待中 | 解決計時暫停。客戶週一回覆時,到期時間會順延,延後的時間恰好等於損失的工作時間。 |
| 週一 | 75% 警告 | 警告電子郵件會在還來得及處理時寄出。 |
| 週一 | 已解決 | 耗用的時間以及是否達成目標都會被記錄下來,且不會再變動。 |
| 已耗用 | 健康狀態 |
|---|---|
| 低於 75% | 健康 |
| 75% | 有風險 |
| 90% | 嚴重 |
| 100% | 已違約 |
| 保留中 | 已暫停 |
| 已達成目標 | 已完成 |
每個畫面都有對應的 JSON
唯讀的 JSON API 涵蓋畫面上顯示的所有內容。它使用一般的 Redmine API 金鑰驗證,並遵循與頁面相同的權限。
| 方法 | 端點 | 回傳內容 |
|---|---|---|
| GET | /sla/issues/:id.json | 單一議題的 SLA |
| GET | /sla/issues.json | SLA 議題,可篩選 |
| GET | /projects/:id/sla/issues.json | 單一專案的 SLA 議題 |
| GET | /sla/timeline/:id.json | 單一議題的時間軸 |
| GET | /sla/dashboard.json | 儀表板計數器與達成率 |
| GET | /sla/reports/:report.json | 四種報表中的任一種 |
| GET | /sla/policies.json | 政策及其目標 |
| GET | /sla/calendars.json | 行事曆與工作時間 |
讀取單一議題的 SLA
在 X-Redmine-API-Key 標頭中傳送您的金鑰。回應內容包含政策、行事曆、整體健康狀態,以及每個目標各一筆資料,列出其狀態、到期時間與已耗用時間。您可以用它在看板螢幕上顯示 SLA 倒數,或將達成率數據匯入您自己的報表系統。
六項權限,依角色授予
SLA 是標準的 Redmine 專案模組。在需要衡量的專案上啟用,並只給每個角色所需的權限。Redmine 管理員一律擁有兩項全域權限。
| 權限 | 範圍 | 允許的操作 |
|---|---|---|
| view_sla | 專案 | 檢視議題上的 SLA 面板、SLA 議題清單與時間軸 |
| view_sla_dashboard | 專案 | 檢視 SLA 儀表板 |
| view_sla_reports | 專案 | 檢視並匯出 SLA 報表 |
| manage_sla | 專案 | 編輯專案的 SLA 設定,並重新計算議題的 SLA |
| manage_sla_policies | 全域 | 建立及編輯政策與暫停規則 |
| manage_sla_calendars | 全域 | 建立及編輯行事曆與假日 |
在您現有的 Redmine 環境中執行
| 環境 | 狀態 | 備註 |
|---|---|---|
| Redmine 7.x | 支援 | 已在 Redmine 7.0、Rails 8.1 與 Ruby 3.4.2 上測試。本頁截圖取自 7.0。 |
| Redmine 6.x | 支援 | |
| Redmine 5.x | 支援 | 資料庫遷移後需執行外掛資源(assets)任務 |
| Redmine 4.x | 支援 | 4.0 為外掛宣告的最低版本 |
| 資料庫 | 支援 | PostgreSQL、MySQL、MariaDB 與 SQLite,不使用任何資料庫專屬 SQL |
| 額外 gem | 無 | 不需要 Redis,也不需要 Sidekiq。只要一筆 cron 項目或 systemd timer 執行背景檢查即可。 |
| Redmine 核心 | 未修改 | 不修改任何核心檔案,因此不影響 Redmine 升級 |
三個步驟完成安裝
需要 shell 存取權限,並能執行 rake 任務。安裝外掛前請務必先備份。
cd /path/to/redmine # the package arrives by email, or from your download link unzip redmine_sla-1.0.0.zip -d plugins/
RAILS_ENV=production bundle exec rake redmine:plugins:migrate # Redmine 4 and 5 only (Redmine 6+ serves plugin assets directly) RAILS_ENV=production bundle exec rake redmine:plugins:assets touch tmp/restart.txt # or systemctl restart redmine
# every five minutes: evaluate timers that are due, safe to run repeatedly */5 * * * * cd /path/to/redmine && RAILS_ENV=production bundle exec rake redmine_sla:process >> log/sla.log 2>&1
# Administration → SLA → create the default business calendars, then follow the checklist # Administration → SLA → Policies → write one policy: targets, calendar, conditions # Project → Settings → Modules → tick SLA for each project you measure # Administration → Roles and permissions → grant the SLA permissions
這個外掛會修改 Redmine 核心檔案嗎?
編輯政策後,既有的 SLA 會怎樣?
需要 Redis、Sidekiq 或額外的 gem 嗎?
不同的客戶或專案可以有不同的 SLA 嗎?
安裝之前就已存在的議題怎麼辦?
解除安裝安全嗎?
截圖是真實的嗎?
價格
需要客製化的 Redmine 解決方案嗎?
想要的功能在我們現有的外掛中找不到嗎?
RedmineKit 提供 Redmine 外掛客製化開發、外掛修改、工作流程自動化、第三方系統整合,以及為您的業務量身打造的解決方案。
請告訴我們您的需求。我們會評估需求,並提出合適的解決方案,附上預估費用與時程。
