Clio integration

Legal practice management: matters, contacts, billing, documents, tasks, calendar

Help CentreConnectors

Overview

Clio is a legal practice management platform – matters, contacts, billing, documents, tasks, and calendar. The Automize Clio connector integrates with the Clio Manage REST API (v4) so you can automate matter intake, contact sync, time/expense entry, and invoicing from inside an RPA process.

  • Regions: US (app.clio.com), UK (eu.app.clio.com), CA (ca.app.clio.com), AU (au.app.clio.com). Region is inferred from the subdomain you select when connecting.
  • Plans: All paid Clio Manage plans expose the REST API. Document Automation and Clio Grow live on separate APIs not covered by this connector.

Setting up the connection

Auth type: OAuth 2.0 (Authorization Code).

  1. Sign in to Clio as an administrator.
  2. Go to Settings → Developer Applications and click "Add".
  3. Name the app (e.g. "Automize"), set the Redirect URI shown in the Automize Clio connector dialog, and enable the scopes listed below.
  4. Copy the Client ID and Client Secret.
  5. In Automize, open Settings → Connectors → Clio → Add connection. Paste the credentials and pick your Clio region.
  6. Click "Connect with Clio", approve the consent screen. The connection is ready.

Scopes required:

  • matters
  • contacts
  • activities
  • bills
  • documents
  • tasks
  • calendar

Find your credentials at https://app.clio.com/settings/developer_applications.


Rate limits

Clio enforces a soft rate limit of roughly 100 requests per minute per user token, plus burst headroom. The connector reads X-RateLimit-Remaining / Retry-After headers and automatically backs off and retries up to 3 times on a 429. Sustained heavy reads should page (limit=200) rather than poll.


Data model

Matters are the central object – every billable activity, document, task,
bill, or contact relationship ultimately threads back to a Matter.

    Matter ─┬─ Contacts (client + related parties)
            ├─ Activities (time + expense entries)
            ├─ Tasks
            ├─ Documents
            └─ Bills ─── Activities (the line items)

A Contact can exist independently and later be linked to a Matter; a Bill
always belongs to one Matter and groups the Activities billed on it.

Available operations

14 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create ActivityGeneralCreate a new activity
Create BillGeneralCreate a new bill
Create ContactGeneralCreate a new contact
Create MatterGeneralCreate a new matter
Create TaskGeneralCreate a new task
Get ContactGeneralGet a contact by ID
Get MatterGeneralGet a matter by ID
List ActivitiesGeneralList all activities
List BillsGeneralList all bills
List ContactsGeneralList all contacts
List DocumentsGeneralList all documents
List MattersGeneralList all matters
List TasksGeneralList all tasks
Update MatterGeneralUpdate an existing matter

Operations

Create Activity

Create a new activity

ParameterRequiredTypeDescription
Data dataYestextarea

Tips

  • type is required – TimeEntry or ExpenseEntry.
  • For time entries, quantity_in_hours is required and accepts decimals (e.g. 1.5 = 1h30).
  • non_billable=true records work without billing the client.

Errors

  • MATTER_REQUIRED – Activities must be linked to a Matter via matter_id.

Create Bill

Create a new bill

ParameterRequiredTypeDescription
Data dataYestextarea

Tips

  • Bills are normally generated from unbilled Activities. Pass activity_ids[] to include specific entries.
  • Set state=draft first to allow edits, then transition to pending to lock.

Create Contact

Create a new contact

ParameterRequiredTypeDescription
Data dataYestextarea

Tips

  • For a Person, send type=Person + first_name + last_name. For an org, send type=Company + name.
  • email_addresses is an array of {name, address, default_email}. The first becomes the default if none flagged.
  • phone_numbers follows the same shape – {name, number, default_number}.

Errors

  • DUPLICATE – Clio detected an existing contact with the same email or phone. Use Get Contact first and update if needed.

Create Matter

Create a new matter

ParameterRequiredTypeDescription
Data dataYestextarea

Tips

  • client_id (a Contact ID) is required. Create the Contact first if it doesn't exist.
  • practice_area_id is optional but recommended – it drives Clio's reporting buckets.
  • display_number is auto-assigned if omitted; provide one to match an external system.

Errors

  • UNPROCESSABLE_ENTITY – One or more fields failed validation. The response body lists the offending field(s).
  • CLIENT_NOT_FOUND – The client_id does not match any Contact in your Clio account.

Create Task

Create a new task

ParameterRequiredTypeDescription
Data dataYestextarea

Tips

  • name and assignee_id are typically required. Assignees must be Clio users in your account.
  • Set due_at to an ISO 8601 datetime – UTC is fine, Clio renders in the user's timezone.

Get Contact

Get a contact by ID

ParameterRequiredTypeDescription
Contact Id contact_idYestext

Tips

  • Use fields=id,name,primary_email_address,custom_field_values to reduce payload.

Get Matter

Get a matter by ID

ParameterRequiredTypeDescription
Matter Id matter_idYestext

Tips

  • Use fields=id,display_number,description,status,client{id,name} to limit the payload.

List Activities

List all activities

No input parameters.

Tips

  • Activities are time + expense entries. Filter by type=TimeEntry or type=ExpenseEntry.
  • Date filters use date[gte] / date[lte] (inclusive).
  • Pass matter_id=... to scope to one matter.

List Bills

List all bills

No input parameters.

Tips

  • Filter by state (draft, pending, awaiting_payment, paid).
  • issued_at[gte] / issued_at[lte] for date ranges.

List Contacts

List all contacts

No input parameters.

Tips

  • type=Person or type=Company to filter by contact kind.
  • Search by email with query=foo@bar.com – case insensitive, substring match.

List Documents

List all documents

No input parameters.

Tips

  • Documents are metadata only – content download needs a separate Clio API call (not exposed by this connector yet).
  • Filter by matter_id or contact_id to scope.

List Matters

List all matters

No input parameters.

Tips

  • Pass status=open (or pending, closed) to filter. Default returns all statuses.
  • Pagination uses page + limit. Max limit is 200. Iterate until meta.paging.next is null.
  • Use the fields parameter to project only the columns you need – full Matter payloads are heavy.

List Tasks

List all tasks

No input parameters.

Tips

  • status=pending or complete. Default returns both.
  • due_at[gte] / due_at[lte] for due-date ranges.

Update Matter

Update an existing matter

ParameterRequiredTypeDescription
Data dataYestextarea
Matter Id matter_idYestext

Tips

  • PATCH-style – only fields you send are updated. Empty strings will clear values.
  • Status transitions (open → closed) trigger Clio's billing reconciliation, so close after final invoicing.

FAQ

I get UNAUTHORIZED after about three months – why?
Clio refresh tokens expire after 90 days of inactivity. Reconnect the connector in Settings → Connectors → Clio.
How do I attach a custom field value?
Pass custom_field_values as an array of {custom_field: {id: <id>}, value: <value>}. Find the custom field IDs by calling the Clio API directly during setup, then store them in connector data.
Does this connector support Clio Grow?
No. Clio Grow uses a separate API. This connector covers Clio Manage only.
Why does List Matters miss some matters I can see in the UI?
Clio scopes API access to the matters the connected user can view. Use a Clio user with firm-wide access if you need to see everything.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.