Laurel Connect (Flat File)
Avery Anderson avatar
Written by Avery Anderson
Updated over a week ago

What is Laurel Connect?

Laurel Connect allows Laurel to import and export timekeeping from a PMS that is not directly connected via integrations (e.g., Aderant, 3E). The service allows firms to upload their timekeeping data (client initiatives, etc.) and receive exports of released timekeeping data on a scheduled basis.

  • Laurel Connect imports timekeeping data (client initiatives, timekeepers, codes, etc.) on a "triggered by upload basis" using Laurel's import format through a SFTP service.

  • Laurel Connect exports released time (timekeeper, hours, narratives etc.) on a scheduled basis in Laurel's export format for firms to upload into their PMS through an SFTP service.

Laurel Connect Import

Importing timekeeping data (clients, initiatives, etc.) into Laurel is done through upload of several files via SFTP. Timekeeping data will be made available to timekeepers in Laurel within 60 minutes from successful upload.

  • You will be provided the SFTP endpoint and credentials during onboarding.

  • All files must be put into a single ZIP file and placed in the imports folder.

  • Naming of the ZIP file must not contain any special characters such as !@#$% ^&*() or whitespace. If in doubt name it data.zip.

  • Import files must be formatted to instructions below for successful upload and be in UTF-8 standard.

  • Import files must have headers in the exact order specified.

  • Do not add multiple zip files to the imports folder.

  • Uploads will be completed in an upsert manner for updating existing or adding new data.

  • Closed Initiatives will continue to be searchable unless marked status = inactive on the initiatives.csv file

Please work with your Solutions Engineer to ensure the data your timekeepers need for keeping time with Laurel is supported.

Data

File Name / Type

Supported Mappings

Notes

Clients

clients.csv

-

Required.

Initiatives

initiatives.csv

Clients

Required.
These are a general purpose category - in law firms, these are generally referred to as "Matters" at other firms, they may be referred to as "Projects"

Codes

codes.csv

Code Types

Not Required. These are the codes used at a initiative and attached to time entries.

Code Types

code-types.csv

-

Not Required. These specify what type of codes

Currently, Laurel supports: phase, task, location, action, activity, and currency types and should be listed as such.

1) Data: Clients

  • Filename: clients.csv

  • Filetype: Comma separated values (CSV)

The clients file provides all information related to clients that need to be available in Laurel to your timekeepers. The file must be formatted with the constraints outlined below.

CSV Example

id,callSign,description,name
1,1,General Client,General Client

Column Name

Data Type

Description

id

string

Required: The client code identifier (sometimes set as externalId or client code). This can't be modified in future imports.

callSign

string

Required: Generally, the client code (ex. 12345)

description

string

Required: Generally, the name of the client (ex. Laurel Inc). It can be identical to the name field if there's no concept of a full/short name.

name

string

Required Generally the name or short-name of the client (ex. Laurel).

2) Data: Initiatives

The initiatives file provides all information related to matters/projects that need to be available in Laurel to your timekeepers. The file must be formatted with the constraints outlined below.

  • Filename: initiatives.csv

  • Filetype: Comma separated values (CSV)

Note: We do not support restricted initiatives at this time.

CSV Example:

id,clientId,name,description,unitIncrements,callSign,billingType,status
1,1,General Matter,General Matter,360,00001,billable,active
2,1,Old General Matter,Old General Matter,360,00002,billable,inactive
3,1,Nonbillable General Matter,Nonbillable General Matter,360,00003,non-billable,active

Column Name

Data Type

Description

id

string

Required:
The initiative code identifier (sometimes set as externalId). This can't be modified in future imports. (This will be the initativeId exported during time entry creation - please make sure this is what your PMS system uses for time entry).

clientId

string

Required:
Set to the id mapping to client, found in clients.csv (or previously uploaded into Laurel).

name

string

Required:
Generally, the name or short-name of the initiative (ex. General).

description

string

Required:
Generally, the name of the initiative (ex. General). It can be identical to the name field if there's no concept of a full/short name.

unitIncrements

int

Required:
The initiative increment for billed time in seconds (ie. 360, 900, etc.). Note these will map to 0.1 or 0.25 if your firm uses a billable increment instead

callSign

string

Required:
Generally, the initiative/project/matter code (ex. 12345 or 00001)

billingType

string

Optional:
Please set to billable or non-billable

status

string

Optional:
Please set to active or inactive
Note: if not specified will default to active

3) Data: Work Codes

The codes and code-types file provides all information related to billing codes that need to be available to be set in Laurel to your timekeepers. The file must be formatted with the constraints outlined below.

  • Filename: codes.csv

  • Filetype: Comma separated values (CSV)

CSV Example:

id,codeTypeId,name,description
A101,activity,A101,Plan and prepare for

Column Name

Data Type

Description

id

string

Required: A unique identifier for this code, sometimes known as an externalId or the code itself. This can't be modified in future imports.

codeTypeId

string

Required: The id of a code-type object.

name

string

Required: A name, which in general is the code. For example, it may be L100, L210 or A101 in a firm context

description

string

Required: The description of the code.

  • Filename: code-types.csv

  • Filetype: Comma separated values (CSV)

CSV Example:

id,name
activity,activity-code

Column Name

Data Type

Description

id

string

Required: A unique identifier for this code type, sometimes known as an externalId. This can't be modified in future imports.

name

string

Required: The type of code

Must be one of the following: phase-code, task-code, action-code, activity-code, project-code

Laurel Connect Export

As timekeepers use Laurel to track and release their time, released time data will be made available to firms on a hourly basis via an export file SFTP.

When not connected to a billing system, we provide multiple options to retrieve released time data:

  1. For the more tech savvy, you have the option to integrate your system directly with our Laurel Connect Export API. Please contact us for API credentials and documentation

  2. Have a scheduled export to the export folder which can be accessed using the same SFTP credentials provided for import.

For option #2, note the following

  • Export files will be formatted to Laurel's standard. You are able to customize this on request.

  • The export will occur daily

  • Export files will be available for 14 days before being deleted.

Please work with your Solutions Engineer to ensure you are able to access the export files. Firms will be required to translate export data for their upload into the billing system.

Note on export quotation escaping

For CSV exports we escape quotations using a outer quotes and double inner quotes. For example:

This is a "test" narrative for "Carl"

Will export as:

"This is a ""test"" narrative for ""Carl"""

Export File

The export file provides all information related to released time from timekeepers using Laurel. Each file is formatted as laid out below.

  • Filename: fromISOdate-TO-toISOdate.csv

  • Filetype: Comma separated values (CSV)

Column Name

Data Type

Description

_id

string

A unique id for this entry in Laurel's db. It will usually look like an ObjectId such as 641b3c5c892f282288d70be6

clientId

string

The identifier for the Client assigned to time entry

date

datetime

The date that the time entry was worked on; in ISO 8601 format (ex.: 2023-01-05T09:30+00Z ). Also known as "Transaction Date" in some systems.
NOTE: this value is provided in the user's timezone, not in UTC.

initiativeId

string

The identifier for the initiative assigned to time entry

summary

string

The narrative assigned to time entry in text format with encoding considered
(ex.: “Correspondence with Cpt. Lucard regarding Space matter”).

unitIncrements

int

The initiative's increments in seconds (ex.: 360).

unitIncrementsCount

int

The number of increments (ex: 3). The total duration in seconds is calculated by multiply this number by unitIncrements

userId

string

Timekeeper identifier for which the time entry is assigned (ex.: 12)

Here's a sample of an export with just the default headers:

We also expose other fields that you can request to be in the output or in lieu of the default fields.

Column Name

Data Type

Description

clientCallSign

string

Generally, the client code (ex. 12345)

clientName

string

Generally the name or short-name of the client (ex. Laurel).

initiativeName

string

Generally, the name or short-name of the initiative (ex. General).

totalDurationHours

decimal

The total duration for the entry in hours, rounded to 4 decimal places if increments are not used.

totalDurationMinutes

decimal

The total duration for the entry in minutes, rounded to 4 decimal places if increments are not used.

totalDurationSeconds

int

The total duration for the entry in seconds.

Here's a sample of an export with some custom headers:

Additionally, the released entry may have some or many of the following codes if a timekeeper attached codes

Column Name

Data Type

Description

phase-code

string

The phase code assigned to time entry, in non-description format if possible
(ex.: L400).

task-code

string

The phase code assigned to time entry, in non-description format if possible
(ex.: L450).

action-code

string

The action code assigned to time entry (ex.: A108).

activity-code

string

The activity code assigned to time entry (ex.:).

currency-code

string

The currency code assigned to time entry (ex.: ).

location-code

string

The location code assigned to time entry (ex.: NYC1).

Attachment icon
Attachment icon
Did this answer your question?