FAQ
Can I export a pre-aggregated labor report instead of joining Time punches and Wages?
Yes — use the Worked hours and wages entity. This report, generated by 7shifts, provides daily totals for hours worked, wages, and tips per employee and role without requiring you to join and aggregate raw punch data yourself.
It's the fastest way to get a labor cost summary into a spreadsheet or BI tool. If you need punch-level detail (individual clock-in/out records, break time, approval status), use the Time punches entity instead.
See Data Overview for the full list of fields available in this report entity.
Can I export all 7shifts entities in one data flow?
No — each Coupler.io data flow exports one entity at a time. To combine data from multiple entities (for example, Time punches with Users or Wages), create a separate data flow for each entity and then use Coupler.io's data join feature to merge them in your destination using a shared key like user_id.
See Data Overview for a list of common entity combinations and the join keys to use.
What Start date should I use for the Time punches entity?
For regular payroll exports, set the Start date to the first day of your current pay period using the date picker. This pulls only the punches you need for the upcoming payroll run.
For historical analysis (e.g., quarterly labor cost review), set the Start date to the beginning of the period you want to analyze. If you need more than one quarter of history, consider splitting into multiple data flows — one per quarter — to avoid timeouts.
Can I filter time punches by location or department?
The 7shifts integration does not currently support server-side filtering by location or department. However, the Time punches entity includes location_id and department_id columns for every punch. Once the data is in your destination (Google Sheets, BigQuery, etc.), you can filter or pivot by those columns to focus on specific locations or departments.
To get the location or department name alongside the ID, create a separate data flow for Locations or Departments and use a data join to match on location_id or department_id.
Why does my hours total differ from the 7shifts Timesheets report?
A few common reasons:
Date range mismatch — Check that your Start date matches the exact period shown in the 7shifts Timesheets view.
Approval status — The Timesheets report in 7shifts may only include approved punches. Check the
approvedfield in your export and filter accordingly.Breaks — The
hoursfield includes or excludes break time depending on your 7shifts configuration. Check whether thebreaksfield (in minutes) should be deducted fromhoursto match your payroll policy.Time zones — Timestamps are in UTC. If you're summing hours by calendar day, make sure you're converting to local time first.
How do I calculate labor cost from 7shifts data?
Combine two data flows:
Time punches — provides
hours,user_id, androle_idfor each punchWages — provides
wageandwage_typeper employee and role
Join on both user_id and role_id, then multiply hours × wage for each punch to get the labor cost. An employee can have different pay rates for different roles, so joining on both keys ensures you use the correct rate for each shift worked.
See Best Practices for guidance on joining Time punches with Wages and handling break time in cost calculations.
What's the difference between Assignments, Location assignments, Department assignments, and Role assignments?
All four entities describe relationships between employees and their work setup, but from different angles:
Assignments — a general record linking a user to a location, department, and role in one row
Location assignments — specifically records which locations an employee is authorized to work at
Department assignments — records which departments an employee belongs to
Role assignments — records which roles an employee is qualified to perform, including whether it's their primary role
For most reporting purposes, Role assignments and Location assignments are the most useful. Use them to build a lookup table of which employees work where and in what capacity.
What does it mean when a shift has no user_id?
A shift with a null user_id is an open shift — a shift that has been posted to the schedule for any qualified employee to claim, but hasn't been assigned yet. Open shifts appear in the Shifts entity alongside scheduled shifts.
When calculating scheduled hours per employee, filter to rows where user_id is not null. If you want to analyze unfilled staffing gaps, look at shifts where user_id is null and published is true.
Why don't I see all my locations in the export?
The data returned by the 7shifts API is scoped to the account used during the OAuth connection. If the connected account is a location manager (not a company admin), the API will only return data for locations that user has access to.
To get data from all locations, reconnect Coupler.io using a company admin 7shifts account.
See Common Issues for more troubleshooting steps related to missing locations and permission errors.
Is 7shifts available to all Coupler.io users?
The 7shifts integration is currently in early access. It may not be visible in all Coupler.io accounts by default. If you don't see 7shifts in the source list, contact Coupler.io support to have it enabled for your account.
How often should I refresh 7shifts data?
It depends on the entity:
Time punches
Daily (or after each pay period close)
Shifts
Daily during active scheduling weeks
Users
Weekly
Wages
Weekly or on change
Locations, Departments, Roles
Monthly
Assignments
Weekly
For payroll-critical exports, schedule a final refresh a few hours after the last shift of your pay period ends to capture all manager approvals.
Last updated
Was this helpful?
