健身 CRM
與 AI 代理一起建立
網紅健身 CRM 後端

網紅健身 CRM 後端範本
教練檔案、客戶紀錄、宏觀目標與訊息串

一個可投入生產的 網紅健身 CRM 後端 在 Back4app,包括教練、客戶檔案、宏觀目標、訓練日誌、簽到和訊息串紀錄。包含 ER 圖、資料字典、JSON 架構、API 沙盒,以及一個 AI 代理 提示,用於快速啟動。

關鍵 CRM 重點

此模板為您提供了一個影響者健身 CRM 後端,其中包含教練、客戶檔案、宏目標、訓練日誌、檢查和消息主題記錄,使您的教練團隊可以在更少的手動交接中從接收過程轉向跟進。

  1. 教練和客戶檔案記錄保持連結在每個客戶檔案上使用教練指標來指派教練,以便協調者可以查看每個客戶的擁有者。
  2. 宏目標計劃與客戶時間表匹配存儲每個客戶檔案目標更新的卡路里、蛋白質克、碳水化合物克、脂肪克和生效日期。
  3. 訓練日誌和檢查歷史一起存放跟蹤訓練分割、會話摘要、運動計數、完成狀態、公斤重量、遵循分數和教練備註,全部在一個教練流程中。
  4. MessageThread 讓後續跟進可見使用主題、未讀數、置頂和最後消息時間來呈現需要回覆的簽到審核主題。

影響者健身 CRM 後端一覽

影響者健身 CRM 的截止日期很少是可選的;結構化的記錄層將日期轉換為提醒,而不是驚喜。可靠性是一個功能,而不是註腳。Back4app 為需要截止日期、文件和通訊的一個有權限的工作空間的影響者健身 CRM 實踐錨定教練、客戶資料、宏觀目標、鍛煉記錄和簽到。該架構涵蓋了教練(用戶名、電子郵件、顯示名稱、角色、是否活躍)、客戶資料(客戶代碼、全名、電子郵件、目標、狀態、教練、開始日期)、宏觀目標(客戶、卡路里、蛋白質克數、碳水化合物克數、脂肪克數、有效日期、備註)、鍛煉記錄(客戶、鍛煉日期、訓練拆分、會話摘要、運動計數、負荷量、完成狀態)、簽到(客戶、簽到日期、體重公斤、腰圍厘米、遵從分數、睡眠小時、能量水平、照片 URL、教練備註)以及消息主題(客戶、教練、最後消息時間、未讀數、置頂、主題),並內置了認證和隱私控制。連接您喜歡的前端並更快發佈。

最佳用於:

健身影響者教練應用程序宏觀目標儀表板鍛煉記錄工具客戶登記系統消息跟進工作流程團隊選擇 BaaS 作為教練產品

這個 Influencer Fitness Crm 後端是如何組織的

當系統消除了關於記錄什麼、在何處找到以及誰可以更改的猜測時,人們在 influencer fitness crm 中能夠發揮最佳表現。

使用 Coach、ClientProfile 和 MacroTarget 作為 MVP 範圍的檢查清單:如果它沒有建模,它將成為電子表格的變通辦法。

核心 CRM 模塊

此中心中的每一張技術卡都使用相同的影響者健康 CRM 架構,包括教練、客戶檔案、宏目標、運動日誌、檢查及訊息串。

教練帳號管理

教練儲存用戶名、電子郵件、顯示名稱、角色和是否啟用。

ClientProfile 管理

ClientProfile 儲存 clientCode、fullName、goal、status、coach 和 startDate。

MacroTarget 計劃

MacroTarget 保留卡路里、蛋白質克數、碳水化合物克數、脂肪克數、effectiveFrom 和備註。

WorkoutLog 會話

WorkoutLog 捕捉 workoutDate、trainingSplit、sessionSummary、exerciseCount、volumeLoad 和 completionStatus。

CheckIn 評價

CheckIn 存儲 checkInDate、weightKg、waistCm、adherenceScore、sleepHours、energyLevel、photosUrl 和 coachNotes。

訊息串接續

訊息串追蹤客戶、教練、最後訊息時間、未讀計數、固定以及主題。

為什麼要使用 Back4app 建立您的 Influencer Fitness CRM 後端?

Back4app 提供 Coach、ClientProfile、MacroTarget、WorkoutLog、CheckIn 和 MessageThread 原始元件,讓您的員工可以專注於教練決策,而不是基礎設施工作。

  • 教練和客戶檔案易於查詢: 使用教練作為員工身份,使用客戶檔案作為客戶分配;相同的架構支持接納、狀態更新和開始日期追蹤。
  • 宏目標和訓練日誌保持一致: 當教練需要將營養目標與訓練負荷進行比較時,可以一起獲取客戶的宏目標計劃和訓練日誌會話。
  • 檢查和消息線程保持評審可見: 使用檢查進行體重測量、遵守分數、睡眠小時和教練備註,而消息線程顯示未讀數和釘選主題以便後續跟進。

快速建立和迭代客戶教練功能,通過所有平台上的一個後端合同進行。

核心 CRM 優勢

一個教練後端幫助你管理客戶對話,讓你不會失去重要的細節。

更快的客戶入職

從完整的客戶檔案、教練指向及開始日期架構開始,而不是手動製作接收表格。

營養與訓練一覽

保持宏目標和運動日誌條目對齊,以便員工能夠比較卡路里、蛋白質克數、訓練分割及運動計數。

可審核的簽到時間表

使用簽到歷史查看隨著時間變化的體重公斤、腰圍厘米、依從性分數、睡眠時數、能量水平和教練備註。

教練團隊的範圍存取

應用 ACL/CLP 規則,使得只有指定的教練和允許的角色可以讀取或更新客戶的 ClientProfile、MacroTarget、WorkoutLog、CheckIn 和 MessageThread 記錄。

一個 Web 和移動端的架構

將相同的教練、ClientProfile、MacroTarget、WorkoutLog、CheckIn 和 MessageThread 數據提供給儀表板和面向客戶的應用程序。

AI輔助設置

透過一個結構化的提示快速生成後端架構和集成指導。

準備好推出你的影響者健身 CRM 應用程序了嗎?

讓 Back4app AI 代理生成您的輔導後端,並從一個提示中生成教練、客戶檔案、宏目標、訓練日誌、檢查和消息線程流程。

免費開始 - 每月 50 條 AI 代理提示,不需要信用卡

技術棧

這個影響者健身 CRM 後端模板中包含的一切。

前端
超過 13 種技術
後端
Back4app
資料庫
MongoDB
認證
內建的認證 + 會話
API
REST 和 GraphQL
即時
Live Queries

教練與客戶ER圖

影響者健身CRM架構的實體關係模型。

查看圖表來源
Mermaid
erDiagram
    Coach ||--o{ ClientProfile : "coach"
    ClientProfile ||--o{ MacroTarget : "client"
    ClientProfile ||--o{ WorkoutLog : "client"
    ClientProfile ||--o{ CheckIn : "client"
    Coach ||--o{ MessageThread : "coach"
    ClientProfile ||--o{ MessageThread : "client"

    Coach {
        String objectId PK
        String username
        String email
        String password
        String displayName
        String role
        Boolean isActive
        Date createdAt
        Date updatedAt
    }

    ClientProfile {
        String objectId PK
        String clientCode
        String fullName
        String email
        String goal
        String status
        String coachId FK
        Date startDate
        Date createdAt
        Date updatedAt
    }

    MacroTarget {
        String objectId PK
        String clientId FK
        Number calories
        Number proteinGrams
        Number carbGrams
        Number fatGrams
        Date effectiveFrom
        String notes
        Date createdAt
        Date updatedAt
    }

    WorkoutLog {
        String objectId PK
        String clientId FK
        Date workoutDate
        String trainingSplit
        String sessionSummary
        Number exerciseCount
        Number volumeLoad
        String completionStatus
        Date createdAt
        Date updatedAt
    }

    CheckIn {
        String objectId PK
        String clientId FK
        Date checkInDate
        Number weightKg
        Number waistCm
        Number adherenceScore
        Number sleepHours
        String energyLevel
        String photosUrl
        String coachNotes
        Date createdAt
        Date updatedAt
    }

    MessageThread {
        String objectId PK
        String clientId FK
        String coachId FK
        Date lastMessageAt
        Number unreadCount
        Boolean pinned
        String topic
        Date createdAt
        Date updatedAt
    }

教練CRM整合流程

教練登錄、客戶加載、宏目標更新、鍛煉記錄、檢查回顧和線程跟進的典型運行流程。

查看圖表來源
Mermaid
sequenceDiagram
  participant Coach
  participant CRM as Fitness Influencer Client CRM App
  participant Back4app as Back4app Cloud

  Coach->>CRM: Sign in
  CRM->>Back4app: POST /login
  Back4app-->>CRM: Session token

  Coach->>CRM: Open client pipeline
  CRM->>Back4app: GET /classes/ClientProfile?include=coach
  Back4app-->>CRM: ClientProfile rows

  Coach->>CRM: Review macro target and update it
  CRM->>Back4app: GET /classes/MacroTarget?include=client
  CRM->>Back4app: POST /classes/MacroTarget
  Back4app-->>CRM: MacroTarget objectId

  Coach->>CRM: Check workout logs and latest check-in
  CRM->>Back4app: GET /classes/WorkoutLog?include=client
  CRM->>Back4app: GET /classes/CheckIn?include=client
  Back4app-->>CRM: WorkoutLog and CheckIn entries

  CRM->>Back4app: GET /classes/MessageThread?include=client,coach
  Back4app-->>CRM: Thread list with unreadCount

字段指南

影響者健身 CRM 架構中每個類別的完整字段級參考。

字段類型描述必填
objectIdStringAuto-generated unique identifier自動
usernameStringCoach login name
emailStringCoach email address
passwordStringHashed password (write-only)
displayNameStringPublic name shown to clients
roleStringStaff role such as coach or coordinator
isActiveBooleanWhether the coach account can sign in
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

9 欄位在 Coach 中

教練訪問與權限

如何通過ACL和CLP策略保護客戶資料、宏觀目標、鍛煉記錄、打卡歷史和消息線程。

指派教練訪問

只有指派的教練或允許的工作人員應該讀取該客戶的ClientProfile、MacroTarget、WorkoutLog、CheckIn或MessageThread。

客戶隱私邊界

將weightKg、waistCm、adherenceScore、sleepHours、photosUrl和coachNotes視為範圍內的教練數據;在Cloud Code中驗證寫入。

可審閱的寫入路徑

允許經過身份驗證的工作人員創建日誌,但在更新CheckIn、MacroTarget或MessageThread記錄之前需要進行服務器端檢查。

JSON架構

原始JSON架構定義,準備好複製到Back4app或用作實施參考。

JSON
{
  "classes": [
    {
      "className": "Coach",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "isActive": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ClientProfile",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "clientCode": {
          "type": "String",
          "required": true
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "goal": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "coach": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Coach"
        },
        "startDate": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "MacroTarget",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientProfile"
        },
        "calories": {
          "type": "Number",
          "required": true
        },
        "proteinGrams": {
          "type": "Number",
          "required": true
        },
        "carbGrams": {
          "type": "Number",
          "required": true
        },
        "fatGrams": {
          "type": "Number",
          "required": true
        },
        "effectiveFrom": {
          "type": "Date",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "WorkoutLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientProfile"
        },
        "workoutDate": {
          "type": "Date",
          "required": true
        },
        "trainingSplit": {
          "type": "String",
          "required": true
        },
        "sessionSummary": {
          "type": "String",
          "required": true
        },
        "exerciseCount": {
          "type": "Number",
          "required": true
        },
        "volumeLoad": {
          "type": "Number",
          "required": false
        },
        "completionStatus": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CheckIn",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientProfile"
        },
        "checkInDate": {
          "type": "Date",
          "required": true
        },
        "weightKg": {
          "type": "Number",
          "required": false
        },
        "waistCm": {
          "type": "Number",
          "required": false
        },
        "adherenceScore": {
          "type": "Number",
          "required": true
        },
        "sleepHours": {
          "type": "Number",
          "required": false
        },
        "energyLevel": {
          "type": "String",
          "required": true
        },
        "photosUrl": {
          "type": "String",
          "required": false
        },
        "coachNotes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "MessageThread",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientProfile"
        },
        "coach": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Coach"
        },
        "lastMessageAt": {
          "type": "Date",
          "required": true
        },
        "unreadCount": {
          "type": "Number",
          "required": true
        },
        "pinned": {
          "type": "Boolean",
          "required": true
        },
        "topic": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

使用 AI 代理進行構建

使用 Back4app AI 代理從這個範本生成一個真正的影響力健身 CRM 應用,包括前端、後端、認證,以及教練、客戶、宏觀、鍛煉、登記和討論流程。

Back4app AI 代理
準備好構建
在 Back4app 上根據這個確切的模式和行為創建安全的影響力健身 CRM 後端。

模式:
1. 教練:用戶名,電子郵件,密碼,顯示名稱,角色,是否活躍;objectId,創建時間,更新時間(系統)。
2. 客戶資料:客戶代碼,全名,電子郵件,目標,狀態,教練(指向教練,需要),開始日期;objectId,創建時間,更新時間(系統)。
3. 宏觀目標:客戶(指向客戶資料,需要),卡路里,蛋白質克,碳水化合物克,脂肪克,生效時間,備註;objectId,創建時間,更新時間(系統)。
4. 鍛煉日誌:客戶(指向客戶資料,需要),鍛煉日期,訓練分割,會議摘要,運動計數,容量負荷,完成狀態;objectId,創建時間,更新時間(系統)。
5. 登記:客戶(指向客戶資料,需要),登記日期,體重公斤,腰圍厘米,遵守分數,睡眠小時,能量水平,照片網址,教練備註;objectId,創建時間,更新時間(系統)。
6. 訊息線程:客戶(指向客戶資料,需要),教練(指向教練,需要),最後消息時間,未讀計數,置頂,主題;objectId,創建時間,更新時間(系統)。

安全性:
- 只有指定的教練可以讀取/寫入客戶記錄。使用雲端代碼進行驗證。

認證:
- 註冊,登錄,登出。

行為:
- 列出客戶資料,添加宏觀目標,記錄鍛煉會話,捕捉每週登記,保持教練線程最新。

交付:
- Back4app 應用程序,具有模式、ACL、CLP;用於客戶資料、宏觀目標、鍛煉日誌、登記和訊息線程的前端。

按下下面的按鈕以使用預填的範本提示打開代理。

這是沒有技術後綴的基本提示。您可以在之後調整生成的前端堆疊。

幾分鐘內部署每月50個免費提示不需要信用卡

API 沙盒

在 Influencer Fitness CRM 架構中嘗試 REST 和 GraphQL 端點。響應使用模擬數據,並且不需要 Back4app 帳戶。

正在加載遊樂場…

使用與此模板相同的架構。

選擇你的技術堆疊

展開每個卡片以查看如何將 Coach、ClientProfile 和 MacroTarget 與您選擇的堆疊整合。

Flutter 影響者健身 CRM 後端

React 影響者健身 CRM 後端

React 原生 影響者健身 CRM 後端

Next.js 影響者健身 CRM 後端

JavaScript 影響者健身 CRM 後端

Android 影響者健身 CRM 後端

iOS 影響者健身 CRM 後端

Vue 影響者健身 CRM 後端

Angular 影響者健身 CRM 後端

GraphQL 影響者健身 CRM 後端

REST API 影響者健身 CRM 後端

PHP 影響者健身 CRM 後端

.NET 影響者健身 CRM 後端

您從每項技術獲得的內容

每個堆疊使用相同的影響者健身 CRM 架構和 API 合約。

統一的教練數據結構

使用一個一致的架構來管理教練、客戶資料、宏目標、鍛煉日誌、檢查和消息線程項目。

客戶的宏目標規劃

存儲每個客戶計劃的卡路里、蛋白質克、碳水化合物克、脂肪克和有效起始時間。

訓練會話的鍛煉日誌

捕捉鍛煉日期、訓練拆分、鍛煉次數、容量負載和會話摘要以供教練審查。

後續的檢查歷史

保持教練決策所需的檢查日期、體重公斤、遵從分數和教練備註可見。

用於教練應用的 REST/GraphQL API

整合儀表板、行動客戶端和自動化,使用靈活的API。

健身 CRM 堆疊比較

比較所有支援技術的設置速度、SDK 類型和 AI 支援。

框架設置時間健身 CRM 優勢SDK 類型AI 支援
約 5 分鐘手機和網頁的教練控制面板單一代碼庫。已輸入的 SDK完整
少於 5 分鐘為教練團隊提供快速的網頁控制面板。類型化 SDK完整
約 3–7 分鐘跨平台的客戶教練移動應用程序。類型化 SDK完整
快速(5 分鐘)設置為教練工作流程提供伺服器渲染的網頁應用程序。類型化 SDK完整
~3–5 分鐘針對 CRM 工作流程的輕量級網頁集成。輸入型 SDK完整
約 5 分鐘原生 Android 應用程式供教練團隊使用。輸入型 SDK完整
少於 5 分鐘原生 iOS 應用程式供教練團隊使用。輸入型 SDK完整
~3–7 分鐘React 教練評價的網頁 UI。輸入式 SDK完整
快速 (5 分鐘) 設定企業教練團隊的網路應用程式。輸入式 SDK完整
少於 2 分鐘靈活的 GraphQL API 用於客戶時間線。GraphQL API完整
快速 (2 分鐘) 設定REST API 整合用於教練應用程式。REST API完整
約 3 分鐘伺服器端 PHP 後端用於 CRM 工作流程。REST API完整
約 3–7 分鐘.NET 後端用於教練操作。類型化 SDK完整

設置時間反映了從專案啟動到使用該模板架構的第一個 ClientProfile 或 MacroTarget 查詢的預期持續時間。

問題與答案

有關使用此模板構建 Influencer Fitness CRM 後端的常見問題。

隨著量的增長,網紅健身 CRM 實踐如何保持進口質量高?
教練賬戶管理、客戶檔案管理、宏目標規劃如何支持從進口到關閉的網紅健身 CRM 管道?
最佳方法是如何在不減慢日常工作的情況下添加影響者健身 crm 報告字段?
我該如何使用 Flutter 查詢客戶資料和宏?
我該如何保護 Next.js Server Actions 中的檢查數據?
React Native 可以離線快取鍛煉日誌嗎?
我該如何防止未授權訪問客戶時間線?
在Android上顯示宏和訓練的最佳方式是什麼?

受到全球開發者的信賴

與 Back4app 模板一起加入快速交付影響者健身 CRM 產品的團隊

G2 Users Love Us Badge

準備好建置您的影響者健身 CRM 應用程式了嗎?

在幾分鐘內開始您的教練項目。無需信用卡。

選擇技術