Covermatic

Manager portal

Login failed. Check your Restaurant ID, email, and password.

Don't know your Restaurant ID?
Contact your Covermatic account manager.

Total employees
--
Scheduled shifts
--
Open shifts
--
Covered
--

Today?

--
EmployeeRoleTimeStatusCoverage
Loading...

Schedule?

Range 2W 4W 6W 8W
Status All Scheduled Open Covered Drafts
Role All Server Cook Host Bartender Driver
Employee
Date Employee Role Start End Status
Loading...

Add shift

Days of week (for ranges):
Click a date, or click two dates for a range (max 7 days)
🌴 Scheduled time off
EmployeeDatesReason
Loading...

Shift history?

DateEmployeeRoleStartEndStatus
Loading...

Activity log?

ℹ️ Activity older than 90 days is removed automatically each night to keep things fast. Completed shifts older than 1 year are also cleaned up. Reliability history is kept forever. Turn on the monthly CSV in Settings if you want a permanent record delivered to your inbox.
Shifts added / covered Call-offs, no-shows, at-risk Schedule changes, time off, sign-ins Coverage blasts System cleanup
Loading...

Employees?

NameRoleScoreSMS opt-inPhoneStatusActions
Loading...

Add employee

Phone number must include country code (e.g. +1 for US). This is the number employees text to call off.

Coverage performance?

Loading...

Reliability scores?

Sorted by score. Click any row to see full history.
Name Role Score Call-offs No-shows Last call-off
Loading...

Strike alert settings

When an employee reaches this many call-offs, you will get an SMS alert with their reliability score.

Weekly report email

Defaults to your login email. Change if you want reports sent to a different address.

Automated CSV reports

Get a spreadsheet-friendly export of your activity delivered by email. Attachments go to the same address as your weekly report above.

Attached to your Monday weekly report. Covers the previous 7 days.

Sent on the 1st of each month. Covers every activity-log entry from the prior calendar month.

Note: to keep the database lean, activity older than 90 days and completed shifts older than 1 year are removed automatically each night. Reliability history is kept forever. Turn the monthly CSV on if you want a permanent record.

Last chance broadcast

When enabled, the final "Last Chance" blast at 30 minutes goes to all active staff regardless of role — not just the same role as the open shift.

Shift Bounty program

How Shift Bounties work

When you add a shift, you can optionally attach a Bounty — a free-text incentive like "Extra $20 cash" or "First pick of next week's schedule." When that shift gets called off, eligible employees see the bounty in their coverage SMS and have a limited window to claim it first.

Bounty eligibility rules (all must pass):

  • Employee reliability score is at or above the minimum score
  • Employee has not called off within the cooling period
  • Employee has not claimed more bounties than the monthly cap

How the window works: Eligible employees are texted first with the bounty offer and a countdown. After the window expires, all remaining candidates get a standard no-bounty coverage request. The shift still gets filled — the bounty just rewards whoever acts fastest.

Payout is manual — Covermatic tracks who claimed the bounty and reminds them in their confirmation SMS, but the actual payout is handled by you.

Turn off to disable bounties entirely — shifts will still be covered normally, bounty field will be ignored.

Employees below this score are ineligible

Employees who called off within this window are ineligible

Prevents gaming by repeat claimers

Eligible employees have this long to claim before others are notified

How Covermatic works

Covermatic handles shift scheduling, call-offs, and coverage for you over SMS. Your employees text in to call off; the system automatically finds and confirms a replacement. You can run your whole schedule from this dashboard or by texting our number conversationally. Click any section below to expand.

📱 Texting our number — your AI scheduling assistant

Anything you can do in the dashboard, you can do by texting our number from your registered manager phone. The AI handles the rest.

Examples that work:

  • "Who's working tomorrow?"
  • "Add Sarah Tuesday 6pm-11pm as server"
  • "Move James's Friday shift to Saturday"
  • "Cancel Sarah's shift Friday" → it'll ask whether you need coverage or not
  • "Find coverage for Sarah's shift tonight"
  • "Mark Lisa as no-show for last night"
  • "Send all servers a reminder that next Monday's meeting is at 3pm"

Before doing anything that changes the schedule, the AI will summarize what it's about to do and ask "Reply YES to confirm or NO to cancel." Common variations like "yes", "yep", "sure", "ok", "go ahead" all confirm; "no", "nope", "nah", "stop", "cancel" all cancel. If your reply is ambiguous (like "k"), it'll ask you to clarify instead of guessing.

📊 The four cards at the top

Each card is clickable — it jumps to the matching view. Hover any card to see what it counts.

  • Total employees — active staff on your roster. Deactivated people aren't counted.
  • Scheduled shifts — what's on the books for the next 7 days.
  • Open shifts — every uncovered shift from today onward, however far ahead. This one is deliberately unbounded: an uncovered shift should never be hidden from you just because it's three weeks out.
  • Covered — shifts someone picked up after a call-off, from the last 7 days through the next 7. That's the same range as the 2-week schedule view the card opens.

Why the date ranges: these counts used to include your entire history, so "Open shifts" counted long-past shifts that could never be covered, and the number only ever went up. Scoping them to the period you can actually act on makes them worth glancing at.

One wrinkle worth knowing: "Covered" counts by the shift's date, not the moment coverage happened. Covering next month's shift today won't move the number until that date comes into range. Most call-offs are for imminent shifts, so in practice it lines up.

📅 Today at a glance

The Today card sits at the top of the Schedule tab and shows everything happening today — who's working, what's open, who's off. The date follows your restaurant's timezone, not your phone's, so it's correct even if you're travelling.

Open shifts are highlighted. An open shift is one nobody is currently covering — either someone called off, or you marked it open yourself. They're tinted by whether anything is working them: amber means a coverage request is live and will keep retrying on its own, red means it has stopped and needs you.

The Coverage column spells that out:

  • Coverage request active — staff have been texted and the system is still following up. "Next 3:45 PM" is when the next automatic retry or alert goes out. No action needed from you.
  • Coverage request ended — no takers — staff were texted but nobody claimed it, and the system has stopped following up. This one needs you.
  • No coverage request sent — nothing has gone out yet. This is normal for a shift you marked open yourself. Text our number "find coverage" and the system will blast it.

The card refreshes when you add, delete, or import shifts. Reload the page for the latest coverage status.

On your phone, the dashboard reflows for a small screen — the Today card stacks into one block per shift, and the tab bar scrolls sideways. It's designed to be the thing you glance at each morning before service.

➕ Adding shifts

Three ways to add shifts:

  1. Manual entry (Schedule tab → "Manual entry"): pick an employee, date, role, and times. Best for one-off shifts.
  2. CSV import (Schedule tab → "Import shifts" → CSV): drop a CSV exported from your existing scheduling tool. Map columns to date / employee / role / start / end. Preview before importing.
  3. Paste text (Schedule tab → "Import shifts" → Text): paste raw schedule text (anything readable — pasted from email, Slack, etc.) and the AI will extract shifts. Preview and edit before importing.
  4. Text our number: "Add Mike server Thursday 4pm-close" — fastest for last-minute adds.
👥 Employees — adding, opt-in, deactivation

Adding: Employees tab → "Add employee". Phone numbers must include the country code (e.g., +18135550123 in the US).

SMS opt-in: After you add an employee, they get a one-time consent message. They must reply YES once to opt in. Until they do, their row shows "Pending" — they won't receive coverage requests. Use the "Resend invite" button if needed.

Deactivate vs Delete: Deactivate keeps the employee's history (reliability score, past shifts) but removes them from scheduling and coverage rotation — best when someone leaves but might come back. Delete removes them permanently.

Active opted-in employees are the pool used for coverage offers, weekly reports, and bounty eligibility.

📣 Drafts & publishing the schedule

How it works: when you add or move a shift (dashboard or by SMS), the employee is NOT texted immediately. The shift is saved as a DRAFT (dashed border + "DRAFT" pill) and a 15-minute timer starts for that employee. Any further changes for the same employee inside that window reset the timer. Once the timer elapses with no new activity, the employee gets ONE consolidated SMS covering all of their unpublished upcoming shifts.

Sending sooner: click the green Publish (N) button in the Schedule header (it appears when drafts exist) to flush every pending draft right now. Or text the assistant "publish the schedule" — same effect with a YES/NO confirm. Either path cancels the 15-min auto-timer so you don't get a double-send.

Editing a published shift: if you change the date, time, or role on a shift the employee already knows about, an automatic update SMS is queued 15 minutes out. Successive edits inside that window reset the timer so the employee gets one final SMS reflecting the latest version. Need to send immediately? Open the shift and click Notify now.

Cancellations always text the affected employee right away (no debounce).

Bulk schedule entry: the CSV import and AI text-parse flows save shifts as drafts but do not start the per-employee auto-publish timer. The reason: when you're loading a full week or two at once, you almost always want to review the entire schedule before anyone sees it — accidentally texting 20 staff while you're still mid-edit is the worst case. Drafts from a bulk import will sit indefinitely until you click Publish in the Schedule header. The draft banner and Publish (N) badge make sure you don't forget.

🌴 Time off — vacation, PTO, sick days

What it does: mark an employee off for a range of dates. While the range is active, two protections kick in: (1) they will NOT be blasted for coverage requests, and (2) their reliability score will NOT be dinged for ignoring requests during that range.

From the dashboard: Employees tab → click Time off next to anyone. Pick a start and end date (use the same date for a single day), optionally add a reason (vacation, sick, etc.), then Add. Remove a range anytime to put them back in rotation.

By SMS: text things like "Sarah is on vacation next week", "Fred out Mon through Wed", or "Jane sick today". The assistant will confirm the dates with you in YES/NO format before saving.

Already-scheduled shifts: setting time off does NOT auto-cancel existing scheduled shifts in that range — the assistant will warn you if any exist so you can cancel them separately. Conversely, trying to add a new shift to a date the employee is off will be blocked; clear the time off first if you really want to schedule them.

Calendar view: the month calendar shows a small "🌴 N off" badge on days where one or more employees are out. Hover for names and reasons.

📞 Call-off flow — what happens when an employee can't make it

From the employee's perspective: they text our number something like "Can't work tomorrow" or "Can't make my Friday shift." The system identifies their next shift (or asks them to confirm the date if ambiguous), marks it open, and immediately starts looking for coverage.

What the system does next, automatically:

  1. Initial blast: all eligible same-role employees who don't have an overlapping shift get a coverage offer SMS.
  2. T+15 retry: if no one has accepted in 15 minutes, employees who haven't replied get a reminder.
  3. T+30 last chance: if still uncovered at 30 minutes, a final "LAST CHANCE" SMS goes out — optionally broadening to other roles if you've enabled that setting.
  4. T+60 manager alert: if no one's claimed it after an hour, you get an SMS so you can intervene manually.

Whoever replies YES first gets the shift. Everyone else is notified the shift is taken (the original employee is also notified that coverage was found). All other follow-up jobs are cancelled.

⭐ Reliability scores — how they work

Each employee starts at 100. Events adjust the score, weighted by recency (events older than 90 days count for less).

Event weights:

  • +5 — accepted an open shift
  • −10 — standard call-off
  • −20 — urgent call-off (during or just before the shift)
  • −8 — ignored 3 consecutive coverage offers (the "ignore streak")
  • −25 — no-show (you marked them as not showing up without notice)

Why it matters: the score gates bounty eligibility, surfaces problem employees in the Reliability tab, and the ignore-streak metric means chronic non-responders are blasted later in the rotation (not excluded — just deprioritized so engaged employees see offers first).

What it doesn't do: a manager-initiated cancel ("we don't need Sarah tonight, business is slow") does not affect the employee's score. Only employee-driven events do.

Voiding events at your discretion: click any employee row on the Reliability tab to open their full event history. Each negative event (call-off, urgent call-off, no-show, ignore streak) has a Void button. Use it for genuine emergencies (death in the family, accident, hospitalization) or when you've decided to extend grace. The voided event stays in the log with a strikethrough and a "VOIDED" badge — audit trail preserved — but its score impact disappears immediately. The score on every screen updates the moment you void. Change your mind later? The same button becomes Restore.

⏱️ Coverage performance — time to fill

On the Reliability tab, the Coverage performance card answers the question no scheduling tool usually answers: when a shift falls through, how long does it actually take to fill?

The clock starts the moment a shift becomes uncovered — an employee calls off, or you mark it open yourself — and stops when someone claims it.

  • Typical time to fill — the median. Deliberately not the average: one shift that opens at 11pm and is claimed at 8am the next morning would wreck an average while the median still reflects a normal day.
  • Filled — the share of uncovered shifts someone picked up. Shifts still open count as neither a win nor a loss, since they haven't finished.
  • Slowest fill — your worst case in the period. Usually an overnight or a hard-to-staff role.
  • By role / by day of week — sorted slowest first. This is where the decisions are: if Saturday bartender shifts consistently take hours, that's where a bounty earns its money.

Day of week is the shift's day, not the day of the call-off. The useful question is which shifts are hard to fill, and a Saturday night is hard whenever the call-off happened.

A note on history: coverage timing began recording on 27 July 2026. Shifts covered before then aren't included — the timestamps didn't exist, and guessing them would be worse than leaving them out. The figures get more trustworthy as data accumulates; below five completed fills the card says so rather than pretending otherwise.

⚠️ At-risk flagging

An employee gets an AT RISK badge when, in the last 30 days, any of these is true:

  • They hit your call-off threshold (set on the Settings tab — default 3)
  • They had any no-show — one is enough, since a no-show means nobody was told
  • Their reliability score fell below 60

Hover the badge to see exactly which of those tripped, and by how much.

Where it shows: next to the name on the Employees and Reliability tabs, and as an "At risk" line at the bottom of the Today card so it's part of your morning glance. Deactivated staff are never flagged.

Why 30 days and not all-time: three call-offs spread over two years is not the same problem as three last month. The window is rolling, so a flag clears itself once the old events age out — someone who had a rough month and recovered stops being flagged without you doing anything.

You'll also get one text when someone crosses the call-off threshold, naming them and their score. That's a nudge, not the system of record — the badge is the thing that stays visible. If you miss the text, the flag is still on your dashboard.

What it isn't: it's not a disciplinary action and nothing happens automatically — nobody gets removed from the schedule or the coverage rotation. It's a prompt to have a conversation. If an event was unfair (a genuine emergency), void it in the Reliability tab and the flag recalculates immediately.

💰 Shift Bounty program

What it is: when you add a shift you can attach a bounty (free text, e.g., "Extra $20 cash" or "First pick of next week's schedule"). If the shift gets called off, eligible employees see the bounty in their coverage offer and have a short window to claim it before others see a standard (no-bounty) version.

Eligibility (all rules must pass):

  • Reliability score at or above your minimum
  • Hasn't called off within your cooling period (e.g., 7 days)
  • Hasn't already claimed more than your monthly cap

Window: eligible employees get the bounty version first. After the window expires, anyone else still eligible gets a standard request — the shift still gets filled.

Payout: manual on your end. Covermatic tracks who claimed and reminds them in their confirmation SMS; you handle the actual payment.

To configure: Settings tab → "Shift Bounty program" card. To disable entirely, untick the enable toggle.

📋 Activity log — colors and filters

The Activity log records every change to the schedule, whether it came from the dashboard or from an SMS interaction. Click any row to expand for full timestamp + user.

The coloured dot is a quick at-a-glance grouping:

  • 🟢 Green — shifts added or coverage found (good)
  • 🔴 Red — call-offs, no-shows, at-risk flags (disruption)
  • 🔵 Blue — schedule changes, time off, sign-ins (routine admin)
  • 🟠 Orange — coverage blast sent (outreach in progress)
  • 🟣 Purple — automatic system cleanup

The Category shown when you expand a row is more specific than the dot — Sign-in / out, Employee change, Time off, Shift moved, Shift cancelled, Reminder / notice, At-risk flag, and so on. There are more categories than there are colours, so several categories share a dot. The category dropdown filters by these finer categories, not by colour.

Filters: search by message text or username, narrow by category, by user (dashboard vs SMS-driven), or by time range. The ⬇ CSV button exports exactly the rows you're currently looking at, with the same categories.

Entries tagged "Covermatic (SMS)" came from texts to our number; entries tagged with your email came from the dashboard.

Retention: activity older than 90 days and completed shifts older than 1 year are removed automatically each night so the log stays fast to load. Reliability history (scores, call-off events, no-shows) is kept forever. When a cleanup runs, you'll see a purple "System cleanup: removed N activity entries…" row so it never happens invisibly. Want a permanent record? Turn on the monthly CSV in Settings — it emails you every activity-log entry from the prior month on the 1st.

⚙️ Settings

Strike alert threshold: after this many call-offs in a rolling window, you'll receive a "high call-off rate" notification SMS to flag the employee. Default 3.

Notification email: where your weekly summary report is sent every Monday morning.

Contact all roles on last-chance retry: at the T+30 "LAST CHANCE" stage, broaden the blast to all opted-in employees regardless of role (e.g., a cook could cover a server shift if your operation allows it). Off by default.

Shift Bounty program: see the dedicated section above.

📧 Weekly report email

Every Monday morning we send the email address on your Settings tab a summary covering: shifts last week, coverage rate, call-offs by employee, no-shows, top contributors, and any employees flagged for low reliability.

If the report doesn't arrive, check your Settings tab — the email field must be populated. Check spam first.

❓ FAQ & troubleshooting

My employee says they're not getting texts. Check their row on the Employees tab — if it shows "Pending", they haven't opted in. Click "Resend invite" and have them reply YES to the consent message.

I sent a text to the AI and got "Something went wrong" / "That didn't go through". Just resend your message. We catch known intermittent errors and ask you to retry rather than failing silently. If it keeps happening on the same message, try rephrasing.

The AI replied with a weird time format or wrong date. Check the confirmation summary carefully before replying YES — if it spelled out the day and time and they're wrong, reply NO and try again with a clearer phrasing (e.g., "June 16 at 6pm" instead of "June 16pm").

How do I undo a YES that I shouldn't have confirmed? Use the dashboard to delete/edit the shift directly, or text our number with the correction (e.g., "Cancel the shift I just added for Sarah" or "Move that shift back to Friday").

I marked someone no-show but they did communicate. Open their row on the Reliability tab and click Void next to the no-show event. The score updates immediately and the event stays in the log (with a strikethrough) for audit. The −25 weight is steep; only use no-show for genuine no-call-no-shows.

An employee called off but I want to forgive it (emergency, etc.). Same place — Reliability tab → click their row → Void the call-off event. Restorable later if needed.

My trial expired and the system stopped responding. Contact us to convert your account. While inactive, no SMS will be sent or processed.

Can two managers share one account? The texting integration is tied to one manager phone per restaurant. The dashboard login can be shared, but only the registered phone can text the AI.

Still stuck? Reach out and we'll walk you through it.

Permanently delete employee?

This will remove and all their records from the system. This cannot be undone.

Consider Deactivate instead — it hides them from scheduling while preserving history and allowing re-hire.