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.