From Clock-In to Payslip: Syncing DailyBrew Attendance to Payroll

How to connect DailyBrew to BasilBook so payroll starts from what your team actually worked — and why the link is built on employee IDs rather than usernames.

September 10, 20267 min read

Why attendance belongs next to payroll

Most small restaurants run payroll from memory and a paper roster. It works until it does not, and when it does not, it is someone's wages.

The failure is rarely dramatic. A part-timer picked up two extra shifts in week three and nobody wrote it down. Someone was off sick on a Tuesday and got paid for it anyway. The month closes, the number looks about right, and nobody can reconstruct it a fortnight later because the roster has been thrown away.

If the clock-ins already exist in DailyBrew, the honest fix is to let payroll read them rather than have a person retype them. Days worked stop being a recollection and become a record — one you can point at when someone disagrees.

Step-by-step setup

You need API access in DailyBrew and an owner or manager role in BasilBook. The one-off part is matching names; after that it runs itself.

  1. Create an API key in DailyBrew

    DailyBrew → Settings → API. Copy the key. BasilBook encrypts it before storing it and will never show it back to you in full.

  2. Paste it and press Test connection

    A successful test names the workspace it reached. Check that name — a key for the wrong team connects perfectly well and imports the wrong people.

  3. Sync a short range first

    Three or four days is enough. The result tells you how many records arrived and, more usefully, which names did not match anyone in BasilBook.

  4. Link the unmatched people

    Open Staff and match each reported name to the right person, once. The next sync picks them up — including the days that already came across.

How people get matched (and why it is not by name)

BasilBook links a DailyBrew person to a staff record by their stable employee ID, not by their username or display name.

This is a deliberate choice and it is worth understanding, because the obvious alternative looks simpler and fails silently. If you match on username, then the day someone corrects a spelling, marries, or gets re-created in DailyBrew after leaving and returning, the link breaks. Nothing errors. Attendance simply stops arriving for that person, and you find out when they query a payslip.

An ID does not change when a name does. Link a person once and the link survives every rename, which is the whole point of using one.

The practical consequence: the first sync after adding someone will list them as unmatched, and that is the moment to link them. After that you can forget they exist — which is what you want from payroll plumbing.

From days worked to a posted journal

Attendance does not touch the ledger. It feeds payroll, and payroll is what posts — with you in the middle.

  1. Open a payroll periodDays worked pre-fill from the attendance you synced, alongside overtime and any advances already recorded.
  2. Review it line by lineThis is the step that stays manual on purpose. You are the one who knows that Wednesday was a public holiday, or that someone swapped a shift.
  3. Approve, and the journal writes itselfApproving posts a balanced entry — wages expense against what you owe staff — without anyone opening a journal screen.

Nothing reaches the ledger unattended. Automatic sync fills in the facts; deciding what to pay people stays a decision, which is not a thing to hand to a scheduler.

Keep it in sync automatically

Set a cadence and attendance is already there when you open the payroll period, rather than something you remember to fetch first.

Hourly, every six hours, or once a day. Each run re-reads the last three days, because a shift corrected the following morning is a shift that needs correcting here too. It is a Pro feature and it is off by default.

Why a three-day window rather than picking up where it left off is explained in the automatic sync post.

Troubleshooting

Three things account for nearly every surprise.

  • Someone is missing from payroll They were almost certainly listed as unmatched after the sync that first saw them. Open Staff, link the name, and re-run — the days already imported come with them.
  • A name looks wrong in BasilBook The staff record keeps its own name; the DailyBrew name is only used for reporting unmatched people. Rename the staff record and the link is unaffected.
  • Someone is marked absent for today They should not be. A day that has not finished cannot be an absence, and BasilBook does not mark one. If you see it, the workspace timezone is probably wrong — check Settings → Organization.

What syncs and what it costs is on the DailyBrew integration page.

Let payroll read the clock

One key, one round of matching, and the month stops starting from a blank page.