Projects and time

Client work structure: projects billed to contacts, tasks within projects, time logged against tasks, and notes on contacts or projects.

← Back to entity map hub

Relationship diagram

flowchart TB
  Contact[Contact]
  Project[Project]
  Task[Task]
  Timeslip[Timeslip]
  User[User]
  Invoice[Invoice]
  Note[Note]
  Contact -->|contact| Project
  Project -->|project| Task
  Task -->|task| Timeslip
  Project -->|project| Timeslip
  User -->|user| Timeslip
  Timeslip -.->|billed_on_invoice| Invoice
  Note -.->|parent_url contact or project| Contact
  Note -.->|parent_url contact or project| Project
  Project -.->|currency code| Currency[Currency_code]

Solid arrows are required URIs on create. Dashed arrows are optional or set after billing.

Resource catalogue

Resource Official docs SDK
Projects Projects Implemented
Tasks Tasks Implemented
Timeslips Timeslips Implemented
Notes Notes Implemented

Key URI fields

Project

Field Target Required on create?
contact Contact Yes

List filter: ?contact=https://api.freeagent.com/v2/contacts/:id

Task

Field Target Required on create?
project Project Yes (via POST /tasks?project=:project)

List filter: ?project=https://api.freeagent.com/v2/projects/:id

Timeslip

Field Target Required on create?
task Task Yes
user User Yes
project Project Yes
billed_on_invoice Invoice Read-only when billed

List filters: ?user=, ?task=, ?project=

Note

Field Target Required on create?
parent_url Contact or Project Set by API from query param

List requires parent: ?contact= or ?project=

From Field To cluster Notes
Timeslip billed_on_invoice Sales Set when time is invoiced
Project contact Foundations Billing contact
Timeslip user Foundations Who logged time

Projects also receive optional links from invoices, estimates, bills, expenses, and bank explanations - see Sales and Purchases.

Implemented in SDK

All four resources in this cluster are implemented. See API coverage for service entry points, method lists, and sample app routes.

When extending downstream clusters (for example optional project on invoices), Projects remain the spine: tasks require a project URI; timeslips require task, project, and user. Invoices are not required to create a timeslip, but billed_on_invoice only appears once billing happens.


Copyright © Mark Heydon. Distributed under the MIT licence.

This site uses Just the Docs, a documentation theme for Jekyll.