Sending and Reviewing Contractor Job Packs
Give external contractors controlled work-order access, support native app recipients outside your organization, and review staged submissions before merge.
Before you start
- The work order exists and belongs to your organization or an organization-owned site.
- The contractor identity is known by email, app user, or both.
- You have admin access to work-order and contractor workflows.
Expected outcome
External contractors can receive a controlled job pack and submit evidence without becoming members of the sending organization.
Decide how the contractor will receive the pack
Use an email grant when the recipient will open a controlled contractor portal link.
Use a native app grant when the recipient already has a Deucalion app account but is not part of the sending organization.
The sending organization keeps ownership of the work order either way. The contractor does not become an organization member just because they receive a job pack.
Create or identify the contractor
Contractor records are organization-scoped and can be linked to:
- Contractor name and email.
- Optional phone and company.
- Optional CRM contact.
- Optional native app user.
When both email and app user are supplied, the email must match the app user identity. This prevents accidentally binding a job pack to the wrong native account.
Create a work-order grant
- Create the grant against the contractor and work order.
- Choose the delivery identity: invited email, recipient app user, or both.
- Choose permission.
- Set expiry by date or days.
- Deliver the generated access URL for portal use, or let the native push notification point the app user to the pack.
Grant permissions are:
| Permission | What it allows |
|---|---|
view | Contractor can view the job pack. |
view_download | Contractor can view the pack and download included safe documents. |
submit_evidence | Contractor can view the pack and submit staged status, evidence, checklist, and media updates. |
An active native grant must be unique for a work order and recipient user. If the same app user needs a new grant for the same work order, revoke the old active grant first.
What the contractor can see
The job pack is built from the work order and safe related data:
- Work-order number, status, priority, description, schedule, and items.
- Site name, address, access notes, scheduling rules, and location fields needed for delivery.
- Work-order documents that are safe for contractor visibility.
- Paged site assets for the work area.
- Contractor and grant metadata needed to display the pack.
The pack does not expose raw access tokens, internal admin notes, unrelated customer workspace records, or data from another organization.
Native app workflow
- The app user receives a push notification when a native grant is created.
- The pack appears in
External Job Packs. - The contractor opens the pack detail from the inbox or deep link.
- The app loads the grant, job pack, and the user's previous submissions.
- The contractor submits updates only when the grant permission is
submit_evidence.
Native job packs are matched to recipientUserId, not organization membership. This is the important distinction for contractors who already use Deucalion with another organization.
Portal workflow
- The contractor opens the grant access URL.
- The portal validates the token, expiry, revocation state, contractor activity, and work-order scope.
- The portal records view activity.
- The contractor can submit updates only when the grant permission is
submit_evidence.
Contractor portal responses use no-store and noindex headers. Treat the URL as sensitive and revoke it if it was sent to the wrong person.
Review contractor submissions
- Open
Contractors. - Filter the submission queue by submitted, accepted, rejected, draft, or all.
- Select a submission.
- Review contractor, work order, proposed status, summary, media count, work-item updates, and checklist count.
- Add a review note.
- Select
Approve and merge,Request changes, orReject.
Approving a submission merges accepted updates into the official work-order record. Requesting changes and rejecting do not mutate the official work order.
Revoke or resend access
- Revoke a grant when the contractor should no longer see the pack.
- Resend a native notification only for active, unexpired, native-bound grants.
- Review grant events when access is disputed.
Events record creation, sent notifications, views, expiry, revocation, denied access, native binding, and submissions.
Troubleshooting
| Problem | What to check |
|---|---|
| The contractor cannot see the pack in the app | Confirm the grant is active, unexpired, not revoked, and bound to the same app user. |
| The contractor can view but cannot submit | Check the grant permission. Submissions require submit_evidence. |
| The portal link returns not found | Check token, expiry, revocation state, contractor activity, and work-order scope. |
| A submission did not update the work order | Open Contractors; submissions must be approved and merged first. |
| A native grant conflicts | Revoke the active native grant for that work order and recipient before creating another. |
Reference surfaces
- Use Contractors for the admin submission queue and contractor APIs.
- Use Work Orders for the official work-order record after merge.
- Use the Admin-to-Engineer Handoff Map for the difference between internal engineers and external contractors.
Handling Customers, Quotes, Work Orders, and Finance
Move from inspection findings to commercial follow-up using CRM, quotes, work orders, and organization-level receivables.
Managing Customer SLAs and Service Policies
Apply account-level SLA snapshots, manage reusable templates, and keep service commitments aligned with customer delivery.