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.
  • Attendance entries API allows companies to programmatically manage entries, import them, and query attendance summaries.
📘

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 work duration, clock-in, clock-out, or break action recorded by an employee on a specific date and time. Entries are foundational data Bob uses to calculate daily summaries, timesheets, and billable hours per project.

Each entry includes:

  • The date and time in one of the following formats: (clock-in/clock-out or date/duration
  • The type of entry (work or break)
  • The employee identifier
  • Optional metadata such as associated project or task (not supported when importing punches)

Public API Support: The public API includes full entries CRUD + the option to import entries via a CSV file.

Attendance summaries and daily breakdown

In Bob, attendance reporting includes:

  • Attendance summary: Aggregated view for a date range, including worked hours, payable hours, overtime, breaks, and policy-based calculations.
  • Daily summary: Day-by-day view showing how hours are calculated for each date, including regular time, overtime, breaks, and premium-eligible hours.

Public API support:

The Public API provides two corresponding search endpoints that return calculated attendance data. Both endpoints require filtering by employee IDs and date or date range.

Projects

Projects are defined in the Attendance settings in Bob. They 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, and Document are 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 defined in the Attendance settings in Bob, and represent different types of activities that can be associated with a project.
  • You can add a project task (i.e., activity type) to multiple projects.
  • Employees assigned to a project with tasks must select a task when adding attendance entries..
  • Project-tasks can be used to track calculated billable time by project..

Note: Project tasks are not "Tasks" in Bob. To learn about tasks that can be assigned to employees, and task-lists in Bob, see Explore Tasks API.

Public API Support: You can fetch, update and archive 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
EntityLinked toDetermines
Attendance entryProject / Project taskThe time spent on a specific project or task
ProjectProject’s billable flagWhether time recorded for the project is billable
Project taskTask’s billable flagWhether time recorded for the task is billable

Attendance entries API

The Attendance Public API includes:

  • Entries CRUD: Use this option when the integration manages attendance in Bob and needs full entry lifecycle control (create, update, delete) and support for richer scenarios like real-time clock-in/out and projects/tasks (when allowed by policy).
    • Linking to Projects & tasks: Supported only when allowed by policy and when using Entries CRUD. When importing punches, you cannot link an entry to a project or task.
  • Import punches: Use this option when you already capture raw clock-in/out punches elsewhere (for example via a physical time clock) and want to ingest those punches into Bob using a simpler, more limited data model.
  • Querying attendance summaries and daily breakdowns.

Manage entries

Use this API when you need full programmatic control over attendance entries.

  • What you can do: Create, update, delete, and search attendance entries, including support for real-time clock-in and clock-out flows.
  • What you can include: employee ID, entry type (work or break), and either start/end times or a duration (depending on the reporting method).
  • Projects & tasks: Linking an entry to a project or task is supported only when allowed by policy.
🚧

Rules and validations (important)

  • Policy compliance: Entries must match the employee’s attendance policy rules and reporting method.
  • Running cycle restrictions: Only entries in running timesheet cycles can be accessed from the Public API. Attendance entries cannot be changed when the relevant timesheet cycle is submitted, approved, or locked.
  • No future entries: Creating entries in the future is not supported.
  • No overlaps: Entries for an employee cannot overlap.
  • Cross-midnight (start/end): When using start/end times, clock-in and clock-out must be on the same date. If work crosses midnight, split it into two entries.
  • Bulk limits: Create and update support up to 100 entries per request.

Import punches

Use this API when you already have “punch” data from a physical time clock and want to ingest it into Bob.

  • What you can do: Import clock-in and clock-out punches (with a limited data model compared to Entries CRUD).
  • Projects & tasks: Not supported when importing punches.
📘

Note: 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

Manage Attendance entries

Create entries
Update entries for an employee
Delete entry
Search entries
Clock in
Clock out

Use these endpoints for full programmatic management of time entries, including real-time clock-in and clock-out.

Import punches

Import attendance data


See Import attendance punches into Bob via Public API for detailed information about this endpoint

Attendance summaries

Fetch attendance summaries
Fetch daily attendance breakdown

Use these endpoints to Query attendance summaries and daily breakdowns.

Manage Projects

Get Project Metadata

Search Projects

Create Project(s)

Update Project

Archive Project

Restore Project


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.

Manage Project Tasks

Get Project Task Metadata

Search Project Tasks
Create Project Task(s) Archive Project Task Restore Project Task Update Project Task


Use these endpoints to create, read, update, and archive or restore project tasks. Use the taskId to link tasks to a project when creating or updating it.

Access Project Clients

Get Project Client Metadata

Search Project Clients


Use the project Clients endpoints to fetch client IDs and link clients to a project when creating or updating it

Related resources