经纪人 CRM
使用 AI 代理构建
物流经纪人 CRM 后端

物流经纪人 CRM 后端模板
运输公司评估、货物可见性和经纪人佣金

一个在 Back4app 上的生产就绪的 物流经纪人 CRM 后端,具有 用户运输公司货物评估检查追踪事件佣金条目。用它来评估运输公司,分配货物,发布追踪更新,并从一个后端记录佣金。

经纪人办公桌要点

该模板为您提供了一个具有承运人审查、负载跟踪和佣金计算的物流经纪人CRM后端,以便您的团队可以从第一次电话到支付运行管道。

  1. 承运人审查工作流程建模承运人和审查检查,以便协调员可以批准具有文档记录和状态的承运人。
  2. 实时负载跟踪随着来自现场的发货更新,跟踪负载和跟踪事件条目。
  3. 佣金计算存储与负载记录相关联的佣金条目行,以便经纪费用和付款更易于核对。
  4. 角色感知操作使用 ACL 和 CLP 规则为用户角色,如经纪人、协调员和管理员。
  5. 一个用于网页和移动设备的后端通过相同的 REST 和 GraphQL API 服务 React、Flutter、Next.js 和原生应用程序。

理解物流经纪人 CRM 后端

在物流经纪人 CRM 中,截止日期很少是可选的;结构化记录层将日期转化为警报,而不是惊喜。解决方案是操作性的,而不是激励性的。通过 Back4app 上的 Carrier、Load、VettingCheck、TrackingEvent 和 CommissionEntry,物流经纪人 CRM 团队可以在协作同一案例记录的同时,强制执行职务分离。该架构涵盖用户(用户名、电子邮件、角色、显示名称)、承运人(承运人名称、mc编号、dot编号、状态、保险到期、分配给)、负载(负载编号、取货城市、交付城市、状态、承运人、经纪人、费率)、审查(承运人、检查者、检查类型、结果、备注、检查时间)、追踪事件(负载、位置文本、状态、报告者、事件时间)和佣金条目(负载、经纪人、佣金费率、佣金金额、计算时间),并内置身份验证和工作流控制。连接您喜欢的前端,并从一个后端管理管道。

最佳适用对象:

物流经纪人 CRM承运商审查仪表板负载跟踪门户佣金核对工具经纪人运营 MVP团队选择 BaaS 进行货运工作流程

物流经纪人 CRM:后端快照

培训在物流经纪人 CRM 中有帮助,但无法弥补跨三个工具和四个命名约定的数据分割。

使用此概述查看承运商、负载和审核检查如何结合在一起,在您将工程时间投入特定客户框架之前。

经纪人操作功能

此中心中的每个技术卡片都使用相同的物流模式,包括 User、Carrier、Load、VettingCheck、TrackingEvent 和 CommissionEntry。

承运人审查记录

承运人和VettingCheck存储mcNumber、状态、备注和checkedAt。

装载跟踪时间线

装载和TrackingEvent捕获pickupCity、deliveryCity、状态和eventTime。

佣金计算

CommissionEntry 将载荷与经纪人、佣金率、佣金金额和计算时间相连接。

经纪人工作流程控制

用户角色将经纪人、协调员和管理员分开。

为什么要使用Back4app构建您的物流经纪人CRM后台?

Back4app为物流团队提供了清晰的承运人筛选、货物可见性和佣金追踪路径,因此后台可以专注于货运操作而不是服务器维护。

  • 承运人和货物工作流程在一个模型中: 承运人、货物和审核检查类将审核决策与其影响的货物紧密联系。
  • 佣金计算保持可追溯: 每个货物链接的CommissionEntry行使得付款审核和争议检查更容易。
  • 实时在调度需要的地方: Live Queries可以在REST和GraphQL仍然为经纪人和分析师服务的同时推送TrackingEvent更改。

从一个后台合同中运行承运人筛选、货物状态和佣金对账,适用于每个客户。

经纪人桌面优势

一个物流经纪人 CRM 后端,帮助您的团队更快工作,而不会失去对承运人、载荷或佣金数据的控制。

清洁的承运人筛查

将承运人和审查检查的详细信息存储在一个地方,以便审查备注易于查看。

发货时减少摩擦

使用装载和追踪事件更新向经纪人和客户展示货物进度。

佣金审核更简单

将每个佣金条目行链接到一个装载和经纪人用户,以便进行付款对账。

基于角色的团队访问

应用ACL和CLP规则,以便只有正确的用户角色可以编辑审查或付款字段。

跨渠道的共享模型

相同的架构支持网页仪表板、移动调度工具和后台报告。

更快地启动运营工具

使用AI代理提示来引导货运CRM,而无需从头开始草拟架构。

准备好启动您的物流经纪人CRM了吗?

让Back4app AI代理搭建您的物流经纪人CRM后台,并从一个提示中生成承运人审查、货物追踪和佣金处理。

免费开始——每月50个AI代理提示,无需信用卡

经纪人技术栈

此物流经纪人CRM后端模板中包含的所有内容。

前端
13+ 技术
后端
Back4app
数据库
MongoDB
认证
内置身份验证 + 会话
API
REST 和 GraphQL
实时
Live Queries

承运人到负载的ER图

用于物流经纪人CRM后端架构的实体关系模型。

查看图表源
Mermaid
erDiagram
    User ||--o{ Carrier : "assignedTo"
    User ||--o{ Load : "broker"
    User ||--o{ CommissionEntry : "broker"
    User ||--o{ VettingCheck : "checkedBy"
    User ||--o{ TrackingEvent : "reportedBy"
    Carrier ||--o{ Load : "carrier"
    Carrier ||--o{ VettingCheck : "carrier"
    Load ||--o{ CommissionEntry : "load"
    Load ||--o{ TrackingEvent : "load"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        String displayName
        Date createdAt
        Date updatedAt
    }

    Carrier {
        String objectId PK
        String carrierName
        String mcNumber
        String dotNumber
        String status
        Date insuranceExpiration
        String assignedToId FK
        Date createdAt
        Date updatedAt
    }

    Load {
        String objectId PK
        String loadNumber
        String pickupCity
        String deliveryCity
        String status
        String carrierId FK
        String brokerId FK
        Number rate
        Date createdAt
        Date updatedAt
    }

    CommissionEntry {
        String objectId PK
        String loadId FK
        String brokerId FK
        Number commissionRate
        Number commissionAmount
        Date calculatedAt
        Date createdAt
        Date updatedAt
    }

    VettingCheck {
        String objectId PK
        String carrierId FK
        String checkedById FK
        String checkType
        String result
        String notes
        Date checkedAt
        Date createdAt
        Date updatedAt
    }

    TrackingEvent {
        String objectId PK
        String loadId FK
        String locationText
        String status
        String reportedById FK
        Date eventTime
        Date createdAt
        Date updatedAt
    }

经纪人桌面集成流程

认证、承运人审核、装载跟踪和佣金审查的典型运行流程。

查看图表源
Mermaid
sequenceDiagram
  participant User
  participant CRM as Logistics Broker CRM App
  participant Back4app as Back4app Cloud

  User->>CRM: Sign in to broker desk
  CRM->>Back4app: POST /login
  Back4app-->>CRM: Session token

  User->>CRM: Review carrier vetting queue
  CRM->>Back4app: GET /classes/Carrier?order=-updatedAt
  Back4app-->>CRM: Carrier list with status and mcNumber

  User->>CRM: Open a load and assign carrier
  CRM->>Back4app: PUT /classes/Load/{objectId}
  Back4app-->>CRM: Updated load with carrier pointer

  User->>CRM: Record tracking event
  CRM->>Back4app: POST /classes/TrackingEvent
  Back4app-->>CRM: TrackingEvent objectId

  User->>CRM: Save commission calculation
  CRM->>Back4app: POST /classes/CommissionEntry
  Back4app-->>CRM: CommissionEntry objectId

经纪人实地指南

物流经纪人CRM架构中每个类的完整字段级参考。

字段类型描述必填
objectIdStringAuto-generated unique identifier自动
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., broker, coordinator, admin)
displayNameStringPublic name used in the broker desk
createdAtDateAuto-generated creation timestamp自动
updatedAtDateAuto-generated last-update timestamp自动

8 字段在 User 中

经纪人数据的访问规则

ACL 和 CLP 策略如何保护用户、承运人、货物、审查检查、跟踪事件和佣金记录。

经纪人拥有的访问规则

用户资料只能由经过身份验证的用户编辑,而管理员角色可以管理团队访问。

承运人审查控制

只有授权人员可以创建或更改承运人审查数据和审查检查结果。

加载和委托边界

限制加载更新和委托条目更改到指定角色,然后在云代码中验证支付编辑。

JSON Schema

原始 JSON 模式定义,准备复制到 Back4app 或用作实施参考。

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Carrier",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "carrierName": {
          "type": "String",
          "required": true
        },
        "mcNumber": {
          "type": "String",
          "required": true
        },
        "dotNumber": {
          "type": "String",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "insuranceExpiration": {
          "type": "Date",
          "required": false
        },
        "assignedTo": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Load",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "loadNumber": {
          "type": "String",
          "required": true
        },
        "pickupCity": {
          "type": "String",
          "required": true
        },
        "deliveryCity": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "carrier": {
          "type": "Pointer",
          "required": false,
          "targetClass": "Carrier"
        },
        "broker": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "rate": {
          "type": "Number",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CommissionEntry",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "load": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Load"
        },
        "broker": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "commissionRate": {
          "type": "Number",
          "required": true
        },
        "commissionAmount": {
          "type": "Number",
          "required": true
        },
        "calculatedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "VettingCheck",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "carrier": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Carrier"
        },
        "checkedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "checkType": {
          "type": "String",
          "required": true
        },
        "result": {
          "type": "String",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "checkedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "TrackingEvent",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "load": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Load"
        },
        "locationText": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "reportedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "eventTime": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AI 代理生成提示

使用 Back4app AI 代理从此模板生成一个真实的物流经纪人 CRM 应用,包括前端、后端、身份验证以及承运人、加载和佣金流程。

Back4app AI 代理
准备构建
在 Back4app 上创建一个物流经纪人 CRM 应用后端,使用以下确切的架构和行为。

架构:
1. 用户(使用 Back4app 内置身份验证):用户名,电子邮件,密码,角色,显示名称;objectId,createdAt,updatedAt(系统)。
2. 承运人:carrierName(字符串,必需),mcNumber(字符串,必需),dotNumber(字符串,可选),状态(字符串,必需),保险到期(日期,可选),分配给(指向用户的指针,必需);objectId,createdAt,updatedAt(系统)。
3. 货物:loadNumber(字符串,必需),pickupCity(字符串,必需),deliveryCity(字符串,必需),状态(字符串,必需),承运人(指向承运人的指针,可选),经纪人(指向用户的指针,必需),费率(数字,必需);objectId,createdAt,updatedAt(系统)。
4. 佣金条目:load(指向货物的指针,必需),经纪人(指向用户的指针,必需),佣金率(数字,必需),佣金金额(数字,必需),计算于(日期,必需);objectId,createdAt,updatedAt(系统)。
5. 验证检查:承运人(指向承运人的指针,必需),检查人(指向用户的指针,必需),检查类型(字符串,必需),结果(字符串,必需),备注(字符串,可选),检查时间(日期,必需);objectId,createdAt,updatedAt(系统)。
6. 跟踪事件:load(指向货物的指针,必需),位置文本(字符串,必需),状态(字符串,必需),报告人(指向用户的指针,必需),事件时间(日期,必需);objectId,createdAt,updatedAt(系统)。

安全:
- 经纪人和协调员可以创建和更新分配给他们的桌面的承运人、货物、验证检查、跟踪事件和佣金条目。
- 承运人验证编辑应仅限于管理员和分配的工作人员。
- 货物仅接受引用已批准承运人记录的承运人指针。
- 佣金条目应仅由经过身份验证的经纪人工作人员可写,并且佣金金额应基于货物费率和佣金率。

身份验证:
- 注册,登录,注销。

行为:
- 按 mcNumber、dotNumber、状态和保险到期验证承运人。
- 预订货物,附加承运人,发布跟踪事件,并根据货物费率计算佣金。
- 在仪表板上显示最近的跟踪事件和验证检查记录。

交付:
- Back4app 应用程序,包含架构、CLP、ACL、示例数据,以及面向经纪人的前端,用于承运人验证、货物跟踪和佣金计算。

按下下面的按钮以使用预填充此模板提示的代理。

这是没有技术后缀的基础提示。您可以在之后调整生成的前端堆栈。

几分钟内部署每月 50 个免费提示无需信用卡

经纪人 API 沙盒

尝试针对物流经纪人 CRM 架构的 REST 和 GraphQL 端点。响应使用模拟数据,无需 Back4app 账户。

加载玩具环境中…

使用与此模板相同的架构。

选择您的技术栈

展开每个卡片以查看如何将Carrier、Load和VettingCheck与您选择的技术栈集成。

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合同。

统一的货运工作流程结构

使用一致的架构管理承运商、货物、审核检查和佣金。

运营团队的承运商审核

存储每个承运商的审核状态、保险详情和审查者备注。

经纪人和客户的货物追踪

跟踪每个装载情况的事件更新,调度员和客户代表可以阅读。

佣金可见性以便审查支付

将每个CommissionEntry与装载和中介用户关联,以便更容易确认结算。

REST/GraphQL API 为物流客户提供服务

将仪表板、移动工具和报告系统与一个后端连接。

可扩展的工作流程架构

稍后添加费率、文件或索赔,而无需重建核心CRM模型。

客户门户框架比较

比较所有支持技术的设置速度、SDK 风格和 AI 支持。

框架设置时间物流经纪人 CRM 优势SDK 类型AI 支持
约 5 分钟用于移动和网络的经纪人CRM单一代码库。类型化 SDK完整
少于5分钟用于承运人审查和货物的快速Web仪表板。类型化SDK完整
约3–7分钟用于调度和佣金的跨平台移动应用。类型化SDK完整
快速(5分钟)设置用于运营团队的服务器渲染经纪人工作区。类型化SDK完整
~3–5分钟轻量级物流CRM网页集成。已输入的SDK完整
大约5分钟用于现场调度和审核的Android本机应用。已输入的SDK完整
少于5分钟适用于活动经纪人的iOS本机应用。已输入的SDK完整
~3–7分钟React提供承运人和货物视图的网络用户界面。输入的SDK完整
快速(5分钟)设置面向经纪人操作的企业网络应用。输入的SDK完整
不到2分钟为经纪人CRM仪表板提供灵活的GraphQL API。GraphQL API完整
快速(2分钟)设置REST API 集成用于承运人审核和跟踪。REST API完整
~3分钟服务器端 PHP 后端用于货运操作。REST API完整
~3–7分钟.NET 后端用于经纪人 CRM 服务。类型化 SDK完整

设置时间反映了从项目引导到首次载体、加载或使用此模板模式的委托查询的预期持续时间。

经纪人 CRM 问题

关于使用此模板构建物流经纪人 CRM 后端的常见问题。

在工作敏感且有截止期限的情况下,健康的物流经纪人 CRM 管道看起来是什么样的?
物流经纪人 CRM 团队应如何在不含糊的情况下建模客户、事项和内部交接?
这个物流经纪人 CRM 层可以通过新的事项类型和 Intake 渠道进行扩展吗?
我如何使用 Flutter 对承运人和负载运行查询?
如何使用 Next.js Server Actions 管理经纪人权限?
React 本机可以离线缓存承运人审查和货物跟踪吗?
我如何防止未授权的承运人更新?
在 Android 上显示佣金状态的最佳方法是什么?
货物跟踪流程的端到端工作方式是什么?
这个物流经纪CRM模板由哪些类驱动?

全球开发者信赖

使用 Back4app 模板,加入更快交付物流经纪人 CRM 产品的团队

G2 Users Love Us Badge

准备好构建您的物流经纪人 CRM 吗?

在几分钟内启动您的物流经纪人 CRM 项目。无需信用卡。

选择技术