zilmate 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/.env.example +14 -0
  2. package/README.md +326 -0
  3. package/agent-docs.md +264 -0
  4. package/dist/agents/chat.agent.d.ts +30 -0
  5. package/dist/agents/chat.agent.d.ts.map +1 -0
  6. package/dist/agents/chat.agent.js +16 -0
  7. package/dist/agents/chat.agent.js.map +1 -0
  8. package/dist/agents/docs-research.agent.d.ts +127 -0
  9. package/dist/agents/docs-research.agent.d.ts.map +1 -0
  10. package/dist/agents/docs-research.agent.js +29 -0
  11. package/dist/agents/docs-research.agent.js.map +1 -0
  12. package/dist/agents/image.agent.d.ts +9 -0
  13. package/dist/agents/image.agent.d.ts.map +1 -0
  14. package/dist/agents/image.agent.js +12 -0
  15. package/dist/agents/image.agent.js.map +1 -0
  16. package/dist/agents/manager.d.ts +140 -0
  17. package/dist/agents/manager.d.ts.map +1 -0
  18. package/dist/agents/manager.js +150 -0
  19. package/dist/agents/manager.js.map +1 -0
  20. package/dist/agents/post.agent.d.ts +7 -0
  21. package/dist/agents/post.agent.d.ts.map +1 -0
  22. package/dist/agents/post.agent.js +12 -0
  23. package/dist/agents/post.agent.js.map +1 -0
  24. package/dist/agents/quick-help.agent.d.ts +30 -0
  25. package/dist/agents/quick-help.agent.d.ts.map +1 -0
  26. package/dist/agents/quick-help.agent.js +16 -0
  27. package/dist/agents/quick-help.agent.js.map +1 -0
  28. package/dist/cli/confirm.d.ts +5 -0
  29. package/dist/cli/confirm.d.ts.map +1 -0
  30. package/dist/cli/confirm.js +35 -0
  31. package/dist/cli/confirm.js.map +1 -0
  32. package/dist/cli/doctor.d.ts +53 -0
  33. package/dist/cli/doctor.d.ts.map +1 -0
  34. package/dist/cli/doctor.js +141 -0
  35. package/dist/cli/doctor.js.map +1 -0
  36. package/dist/cli/format.d.ts +12 -0
  37. package/dist/cli/format.d.ts.map +1 -0
  38. package/dist/cli/format.js +167 -0
  39. package/dist/cli/format.js.map +1 -0
  40. package/dist/cli/interactive.d.ts +2 -0
  41. package/dist/cli/interactive.d.ts.map +1 -0
  42. package/dist/cli/interactive.js +80 -0
  43. package/dist/cli/interactive.js.map +1 -0
  44. package/dist/cli/setup.d.ts +14 -0
  45. package/dist/cli/setup.d.ts.map +1 -0
  46. package/dist/cli/setup.js +145 -0
  47. package/dist/cli/setup.js.map +1 -0
  48. package/dist/cli/triggers.d.ts +43 -0
  49. package/dist/cli/triggers.d.ts.map +1 -0
  50. package/dist/cli/triggers.js +221 -0
  51. package/dist/cli/triggers.js.map +1 -0
  52. package/dist/config/env.d.ts +26 -0
  53. package/dist/config/env.d.ts.map +1 -0
  54. package/dist/config/env.js +59 -0
  55. package/dist/config/env.js.map +1 -0
  56. package/dist/config/models.d.ts +22 -0
  57. package/dist/config/models.d.ts.map +1 -0
  58. package/dist/config/models.js +38 -0
  59. package/dist/config/models.js.map +1 -0
  60. package/dist/index.d.ts +3 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +452 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/memory/composio-session.d.ts +9 -0
  65. package/dist/memory/composio-session.d.ts.map +1 -0
  66. package/dist/memory/composio-session.js +33 -0
  67. package/dist/memory/composio-session.js.map +1 -0
  68. package/dist/memory/history.d.ts +11 -0
  69. package/dist/memory/history.d.ts.map +1 -0
  70. package/dist/memory/history.js +33 -0
  71. package/dist/memory/history.js.map +1 -0
  72. package/dist/memory/local-store.d.ts +4 -0
  73. package/dist/memory/local-store.d.ts.map +1 -0
  74. package/dist/memory/local-store.js +24 -0
  75. package/dist/memory/local-store.js.map +1 -0
  76. package/dist/memory/long-term.d.ts +13 -0
  77. package/dist/memory/long-term.d.ts.map +1 -0
  78. package/dist/memory/long-term.js +67 -0
  79. package/dist/memory/long-term.js.map +1 -0
  80. package/dist/memory/redis.d.ts +4 -0
  81. package/dist/memory/redis.d.ts.map +1 -0
  82. package/dist/memory/redis.js +18 -0
  83. package/dist/memory/redis.js.map +1 -0
  84. package/dist/memory/scratchpad.d.ts +3 -0
  85. package/dist/memory/scratchpad.d.ts.map +1 -0
  86. package/dist/memory/scratchpad.js +22 -0
  87. package/dist/memory/scratchpad.js.map +1 -0
  88. package/dist/runtime/confirm.d.ts +13 -0
  89. package/dist/runtime/confirm.d.ts.map +1 -0
  90. package/dist/runtime/confirm.js +17 -0
  91. package/dist/runtime/confirm.js.map +1 -0
  92. package/dist/runtime/progress.d.ts +8 -0
  93. package/dist/runtime/progress.d.ts.map +1 -0
  94. package/dist/runtime/progress.js +15 -0
  95. package/dist/runtime/progress.js.map +1 -0
  96. package/dist/safety/approvals.d.ts +6 -0
  97. package/dist/safety/approvals.d.ts.map +1 -0
  98. package/dist/safety/approvals.js +8 -0
  99. package/dist/safety/approvals.js.map +1 -0
  100. package/dist/safety/limits.d.ts +8 -0
  101. package/dist/safety/limits.d.ts.map +1 -0
  102. package/dist/safety/limits.js +10 -0
  103. package/dist/safety/limits.js.map +1 -0
  104. package/dist/safety/redaction.d.ts +2 -0
  105. package/dist/safety/redaction.d.ts.map +1 -0
  106. package/dist/safety/redaction.js +9 -0
  107. package/dist/safety/redaction.js.map +1 -0
  108. package/dist/server.d.ts +54 -0
  109. package/dist/server.d.ts.map +1 -0
  110. package/dist/server.js +69 -0
  111. package/dist/server.js.map +1 -0
  112. package/dist/tools/app-knowledge.tool.d.ts +4 -0
  113. package/dist/tools/app-knowledge.tool.d.ts.map +1 -0
  114. package/dist/tools/app-knowledge.tool.js +30 -0
  115. package/dist/tools/app-knowledge.tool.js.map +1 -0
  116. package/dist/tools/composio.tool.d.ts +15 -0
  117. package/dist/tools/composio.tool.d.ts.map +1 -0
  118. package/dist/tools/composio.tool.js +272 -0
  119. package/dist/tools/composio.tool.js.map +1 -0
  120. package/dist/tools/docs-fetch.tool.d.ts +6 -0
  121. package/dist/tools/docs-fetch.tool.d.ts.map +1 -0
  122. package/dist/tools/docs-fetch.tool.js +62 -0
  123. package/dist/tools/docs-fetch.tool.js.map +1 -0
  124. package/dist/tools/docs-search.tool.d.ts +4 -0
  125. package/dist/tools/docs-search.tool.d.ts.map +1 -0
  126. package/dist/tools/docs-search.tool.js +14 -0
  127. package/dist/tools/docs-search.tool.js.map +1 -0
  128. package/dist/tools/image-generate.tool.d.ts +22 -0
  129. package/dist/tools/image-generate.tool.d.ts.map +1 -0
  130. package/dist/tools/image-generate.tool.js +113 -0
  131. package/dist/tools/image-generate.tool.js.map +1 -0
  132. package/dist/tools/memory.tool.d.ts +18 -0
  133. package/dist/tools/memory.tool.d.ts.map +1 -0
  134. package/dist/tools/memory.tool.js +53 -0
  135. package/dist/tools/memory.tool.js.map +1 -0
  136. package/dist/tools/post-generate.tool.d.ts +5 -0
  137. package/dist/tools/post-generate.tool.d.ts.map +1 -0
  138. package/dist/tools/post-generate.tool.js +19 -0
  139. package/dist/tools/post-generate.tool.js.map +1 -0
  140. package/dist/tools/scratchpad.tool.d.ts +7 -0
  141. package/dist/tools/scratchpad.tool.d.ts.map +1 -0
  142. package/dist/tools/scratchpad.tool.js +29 -0
  143. package/dist/tools/scratchpad.tool.js.map +1 -0
  144. package/dist/tools/triggers.tool.d.ts +72 -0
  145. package/dist/tools/triggers.tool.d.ts.map +1 -0
  146. package/dist/tools/triggers.tool.js +108 -0
  147. package/dist/tools/triggers.tool.js.map +1 -0
  148. package/dist/tools/web-search.tool.d.ts +94 -0
  149. package/dist/tools/web-search.tool.d.ts.map +1 -0
  150. package/dist/tools/web-search.tool.js +214 -0
  151. package/dist/tools/web-search.tool.js.map +1 -0
  152. package/dist/tools/zilo-docs.tool.d.ts +26 -0
  153. package/dist/tools/zilo-docs.tool.d.ts.map +1 -0
  154. package/dist/tools/zilo-docs.tool.js +150 -0
  155. package/dist/tools/zilo-docs.tool.js.map +1 -0
  156. package/install.ps1 +62 -0
  157. package/package.json +88 -0
  158. package/src/doc/README.md +49 -0
  159. package/src/doc/admin-tools-and-sms-campaigns.md +99 -0
  160. package/src/doc/escalation-checklist.md +97 -0
  161. package/src/doc/payments-and-payouts.md +82 -0
  162. package/src/doc/shift-lifecycle-and-disputes.md +95 -0
  163. package/src/doc/support-macros.md +40 -0
  164. package/src/doc/venue-support-playbook.md +145 -0
  165. package/src/doc/verification-and-trust.md +88 -0
  166. package/src/doc/worker-support-playbook.md +160 -0
@@ -0,0 +1,95 @@
1
+ # Shift Lifecycle And Disputes
2
+
3
+ This guide explains how shifts move through the platform and how support should handle attendance, cancellations, no-shows, disputes, and completion.
4
+
5
+ ## Shift Statuses
6
+
7
+ Typical statuses:
8
+
9
+ - Draft: venue started but has not posted.
10
+ - Open: workers can apply.
11
+ - Filled: venue accepted a worker.
12
+ - In progress: worker clocked in.
13
+ - Completed: work done and ready for completion/payment processing.
14
+ - Cancelled: shift no longer happening.
15
+
16
+ ## Standby Shifts
17
+
18
+ Standby shifts should not display as normal available paid shifts immediately. They should only become relevant when the primary worker does not show or the venue activates standby need.
19
+
20
+ Escalate if:
21
+
22
+ - Worker sees primary and standby shift at the same time.
23
+ - Standby shift shows `0` pay and still allows normal application.
24
+
25
+ ## Applications
26
+
27
+ Workers apply for shifts. Venues review applications, match score, trust details, ratings, role history, videos, and certifications.
28
+
29
+ Support should check:
30
+
31
+ - Application status: pending, accepted, declined, withdrawn.
32
+ - Shift owner.
33
+ - Worker identity verification status.
34
+ - Worker role match.
35
+
36
+ ## Acceptance
37
+
38
+ When a venue accepts a worker:
39
+
40
+ - Worker should see accepted shift.
41
+ - Worker and venue should be able to message.
42
+ - Ghana workers should receive SMS if phone is valid.
43
+ - Venue should see attendance/arrival state where available.
44
+
45
+ ## Clock In And Clock Out
46
+
47
+ Clock-in can happen by:
48
+
49
+ - Venue QR code.
50
+ - Worker manual clock-in where allowed.
51
+
52
+ Expected behavior:
53
+
54
+ - Once clocked in, shift should show active.
55
+ - Returning to the shift page should not ask for clock-in again.
56
+ - Clock-out should close the active time entry.
57
+
58
+ Escalate if duplicate time entries appear or status resets.
59
+
60
+ ## No-Shows
61
+
62
+ Each worker no-show should reduce reliability by `-3`.
63
+
64
+ Support should:
65
+
66
+ - Confirm shift date/time.
67
+ - Confirm venue marked no-show.
68
+ - Check messages/arrival evidence.
69
+ - Escalate disputes if worker contests.
70
+
71
+ ## Cancellations
72
+
73
+ Worker cancellation can affect reliability and fees. Venue cancellation can trigger refund/worker compensation rules depending on timing.
74
+
75
+ Escalate if:
76
+
77
+ - Worker bypasses cancellation rules.
78
+ - Venue is charged incorrectly.
79
+ - Refund is stuck.
80
+ - Worker says venue canceled but marked worker no-show.
81
+
82
+ ## Disputes
83
+
84
+ Collect:
85
+
86
+ - Shift ID or role/date/venue.
87
+ - Worker and venue user IDs if available.
88
+ - Timeline.
89
+ - Messages.
90
+ - Clock-in/out records.
91
+ - Payment records.
92
+ - Screenshots if user has them.
93
+
94
+ Do not decide high-risk disputes without admin review.
95
+
@@ -0,0 +1,40 @@
1
+ # Support Macros
2
+
3
+ Use these as starting points. Personalize them with the user name, shift, country, or provider.
4
+
5
+ ## Worker Cannot See Shifts
6
+
7
+ Hi {{name}}, I can help. ZiloShift shows workers shifts in their saved city and matching roles. Please check that your country, city, town, and roles are saved under Profile. If those are correct and you still cannot see same-city shifts, send us the role and city you expect to see and we will investigate.
8
+
9
+ ## Worker Verification Pending
10
+
11
+ Hi {{name}}, your verification may still be syncing. Ghana workers must complete front card, back card, liveness, and name match checks. Non-Ghana workers complete Didit verification. If you completed everything and still see pending, send us the time you verified and the account email so we can review the verification record.
12
+
13
+ ## Ghana Card Name Mismatch
14
+
15
+ Hi {{name}}, the name on your ZiloShift account must match the name on your Ghana Card. This protects workers and venues from identity misuse. If your account name was entered incorrectly, we need to escalate it for review instead of changing it directly.
16
+
17
+ ## Venue Billing Failed
18
+
19
+ Hi {{name}}, billing setup did not complete. I’ll check the payment provider connection for your country and the exact error returned. Ghana venues use Hubtel checkout, so if the checkout page did not open or returned an upstream error, we may need engineering to review the gateway logs.
20
+
21
+ ## Venue Cannot See Applicants
22
+
23
+ Hi {{name}}, I’ll check whether the shift is open, whether workers have applied, and whether the applicant matching finished loading. If the applicant page stays blank for more than a few seconds, we’ll treat it as a loading issue and escalate it.
24
+
25
+ ## Worker Accepted For Shift
26
+
27
+ Hi {{name}}, congratulations on being accepted. Please open the shift details and Messages to coordinate with the venue. On the day of the shift, clock in using the venue QR code or the available clock-in button, then clock out when finished.
28
+
29
+ ## SMS Campaign Test Failed
30
+
31
+ The test SMS reached the gateway but Hubtel rejected it. Please check the returned details for phone format, sender ID length, SMS account credit, recipient blacklist status, or credential issues.
32
+
33
+ ## Payment Delay
34
+
35
+ Hi {{name}}, I can check the payment status. Payout depends on the shift being completed, the venue/payment provider confirming funds, and your payout details being valid. Please send the shift date, venue/company name, and the payout method you selected.
36
+
37
+ ## Dispute Received
38
+
39
+ Hi {{name}}, thanks for explaining. We’ll review the shift timeline, messages, clock-in/out records, and payment status before making a decision. Please send any screenshots or details that show what happened.
40
+
@@ -0,0 +1,145 @@
1
+ # Venue Support Playbook
2
+
3
+ Use this guide when helping venues set up company profiles, connect billing, post shifts, review applicants, accept workers, monitor attendance, message workers, and manage payments.
4
+
5
+ ## Venue Journey
6
+
7
+ 1. Sign up as a venue.
8
+ 2. Complete venue setup: company name, country, city, town, company type, about/company description.
9
+ 3. Verify business where required.
10
+ 4. Connect billing/payment.
11
+ 5. Post shifts with role, date, time, rate, description, dress code, instructions, certifications.
12
+ 6. Review applicants and AI match information.
13
+ 7. Accept worker.
14
+ 8. Coordinate in Messages.
15
+ 9. Confirm clock-in/out and completion.
16
+ 10. Handle ratings, disputes, or future preferred workers.
17
+
18
+ ## Common Venue Issues
19
+
20
+ ### Venue Cannot Connect Billing
21
+
22
+ Check country:
23
+
24
+ - Ghana venues use Hubtel checkout/pre-auth.
25
+ - African countries supported by Paystack should use Paystack.
26
+ - India uses Razorpay.
27
+ - Other countries generally use Stripe.
28
+
29
+ For Ghana Hubtel errors, check:
30
+
31
+ - Gateway server has real `SUPABASE_SERVICE_ROLE_KEY`, not anon.
32
+ - `payments` table has required compatibility columns such as `worker_amount`.
33
+ - Hubtel gateway URL/token are configured.
34
+ - Hubtel account number and checkout credentials are configured.
35
+
36
+ Explain:
37
+
38
+ > Billing setup must complete before some payment-related actions can work. Ghana uses Hubtel, so the checkout page should open from the Account page.
39
+
40
+ Escalate if:
41
+
42
+ - Error says upstream 500.
43
+ - Error mentions schema cache.
44
+ - Error mentions service_role key.
45
+ - Hubtel checkout opens but never returns connected.
46
+
47
+ ### Venue Cannot Post A Shift
48
+
49
+ Check:
50
+
51
+ - Venue setup completed.
52
+ - Venue country/city/town saved.
53
+ - Company about/description exists.
54
+ - Required role selected.
55
+ - Date/time/rate are valid.
56
+ - Billing requirements are satisfied for that country.
57
+
58
+ Escalate if:
59
+
60
+ - UI accepts inputs but shift does not save.
61
+ - Role list is missing categories.
62
+ - Rate suggestion blocks posting.
63
+
64
+ ### Venue Cannot See Applicants
65
+
66
+ Check:
67
+
68
+ - Shift is open or has applications.
69
+ - Applicants have applied.
70
+ - Venue is the owner of the shift.
71
+ - AI match may take a few seconds; loading state should show.
72
+
73
+ Explain:
74
+
75
+ > Applicant matching can take a moment because ZiloShift scores role fit, reliability, location, and profile trust signals.
76
+
77
+ Escalate if:
78
+
79
+ - Blank screen remains after 10 seconds.
80
+ - AI matching repeats every time and causes delays.
81
+ - Applicant list appears for wrong venue.
82
+
83
+ ### Venue Wants To See Worker Trust Signals
84
+
85
+ Venues should see:
86
+
87
+ - Worker rating and reliability.
88
+ - Completed shift count.
89
+ - Work history summary.
90
+ - Role history.
91
+ - Intro video, if uploaded.
92
+ - Certification badges and expiry dates, if available.
93
+ - Reference checks where supported.
94
+
95
+ Escalate if:
96
+
97
+ - Video does not play.
98
+ - Certifications are uploaded but not shown.
99
+ - Ratings from past roles do not appear.
100
+
101
+ ### Venue Accepted Worker But Cannot Track Attendance
102
+
103
+ Check:
104
+
105
+ - Worker accepted status.
106
+ - Worker has clocked in.
107
+ - Map/arrival view availability.
108
+ - Messages thread exists.
109
+
110
+ Explain:
111
+
112
+ > After accepting a worker, the venue should be able to coordinate through Messages and see attendance status. If live travel tracking is enabled, it should appear from the shift/applicant view.
113
+
114
+ Escalate if:
115
+
116
+ - Worker says they clocked in but venue still sees only Hired.
117
+ - QR clock-in does not generate or scan.
118
+ - Map does not load.
119
+
120
+ ## Venue Account Updates
121
+
122
+ Venues should be able to update:
123
+
124
+ - Company about.
125
+ - City/town.
126
+ - Contact phone.
127
+ - Billing/payout connection where applicable.
128
+ - Team details if enterprise features are enabled.
129
+
130
+ Support should encourage venues to fill in company descriptions because workers use that to understand what the company does and what is expected.
131
+
132
+ ## Venue Tone Guide
133
+
134
+ Use operational language:
135
+
136
+ > I’ll check the shift status, billing connection, and applicant list first. Those three usually explain why a venue cannot hire or view workers.
137
+
138
+ Avoid vague language:
139
+
140
+ > Maybe the worker did not apply.
141
+
142
+ Better:
143
+
144
+ > I can see whether applications exist and whether the applicant list is failing to load.
145
+
@@ -0,0 +1,88 @@
1
+ # Verification And Trust
2
+
3
+ This guide explains how support should handle identity verification, Ghana Card checks, Didit verification, name matching, and trust signals.
4
+
5
+ ## Verification Routes By Country
6
+
7
+ - Ghana workers: Ghana Card flow with card front, card back, liveness/selfie, and Hubtel verification.
8
+ - Non-Ghana workers: Didit KYC flow.
9
+ - Venues: business verification flow where required.
10
+
11
+ ## Ghana Worker Verification
12
+
13
+ The Ghana flow should:
14
+
15
+ 1. Capture front of Ghana Card.
16
+ 2. Capture back of Ghana Card.
17
+ 3. Capture liveness selfie.
18
+ 4. Scan card data.
19
+ 5. Check profile name against card name before server verification.
20
+ 6. Send verified card fields to server-side Hubtel verification.
21
+ 7. Store verification result and return status to frontend.
22
+
23
+ Credentials must stay server-side. Never expose Hubtel Basic Auth or account numbers to users.
24
+
25
+ ## Name Matching Rule
26
+
27
+ The worker profile name must match the ID holder. This prevents a person from using another person’s Ghana Card.
28
+
29
+ If names do not match:
30
+
31
+ - Ask the worker to confirm their account legal name.
32
+ - Do not manually change names after signup without controlled support review.
33
+ - Escalate if the worker says their legal name was entered incorrectly.
34
+
35
+ ## Name Change Risk
36
+
37
+ Workers should not freely change first or last name after signup because a bad actor could:
38
+
39
+ 1. Change account name to match a stolen card.
40
+ 2. Verify with stolen card.
41
+ 3. Change account name back.
42
+
43
+ Support action:
44
+
45
+ - Treat name changes as sensitive.
46
+ - Require admin review and proof.
47
+ - Keep an audit trail.
48
+
49
+ ## Didit Verification
50
+
51
+ Non-Ghanaian users use Didit. Support should:
52
+
53
+ - Confirm user country.
54
+ - Confirm they clicked Verify Now.
55
+ - Ask for the verification status shown.
56
+ - Ask whether they returned to the app after completing Didit.
57
+
58
+ Escalate if:
59
+
60
+ - Didit success does not sync back.
61
+ - Didit webhook failed.
62
+ - User is stuck pending after completion.
63
+
64
+ ## Admin Verification Queue
65
+
66
+ Admins may review:
67
+
68
+ - Pending ID verifications.
69
+ - Rejected verification reasons.
70
+ - Uploaded card/selfie assets where allowed.
71
+ - Ghana verification raw response summary.
72
+
73
+ Admins should not approve identities based only on a user message.
74
+
75
+ ## Trust Signals For Venues
76
+
77
+ Trust features venues may use:
78
+
79
+ - Ratings from past roles.
80
+ - Completed shift count.
81
+ - Reliability score.
82
+ - No-show history.
83
+ - Certifications.
84
+ - Intro video.
85
+ - Reference checks.
86
+
87
+ Support should explain these as confidence signals, not guarantees.
88
+
@@ -0,0 +1,160 @@
1
+ # Worker Support Playbook
2
+
3
+ Use this guide when helping workers sign up, verify identity, find shifts, apply, clock in/out, message venues, update profile details, or get paid.
4
+
5
+ ## Worker Journey
6
+
7
+ 1. Sign up as a worker.
8
+ 2. Complete worker setup: country, city, town, roles, experience, certifications, availability, phone.
9
+ 3. Verify identity.
10
+ 4. Add payout details.
11
+ 5. Browse eligible shifts in their city.
12
+ 6. Apply for shifts matching their roles and location.
13
+ 7. If accepted, coordinate with the venue in Messages.
14
+ 8. Clock in when the shift starts.
15
+ 9. Clock out when the shift ends.
16
+ 10. Wait for completion processing and payout.
17
+
18
+ ## Common Worker Issues
19
+
20
+ ### Worker Cannot See Shifts
21
+
22
+ Check:
23
+
24
+ - Worker country, city, and town are saved.
25
+ - Shift is in the same city as the worker.
26
+ - Worker has selected roles matching available shifts.
27
+ - Shift status is open.
28
+ - Shift is not standby-only unless needed.
29
+ - Worker profile setup is completed.
30
+
31
+ Explain:
32
+
33
+ > ZiloShift shows workers shifts in their own city so they do not travel too far or apply for work they cannot realistically attend. Anyone in the same city should see shifts across towns in that city.
34
+
35
+ Escalate if:
36
+
37
+ - Same-city open shifts exist but do not show.
38
+ - Role filters are wrong after profile updates.
39
+ - The worker sees corrupted text or missing company names.
40
+
41
+ ### Worker Wants To Verify Identity
42
+
43
+ Ghanaian workers use the Ghana Card verification flow. Other countries use Didit verification.
44
+
45
+ Check:
46
+
47
+ - Worker country is correct.
48
+ - Ghanaian workers should see Verify Now and be routed to Ghana verification.
49
+ - Non-Ghanaian workers should be routed through Didit.
50
+
51
+ Do not:
52
+
53
+ - Ask for full ID numbers over chat.
54
+ - Upload documents for the user.
55
+ - Mark identity verified manually without admin review.
56
+
57
+ ### Worker Is Ghanaian And Verification Fails
58
+
59
+ Ask:
60
+
61
+ - Did they scan the front and back of the Ghana Card?
62
+ - Did the liveness camera show their face?
63
+ - Does the name on the account match the name on the card?
64
+ - Did they use a clear, well-lit card image?
65
+
66
+ Explain:
67
+
68
+ > Ghana verification checks the card data and compares it against the worker profile details. If the profile name does not match the card, verification may stop before sending details for Hubtel verification.
69
+
70
+ Escalate if:
71
+
72
+ - Camera is blank.
73
+ - Front/back scan captures but verification never proceeds.
74
+ - Hubtel returns a provider error.
75
+ - User was verified but still sees pending.
76
+
77
+ ### Worker Cannot Clock In
78
+
79
+ Check:
80
+
81
+ - Worker has been accepted for the shift.
82
+ - Shift date/time has started or is close enough to start.
83
+ - QR code clock-in is available from venue, or worker manual clock-in is enabled.
84
+ - There is no existing active time entry.
85
+
86
+ Explain:
87
+
88
+ > Once clocked in, the shift should move to Active and remain active even if the worker leaves and returns to the page.
89
+
90
+ Escalate if:
91
+
92
+ - Worker clocked in successfully but the page later asks them to clock in again.
93
+ - Duplicate time entries exist.
94
+ - Clock-in works for QR but not manual, or vice versa.
95
+
96
+ ### Worker Was Accepted But Did Not Receive SMS
97
+
98
+ For Ghana workers, acceptance SMS should be sent through Hubtel.
99
+
100
+ Check:
101
+
102
+ - Worker country is GH.
103
+ - Profile phone number is present and valid.
104
+ - Phone can normalize to Ghana MSISDN format, for example `23324xxxxxxx`.
105
+ - Shift acceptance event happened.
106
+
107
+ Escalate if:
108
+
109
+ - Phone is valid but no SMS log/campaign result exists.
110
+ - Hubtel gateway returns 400, 401, 402, or 500.
111
+
112
+ ### Worker Payout Issues
113
+
114
+ Check:
115
+
116
+ - Country and payout provider:
117
+ - Ghana: Hubtel mobile money or bank.
118
+ - Nigeria/Kenya/South Africa: Paystack.
119
+ - India: Razorpay.
120
+ - Other markets: Stripe.
121
+ - Worker completed the shift.
122
+ - Shift was processed by completion function.
123
+ - Worker payout details are saved.
124
+
125
+ Do not promise exact payout timing unless the payment status is confirmed.
126
+
127
+ Escalate if:
128
+
129
+ - Payment captured but payout not created.
130
+ - Payout provider rejected account details.
131
+ - Worker was paid the wrong amount.
132
+ - Any fraud or duplicate-account concern exists.
133
+
134
+ ## Worker Profile Support
135
+
136
+ Workers can update:
137
+
138
+ - Phone.
139
+ - City/town.
140
+ - Roles.
141
+ - Experience.
142
+ - Certifications and certificate uploads.
143
+ - Availability.
144
+ - Payout details.
145
+
146
+ Workers should not be able to update legal first/last name after signup without controlled support review, because name changes can weaken identity checks.
147
+
148
+ ## Worker Tone Guide
149
+
150
+ Use clear, supportive language:
151
+
152
+ > I can help with that. First I’ll check your account country, city, and role settings, because those decide which shifts appear for you.
153
+
154
+ Avoid:
155
+
156
+ > It should work.
157
+
158
+ Better:
159
+
160
+ > If your city and roles are saved correctly, same-city shifts should appear. If they do not, I’ll escalate it as a visibility bug.