External Shop Dispatch

How jobs are dispatched to external service providers, how shops access and update jobs through the portal, and how fleets receive updates.

Fleet Initiates - Dispatch setup
Notification - Send portal link
Shop Portal - External access
Shop Updates - Work tracking
Fleet Receives - Update notifications
Access - Token management
flowchart TD
    subgraph FleetInitiate["Fleet Initiates Dispatch"]
        F1["Select Job
to Dispatch"] F2{"Choose
Vendor"} F2 -->|Saved| SV["Select from
Vendor List"] F2 -->|Ad-hoc| AH["Enter Shop
Details Manually"] SV --> F3 AH --> F3 F3["Set Access Level
(View or Full)"] F4["Set Expiration
(Default: 30 days)"] F5["Add Message
to Shop"] F1 --> F2 F3 --> F4 --> F5 end F5 --> AC["JobExternalAccess
Created"] AC --> TK["256-bit Secure
Token Generated"] TK --> UP["Job Updated:
is_dispatched = True"] subgraph Notification["Notification Sent"] UP --> NM{"Notification
Method"} NM -->|Email| EM["Email to
Shop Contact"] NM -->|SMS| SM["SMS to
Shop Phone"] NM -->|Both| BO["Email + SMS"] EM --> LK SM --> LK BO --> LK LK["Portal Link
with Token"] end subgraph ShopPortal["Shop Portal Access"] LK --> SP["Shop Clicks
Link"] SP --> VT{"Token
Valid?"} VT -->|No - Expired| EX["Access
Denied"] VT -->|No - Revoked| RV["Access
Denied"] VT -->|Yes| PV["Portal
Loads"] PV --> JD["View Job
Details"] JD --> JN["View Notes
(Shared + Customer)"] JD --> JI["View Images"] JD --> JH["View Status
History"] PV --> AL{"Access
Level"} AL -->|View Only| VO["Read Only
No Updates"] AL -->|Full| FU["Can Make
Updates"] end subgraph ShopUpdates["Shop Updates (Full Access)"] FU --> US["Update
Status"] FU --> AN["Add
Notes"] FU --> LI["Add Line Items
(Labor, Parts, Fees)"] FU --> UI["Upload
Images"] US --> SH["Status History
Updated"] AN --> NT["Note Added
(Shared Visibility)"] LI --> CT["Costs
Recalculated"] UI --> IG["Image
Gallery Updated"] SH --> AT["All Changes
Attributed to
'External: Shop Name'"] NT --> AT CT --> AT IG --> AT end subgraph FleetReceives["Fleet Receives Updates"] AT --> FN{"Status =
Completed?"} FN -->|Yes| CN["Completion
Notification"] FN -->|No| VI["Changes Visible
in Job Detail"] CN --> FM["Notify Fleet
Manager"] CN --> FA["Notify
Assigned User"] CN --> CU{"Customer
Linked?"} CU -->|Yes| CP["Notify
Customer"] CU -->|No| DN["Done"] end subgraph Access["Access Management"] AC --> RA["Fleet Can
Revoke Access"] RA --> DA["Set is_active
= False"] DA --> IL["Shop Loses
Portal Access"] AC --> TR["Track Access"] TR --> LC["last_accessed_at"] TR --> AC2["access_count"] end %% Styling style FleetInitiate fill:#dbeafe,stroke:#3b82f6,stroke-width:2px style Notification fill:#fef3c7,stroke:#f59e0b,stroke-width:2px style ShopPortal fill:#d1fae5,stroke:#10b981,stroke-width:2px style ShopUpdates fill:#ddd6fe,stroke:#8b5cf6,stroke-width:2px style FleetReceives fill:#fce7f3,stroke:#ec4899,stroke-width:2px style Access fill:#fee2e2,stroke:#f43f5e,stroke-width:2px

Configuration Options

Settings that affect external shop dispatch.