Explore Attendance API
Understand the basic concepts of attendance entries in Bob
Overview
The Attendance module in Bob allows employees to log their attendance, while managers and administrators can view and manage timesheets. Attendance entries can be classified as paid or unpaid for payroll tracking purposes, depending on the organization's policy.
Projects in Attendance enables companies to track how employees allocate their time across various initiatives. Project and tasks can be billable or non-billable, and these details are displayed in the Projects Hours Report in Bob.
The Attendance API includes:
- Attendance API: Currently includes importing attendance entries into Bob.
- Projects API: Synchronizing projects with external systems.
Note: The attendance module is available only to customers who purchased the Time and Attendance module.
Key Concepts
Attendance policy
Attendance policies set the detailed rules that impact each employee’s attendance, including how overtime is defined, how break deductions are calculated, and who approves employees’ timesheets.
Public API Support: You cannot access attendance policies via the Public API.
Attendance entries
An attendance entry is the atomic unit of time tracking in Bob’s Attendance system. It represents a clock-in, clock-out, or break action recorded by an employee on a specific date and time. Entries are the foundational data Bob uses to calculate daily summaries, timesheets, and billable hours per project.
Each entry includes:
- The timestamp of the action (clock-in, clock-out, break-in/out)
- The type of entry (e.g., work or break)
- The employee identifier
- Optional metadata (cannot be imported via the Public API), such as associated project or task
Public API Support: Importing attendance entries. If your employees clock in and out using a physical time clock, it can be integrated with Bob's time and attendance system by importing the punches. This includes devices such as clocks, fingerprint readers, and swipe cards. Note that you cannot link to a project when importing an attendance entry.
Projects
Projects in the Attendance module track how employees spend time across different initiatives. Only employees assigned to a project can report attendance for that project or its tasks.
- Each project can be tracked either at the project level or at the task level.
- Employees assigned to a project must select a project or task when adding attendance entries.
- Attendance entries are considered billable or non-billable for project tracking, based on the project’s or task’s billable flag.
Public API support: You can create, update, archive and resrore projects via the Public API. When importing attendance entries, you cannot link them to a project - this can only be done through the Bob UI.
Project fields and custom fields
Project fields define the information shown in project details, tables, and reports. They can also be used to filter data. In Bob you define project fields from Time > Project > Project fields.
Project Fields can be:
- Out-of-the-box fields like name, description, assigned employees, and time tracking method
- Custom fields added by an admin.
Public API Support:
- You can use the Public API metadata endpoints to retrieve field information (out-of-the-box and custom fields).
- Some custom field types are not supported via the Public API. Fields of type
Multi-select list,List, andDocumentare excluded and will not appear in metadata responses.- Each custom field has a unique ID in the format field_xxx, where xxx is a system-generated number.
- Use the field ID when querying projects.
Project tasks
- Project tasks are different activity types that can be associated with a project.
- Tasks are templates, i.e., after you create a project task it can be added to multiple projects.
Public API Support: You can fetch project tasks via the Public API.
Calculated Billable time by project
In Bob, time can be tracked in one of two ways:
- By project – Track total time spent on the project. A project can be billable or non-billable.
- By project tasks – Track time against specific tasks within the project. Each task can be billable or non-billable.
The calculated billable time refers to the hours tracked on a project or task that are eligible for invoicing or internal cost allocation. This information can be accessed via Project Reports in Bob.
Relationships between attendance data and billable time| Entity | Linked to | Determines |
|---|---|---|
| Attendance entry | Project / Project task | The time spent on a specific project or task |
| Project | Project’s billable flag | Whether time recorded for the project is billable |
| Project task | Task’s billable flag | Whether time recorded for the task is billable |
Attendance API
The Attendance API allows importing attendance entries into Bob. The imported entry can include the employee ID, clock-in, clock-out, and entry type ("work" or "break"). It does not include linking to a project.
Before using this API, explore Import attendance punches into Bob via Public API to fully understand how to use this API correctly.
Projects API
The Projects API enables external systems to create, manage, and sync projects and tasks in Bob automatically. It supports creating projects, assigning them to tasks, assigning them to employees and Bob clients, archiving, and restoring projects as needed.
These capabilities enable customers to manage project lifecycles programmatically, while keeping Bob as the central platform for time tracking and reporting.
Projects API flow
sequenceDiagram
participant EXT as API Client
participant BOB as Bob Platform
EXT->>BOB: Read Employees (/people/search)
BOB->>EXT: Return Employees (Employee fields: id, name, email)
EXT-->>BOB: [Optional] Read tasks (/attendance/project-tasks/search)
BOB-->>EXT: Return Tasks (Fields: id, name, billable)
EXT-->>BOB: [Optional] Read Client IDs (/attendance/project-clients/search)
BOB-->>EXT: Return Projects Clients (Fields: id, name)
EXT->>BOB: Create project (Fields: name, description, billable/taskIds, members)
BOB->>EXT: 201 Created (Bob project ID)
EXT->>EXT: Store Bob project ID
Required permissions
Before accessing attendance data, ensure the service user has permission to access the relevant information, just as you would when assigning permissions to a user in Bob.
Attendance endpoints
The Public APIs for managing projects provide developers with programmatic access to projects and tasks in Bob.
Use case | Public API endpoint | Comments |
|---|---|---|
Import attendance entries | Explore Import attendance punches into Bob via Public API for detailed information about this endpoint | |
Access Projects | Use these endpoints to create, read, update, and archive or restore projects in Bob. When you create a project, the response includes the project’s backend ID - save it for future updates or references. | |
Access Project Tasks | Use the project task endpoints to fetch task IDs and link tasks to a project when creating or updating it. | |
Access Project Clients | Use the project Clients endpoints to fetch client IDs and link clients to a project when creating or updating it |
Related resources
Updated about 1 hour ago
