SFTP CSV File Imports
  • 16 Minutes to read
  • Dark
    Light
  • PDF

SFTP CSV File Imports

  • Dark
    Light
  • PDF

Article summary

An SFTP server is available to enterprise plan users at no additional cost, providing a secure method for bulk importing data into Agility Blue. After connecting to the SFTP server, you can upload CSV files to designated folders monitored by the system. The folder you choose determines which object the data will be imported into—detailed instructions are provided below.

While importing data ad hoc is a common use case for uploading bulk information, the SFTP server is often used with automation tools to upload client, matter, and contact data on a scheduled basis, ensuring your information stays synchronized with matter management systems.

Connecting to the SFTP Server

For our enterprise customers, an SFTP CSV file import service is available . Contact support@sadiebluesoftware.com to request the credentials needed to connect to your instance.

Protocol: SFTP – SSH File Transfer Protocol
Port: 22
Logon Type: Normal/UserPass
Username, password, and host information will be provided by support.

Once connected, you will see a list of folders representing the objects where CSV files can be uploaded and imported.

Folder

Description

$logs

All activity recorded in the last 7 days. You can use the logs to view information about your imports or to help troubleshoot issues you’re having with uploading the data.

$processed

Files that have been processed and imported will be copied to this folder and retained for 7 days.

billingentries

Use this folder to import billing entry records.

billingnarrativetypes

Use this folder to import the workspace-level billing narrative types.

billingtypeproperties

Use this folder to import billing type properties. Billing type properties are the individual records that make billing profiles that can be set on a per client, matter, or project basis.

billingtypes

Use this folder to import the workspace-level billing types available to all billing profiles.

clients

Use this folder to import clients.

contacts

Use this folder to import contacts.

customobjects

Use this folder to import records for any custom object.

matters

Use this folder to import matters.

medialogentries

Use this folder to import media log entries.

mediatypes

Use this folder to import the workspace-level media types.

tags

Use this folder to import the workspace-level tags.

volumeranges

Use this folder to import volume ranges associated with existing volumes.

volumes

Use this folder to import volumes.

Notice

All SFTP connections are initially tested using WinSCP and FileZilla clients though you may use any client that supports the ability to connect to an SFTP service. Please note that while we can’t train or troubleshoot the use of these third-party clients, we will make sure you can get connected to the service.

Example: Connect to the SFTP Using the FileZilla Client

To connect to the SFTP using the FileZilla client, first make sure that you have FileZilla installed on your computer. You can find the latest version here.

After FileZilla has been installed, run it and click on the Site Manager button. This is the first button on the toolbar. Once the site manager is open you will see the following:

image.png

  • For Protocol, select "SFTP - SSH File Transfer Protocol"

  • For Host, enter in your specific host address that was provided to you by support

  • For Port, you can leave it blank, or put in 22 (the default port)

  • For Logon Type, select "Normal"

  • For User, enter in your specific username that was provided to you by support

  • For Password, enter in your specific password that was provided to you by support

Click on the "Connect" button. You may be presented with a "Unknown Host Key" window the first time you connect to your SFTP. If you do, click on the checkbox labeled "Always trust this host, add this key to the cache" and click the OK button to continue.

You should now see the following folders in the center bottom panel:

You have now successfully connected to the SFTP and can proceed to drag and drop your CSV files from your computer into the appropriate folder on the SFTP. Continue reading the existing sections for detailed information about the file format the SFTP service accepts.

General Import Guidelines

The CSV file may be named however you want to name it, It’s the folder the file is uploaded in that determines where they get imported. The CSV files do need headers with the field names. The service is setup to use the RFC-4180 standard with UTF-8 file encoding to import Quote-Comma delimited CSV files.

  • The service will not create references to other objects that don’t exist. For example, clients must already exist within the system in order to import matters that reference them.

  • Custom fields need to be named exactly as they appear within Agility Blue and must already exist before importing them. The service will not create fields that don't already exist.

  • Blank entries are interpreted as NULL values by the system.

  • Quotes around values are required if there are quotes or commas as part of the value itself. For example, the following value: ABC, Inc. (An “Alphabetical” Company) would need quotes around it: “ABC, Inc. (“Alphabetical” company)”.

  • Clients need to exist before importing new matters, so be sure to upload the clients file first. The system will queue files in the order they are uploaded and will perform imports one at a time.

  • The service will also not create references of any objects other than the one being imported into. Task, project, matter, or client references must already exist when other objects reference them.

  • Multiple choice values must be separated with an escaped newline character: \n

  • The service will create new entries or update existing entries based on the guidelines set forth for the object you are importing data into.

  • When creating new entries, fields that are omitted will be Null unless explicitly stated in the object’s field table.

  • When updating existing entries, fields that are omitted will be ignored. This allows you to patch-update specific fields in your CSV without having to worry about affecting the values of fields you aren’t providing.

Reference Fields

You may import data into Reference fields using the following guide:

  • Values can only be referenced by their unique Agility Blue ID (the “Id” column in the app).

  • The IDs of the values being referenced must already exist within Agility Blue. If a value does not exist, it will be ignored.

  • Duplicate values are removed prior to import.

  • Existing values are replaced when updating data.

  • Multiple values must be separated with an escaped newline character: \n

The sample image below shows a "Billing Contacts" custom field that references the contact object. The values 12 and 28 within the data represent the Agility Blue Ids for two different contacts that already exist within the system. The last three records showcase how multiple values can be imported with the \n separator.

image.png

The results of this import in Agility Blue for the billing contacts field:

image.png

Folder Details

The following folders are available for you to import your data into. Each object has their own set of guidelines and rules to follow, so be sure to review them prior to uploading your file to help avoid issues from cropping up during the process.

$logs

The $logs folder is used by the system to place daily log files of activity. This is the place to go to check on the status of an import and to perform any troubleshooting. Any errors that ocurred during the import will be listed in the log file.

$processed

The $processed folder is used by the system to place previously processed files. Import files are held for up to 7 days and then removed.

billingentries

The billingentries folder is where you may place a CSV file that contains billing entry records.

CSV required fields to create new records:

  • "Billing Type Id" (Number-based), OR "Billing Type Billing Code" (Text-based), OR "Billing Type Description" (Text-based - The global billing type description, not an overridden profile description)

  • "Unit Price" (Decimal-based)

Optional fields:

  • "Client Id" (Number-based)

  • "Client Name" (Text-based)

  • "Client Reference" (Text-based)

  • "Matter Id" (Number-based)

  • "Matter Name" (Text-based)

  • "Matter Reference" (Text-based)

  • “Project Id” (Number-based).

  • "Task Id" (Number-based).

  • "Date" (Date-based).

  • "Quantity" (Decimal-based).

  • "Billing Type Description Override" (Text-based).

  • "Narrative" (Text-based).

  • "Notes" (Text-based).

  • Any custom fields defined for the object.

Rules:

  • If updating an existing billing entry, the "Billing Entry Id" field must be provided (a system-generated id in Agility Blue).

  • If the billing type needs to be updated on an existing billing entry, be sure to include the Billing Type Id field. If you only have the billing type code or description, each billing type id field should be empty or set to 0.

  • To associate a billing entry with an existing client, provide one of the following fields:

    • Client Id (a system-generated id located in Agility Blue)

    • Client Name

    • Client Reference

  • If the client needs to be updated on an existing billing entry, be sure to include the Client Id field. If you are only providing the client name or reference, each client id field should be empty or set to 0.

  • To associate a billing entry with an existing matter, provide one of the following:

    • The Matter Id (a system-generated id located in Agility Blue)

    • The Matter Name

    • The Matter Reference

    • The Client Id + The Matter Name (2 separate fields)

    • The Client Name + The Matter Name (2 separate fields)

    • The Client Reference + The Matter Name (2 separate fields)

    • The Client Id + The Matter Reference (2 separate fields)

    • The Client Name + The Matter Reference (2 separate fields)

    • The Client Reference + The Matter Reference (2 separate fields

  • If the matter needs to be updated, be sure to include the Matter Id field. If you are only providing the matter name or reference, each matter id field should be empty or set to 0.

  • To associate a billing entry with an existing project, the Project Id field must be provided (a system-generated id in Agility Blue).

  • To associate a billing entry with an existing task, the Task Id field must be provided (a system-generated id in Agility Blue).

  • If multiple association levels are present (client, matter, project, and task fields), the order of priority is bottom-up, meaning the task fields will get the highest priority.

  • If any provided association is not found or more than one instance is found for the association, the billing entry will not be created or updated and an error will be issued for the record.

clients

The clients folder is where you may place a CSV file that contains client records to import using the following field table.

Field

Type

Details

Requirement

Client Id

Number

Agility Blue Id field for clients.

Optional

Client Name

Text (Unique)

The name of the client. This field is required and must be unique.

Required

Client Reference

Text

A reference identifier for the client. Can be used to update existing clients.

Optional

Active

Boolean

Indicates if the client is active. Acceptable values: True, False, Yes, No, 1, 0. Defaults to True if not provided.

Optional

Custom Fields

Varies by definition

Any custom fields defined for the object. Ensure the column name in the CSV matches exactly to the field name in Agility Blue.

Optional

Guidelines

  • The system requires that all client names must be unique.

  • When updating existing clients, you may provide either the Client Name field or the Client Reference field to locate an existing entry.

Example

Client Name,Client Reference,Client Address,Status
AGM Widget Corporation,1024,"123 Main Street, Somewhere, USA",Active
Frederick Construction Co,1025,"555 Everywhere, Nowhere, USA",Held
Omega Glass Company,1026,,Archived

Points of interest related to this example

  • There are 2 custom fields defined on the client object that we are importing data into (shown in purple text above for clarity): Client Address (a rich text field), and Status (a single choice field).

  • For the 3rd entry (Omega Glass Company), the Client Address field will be imported as Null, because there is no text being provided.

  • Note that the Client Address field is surrounded by double quotes because the value contains commas (shown more clearly on the Text tab).

contacts

The contacts folder is where you may place a CSV file that contains contact records to import using the following field table.

Field

Type

Details

Requirement

Contact Id

Number (Unique)

Agility Blue Id field for contacts.

Optional

Email

Text (Unique)

The contact’s email address. This field is required and must be unique.

Required

First Name

Text

The contact’s first name.

Optional

Last Name

Text

The contact’s last name.

Optional

Phone Number

Text

The contact’s phone number.

Optional

Enable Notifications

Boolean

Enables project notifications for a contact. Acceptable values: True, False, Yes, No, 1, 0. Defaults to False if not provided. Be sure to understand what kind of information is sent to an external user when this is enabled.

Optional

Time Zone Identifier

Text

Windows Time Zone Name. If the contact has notifications enabled, setting their time zone may be useful for dates displayed in the email if they are not in the workspace-defined time zone (examples: “Eastern Standard Time”, “Central Standard Time”, etc.).

Optional

Custom Fields

Varies by definition

Any custom fields defined for the object. Ensure the column name in the CSV matches exactly to the field name in Agility Blue.

Optional

Guidelines

  • The system requires that all email addresses must be unique.

  • When updating existing contacts, you must provide the Email Address field to locate an existing entry.

Example

Email,First Name,Last Name,Office Location,Skills
abutler@abdemo.com,Adele,Butler,Minneapolis,1
dtayler@agilitybluedemo.com,Donna,Taylor,Dallas,1\n2

Points of interest related to this example

  • There are 2 custom fields defined on the contact object that we are importing data into (shown in purple text above for clarity): Office Location (a single choice field), and Skills (a custom object reference field).

  • The Skills object reference field requires the Id to reference the objects. For multiple values, a \n (escaped new-line character) must separate the them. In the example, the custom object Skill has Document Review for entry Id 1 and Analytics for entry Id 2. For more details, read the section on Reference fields.

customobjects

The customobjects folder is where you may place a CSV file that contains custom object entry records to import using the following field table.

Field

Type

Details

Requirement

Object Id

Number

The object’s Id (not the record Id). This is necessary so the system understands which custom object you want to import data into.

Required

Id

Number (Unique)

The Agility Blue ID field for an entry. Necessary for updating existing entries.

Optional

Custom Fields

Varies by definition

Any custom fields defined for the object. Ensure the column name in the CSV matches exactly to the field name in Agility Blue.

Optional

Guidelines

  • The required Object Id field is used to determine which custom object the data belongs to. This value should be the same for every record in the CSV (do not mix and match object ids). To locate your object id within the app within your workspace: click on the settings gear icon on the top right navigation bar, and choose Objects. Ensure that the Id field is in view - this will be the value you use for each CSV record.

  • This folder is only for creating/updating custom object entries. Do not try to use system object ids - it won't work.

  • If updating existing custom object entries, the Id field must be provided (a system-generated id in Agility Blue). No other fields may be used to identify an existing custom object entry.

Example

Object Id,Name,Notes,Locations,Media Log Entries
14,Mary White,"Custodian Imported on 1/1/2025",MN,62
14,Casey Copeland,"Custodian Imported on 1/1/2025<br />Imported by R.C.W.",MN\nFL,13\n14

Points of interest related to this example

  • In this example, we’ve created a custom object in Agility Blue named Custodian that has been assigned an object id of 14. We’ve created the following fields:

    • Name, a basic text field that we indicate as the reference link field.

    • Notes, a rich text field to store information about a custodian.

    • Locations, a multiple choice field used to indicate where a custodian resides.

    • Media Log Entries, a media log entry reference field where we link media log entries that a custodian is associated with.

  • Note that we are using the same object, 14, for each record in the CSV to tell Agility Blue which custom object it is we’re interested in importing data into.

  • On the second record (Casey Copeland), for the notes field, you may notice the text <br /> - this is an HTML line break character that causes the browser to show information on a separate line. Rich text fields may contain some HTML to help format data.

  • The multiple choice Locations field requires a \n (escaped new-line character) to separate the values.

  • The media log entry object reference field requires the Id to reference the objects. For multiple values, a \n (escaped new-line character) must separate the them. For more details, read the section on Reference fields.

matters

The matters folder is where you may place a CSV file that contains matter records using the following field table. The service does not create clients that do not already exist, so it's important to import clients first so that they exist for the matters to reference.

Field

Type

Details

Requirement

Matter Id

Number

Agility Blue Id field for matters.

Optional

Matter Name

Text, Unique per Client

The name of the matter. This field is required and must be unique per client.

Required

Matter Reference

Text

A reference identifier for the matter. Can be used to update existing matters.

Optional

Client Id

Number

Agility Blue Id field for clients. Can be used to associate an existing client.

Optional

Client Name

Text (Unique)

The name of the client. Can be used to associate an existing client.

Optional

Client Reference

Text

A reference identifier for the client. Can be used to associate an existing client.

Optional

Active

Boolean

Indicates if the client is active. Acceptable values: True, False, Yes, No, 1, 0. Defaults to True if not provided.

Optional

Custom Fields

Varies by definition

Any custom fields defined for the object. Ensure the column name in the CSV matches exactly to the field name in Agility Blue.

Optional

Guidelines

  • The system requires that all matter names are unique per client, meaning you may have the same matter name across different clients but you cannot have duplicate matter names on the same client.

  • Because matters require an existing client to be associated with. You may provide any one of the following fields. If this field is not provided, or the client does not exist, an error will be logged.

    • Client Name

    • Client Reference

    • Client Id

  • When updating existing matters, you may provide either the Matter Name field or the Matter Reference field to locate an existing entry.

Example

Matter Name,Matter Reference,Client Name,Status,ESI Protocol Available,Billing Contact Email
AGM Widget Corp. vs. MGM Manufacturing Inc.,000001,AGM Widget Corporation,Open,Yes,abutler@abdemo.com
Moonrise vs. Johnson Analytics,000001,Frederick Construction Co,Open,Yes,dtayler@agilitybluedemo.com
"National Fencing v. Epsilon Construction, et al.",000002,Frederick Construction Co,Open,No,econnor@agilitybluedemo.com

Points of interest related to this example

  • There are 3 custom fields defined on the matter object that we are importing data into (shown in purple text above for clarity): Status (a single choice field), ESI Protocol Available (a yes/no field) and Billing Contact Email (a basic text field).

  • We are providing the Client Name field to associate these matters with to the existing clients in the system.

  • Note that the Matter Name field is surrounded by double quotes for the 3rd entry (National Fencidng v. Epsilon Construction, et al.) because this value contains commas (shown more clearly on the CSV tab).

medialogentries

The medialogentries folder is where you may place a CSV file that contains media log entry records.

CSV required fields to create new records:

  • "Media Type Id" (Number-based) OR "Media Type Name" (Text-based)

Optional fields:

  • "Client Id" (Number-based)

  • "Client Name" (Text-based)

  • "Client Reference" (Text-based)

  • "Matter Id" (Number-based)

  • "Matter Name" (Text-based)

  • "Matter Reference" (Text-based)

  • "Project Id" (Number-based)

  • "Task Id" (Number-based)

  • "From" (Text-based)

  • "To" (Text-based)

  • "Reference" (Text-based)

  • "Location" (Text-based)

  • "Custodian" (Text-based)

  • "Notes" (Text-based)

  • "Date" (Date-based)

  • Any custom fields defined for the object.

Rules:

  • Any combination of system fields may be used for the purposes of updating existing media log entries.

  • If the media type needs to be updated on an existing media log entry, be sure to include the MediaTypeId field. If you only have the media type name, each media type id field should be empty or set to 0.

  • To associate a media log entry with an existing client, provide one of the following fields:

    • Client Id (a system-generated id located in Agility Blue)

    • Client Name

    • Client Reference

  • If the client needs to be updated on an existing media log entry, be sure to include the ClientId field. If you are only providing the client name or reference, each client id field should be empty or set to 0.

  • To associate a media log entry with an existing matter, provide one of the following:

    • The Matter Id (a system-generated id located in Agility Blue)

    • The Matter Name

    • The Matter Reference

    • The Client Id + The Matter Name (2 separate fields)

    • The Client Name + The Matter Name (2 separate fields)

    • The Client Reference + The Matter Name (2 separate fields)

    • The Client Id + The Matter Reference (2 separate fields)

    • The Client Name + The Matter Reference (2 separate fields)

    • The Client Reference + The Matter Reference (2 separate fields

  • If the matter needs to be updated, be sure to include the MatterId field. If you are only providing the matter name or reference, each matter id field should be empty or set to 0.

  • To associate a media log entry with an existing project, the Project Id field must be provided (a system-generated id in Agility Blue).

  • To associate a media log entry with an existing task, the Task Id field must be provided (a system-generated id in Agility Blue).

  • If multiple association levels are present (client, matter, project, and task fields), the order of priority is bottom-up, meaning the task fields will get the highest priority.

  • If any provided association is not found or more than one instance is found for the association, the media log entry will not be created or updated and an error will be issued for the record.


What's Next