SmartAdvocate
Authentication: SmartAdvocate host, username, and password. See Magic Link for the runtime auth flow.
Sample use cases
- Open a new case for a personal-injury client and set the case type.
- List all appointments scheduled for case number 2024-0512.
- Add the plaintiff’s injuries and treatment details to the case.
- Show me the outstanding tasks assigned to the litigation team.
Available Tools
List every calendar appointment on one case by internal case ID. Not paginated — returns the case’s full appointment…
List every calendar appointment on one case by its human-readable case number. Use list_case_appointments when you al…
Search appointments across cases for firm-wide calendars and deadline reports. The modified-date window is required;…
Schedule an appointment on a case — a hearing, deposition, meeting, or reminder. Call list_appointment_types, list_ap…
List the firm’s appointment types, e.g. Deposition or Trial. Call this before create_appointment — type IDs are per-f…
List the firm’s appointment activity types — the secondary classification on an appointment. Call this before create_…
List the firm’s appointment statuses, e.g. Scheduled or Cancelled. Call this before create_appointment.
List the calls logged on one case — remote party, number, direction, date, and summary. Page with page_info.next_page.
Log a phone call on a case. direction is true for outbound and false for inbound. Use list_case_contacts or lookup_co…
Replace a logged call in full. Every field you want kept must be supplied — omitted fields are cleared. Use patch_cal…
Change selected fields on a logged call, leaving the others untouched. Pass fields as a mapping of API field name to…
Delete a logged call from a case permanently. This cannot be undone.
Get one case by its internal case ID, including parties, staff, tags, and incident summary. Use get_case_info instead…
Get a case by its human-readable case number, e.g. 9000002. Use get_case instead when you already have the internal c…
Search cases modified within a date range, optionally narrowed by case number, case type, case group, or tag. The dat…
List open cases assigned to one staff member, for workload or dashboard views. Use list_case_staff on a known case to…
Open a new case from intake details. Call list_case_groups and list_case_types first — group and type IDs are per-fir…
Change a case’s human-readable case number. The firm must have case-number editing enabled in SmartAdvocate and the n…
List every contact linked to a case with the role each one holds — plaintiff, defendant, witness, adjuster, and so on…
Link an existing contact to a case in a role. Find the contact ID with lookup_contacts or search_contacts, or create…
Replace a case-contact link’s role and comments. This is a full replacement — any field left unset is cleared. Use pa…
Change selected fields on a case-contact link, leaving the others untouched. Pass fields as a mapping of field name t…
Unlink a contact from a case. This removes the case-contact relationship only; the contact record itself is left in p…
List cases linked to this one as related matters — consolidated cases, companion cases, or other cases involving the…
List the firm’s case groups — the top-level case classification, e.g. Personal Injury. Call this before create_case o…
List the case types inside one case group — the second-level classification. Get the group ID from list_case_groups…
List the subtypes inside one case type — the third-level classification. Get the case type ID from list_case_types. R…
Get a contact’s core details by contact ID — name, primary address, phone, and email. Use get_contact_full for the co…
Get a contact’s complete record, including all addresses, emails, phones, and classification fields. Heavier than get…
Search contacts by modified-date window, optionally restricted to those linked to given case numbers. The date window…
Find contacts by name or phone number — the way to resolve a person to a contact ID before add_case_contact, add_plai…
Create a contact. Call list_contact_types first — category and type IDs are per-firm configuration. Give first_name a…
Change selected fields on a contact, leaving the others untouched. Pass fields as a mapping of API field name to new…
List contacts related to a given contact, with the relationship each one holds — family members, employers, and simil…
List a contact’s postal addresses. Returns the address IDs patch_contact_address and delete_contact_address take.
Add one or more postal addresses to a contact. Pass a list even for a single address. Use list_incident_states for va…
Change selected fields on one of a contact’s addresses. Get the address ID from list_contact_addresses. Pass fields a…
Delete one address from a contact permanently. This cannot be undone.
List a contact’s email addresses. The address itself is in the name field. Returns the email IDs patch_contact_emai…
Add one or more email addresses to a contact. Pass a list even for a single address. Set prevent_auto_contact to stop…
Change selected fields on one of a contact’s email addresses. The address itself is the name field. Get the email I…
Delete one email address from a contact permanently. This cannot be undone.
List a contact’s phone numbers with their labels and texting flags. Returns the phone IDs patch_contact_phone and del…
Add one or more phone numbers to a contact. Pass a list even for a single number. Use list_phone_types for the labels…
Change selected fields on one of a contact’s phone numbers. Get the phone ID from list_contact_phones. Pass fields as…
Delete one phone number from a contact permanently. This cannot be undone.
List the firm’s contact types for a contact category. Call this before create_contact — the category and type IDs are…
List the firm’s address types for a contact category, for labelling addresses on a contact.
List the firm’s phone types, e.g. Mobile Phone or Work Phone. Use one of these as the name when calling add_contact_p…
List the firm’s contact subcategories. Feeds contact_sub_category_id on create_contact.
List document metadata for one case, filtered server-side by category, subcategory, or originating/destination contac…
List document metadata for one case by its human-readable case number, with the same category and contact filters. Us…
Get one document’s metadata by document ID — name, category, dates, and review state. Returns no file content; use do…
Search document metadata across cases by modified-date window, narrowed by case number, category, subcategory, or con…
Create a document metadata record on a case. This moves no bytes — call upload_document_content with the returned doc…
Replace a document’s metadata in full. Every field you want kept must be supplied — omitted fields are cleared. Use p…
Change selected metadata fields on a document, leaving the others untouched. Pass fields as a mapping of API field na…
Download a document’s file content by document ID. Returns UTF-8 text as text and anything else as base64 — check the…
Attach file content to an existing document record. Pass the bytes as base64 in content_base64, or a file_reference f…
List the firm’s document categories with their subcategories, one row per category/subcategory pair. Call this before…
List the document folders configured on one case. Use a folder name as document_folder on create_document to file a d…
List the firm’s document tags. Call this before create_document to pass valid tag_ids.
Get a case’s incident record — the facts of what happened plus structured details like date, state, and county. Retur…
Get a case’s incident record by its human-readable case number. Use get_case_incident when you already have the inter…
Search incident records across cases by modified-date window, optionally restricted to specific case numbers. The dat…
Replace a case’s incident facts and structured details. Get the incident ID from get_case_incident. Supplying inciden…
Change selected fields on a case’s incident record, leaving the others untouched. Pass fields as a mapping of API fie…
List the states available on incident records. Call this before update_incident to get a valid state ID, or to resolv…
List the counties available on incident records. This is a large reference list covering every state; call it before…
List the firm’s liability codes for incident records. Call this before update_incident — these IDs are per-firm confi…
List the injury records on a case, one per injured plaintiff. Returns the injury IDs the injury-detail tools take. Us…
Get one injury record on a case, including its summaries and confinement details. Use list_case_injuries to find inju…
Search injury records across cases by modified-date window, optionally restricted to specific case numbers. The date…
Create an injury record for one plaintiff on a case. plaintiff_id is the plaintiff RECORD id from list_plaintiffs, no…
Replace an injury record’s summaries, confinement details, and comments. Fields left unset are cleared, so supply eve…
Delete an injury record from a case permanently, along with its detail rows. This cannot be undone.
List the detail rows under one injury — each a body part with its treatments and sequelae. Returns the detail row IDs…
Get one injury detail row by its ID. Use list_injury_details to find row IDs.
Add a body-part detail row to an injury. Call list_body_parts first, then list_treatments and list_sequelae with that…
Replace an injury detail row. Fields left unset are cleared, so supply everything you want kept. Use patch_injury_det…
Change selected fields on an injury detail row, leaving the others untouched. Pass fields as a mapping of API field n…
Delete one injury detail row permanently. This cannot be undone.
Add injury detail rows from ICD diagnosis codes, letting SmartAdvocate map each code to the right body part and injur…
Add procedure detail rows to an injury from CPT procedure codes, letting SmartAdvocate map each code to the right tre…
List the body parts available on injury detail rows. Call this first when building a detail row, then feed the ID to…
List the sequelae — follow-on conditions — recorded for one body part. Feeds sequelae_ids on create_injury_detail. Us…
List the treatments available for one body part. Feeds treatment_ids on create_injury_detail. Use list_body_parts to…
List the firm’s catalogue of injury names. This is a large reference list; use it to resolve an injury description to…
List the insurance policies on a case for one side. party is required: ‘P’ for plaintiff-side coverage, ‘D’ for defen…
List insurance policies for one side of a case by its human-readable case number. Use list_case_insurance when you al…
Get one insurance policy on a case by its insurance record ID, including carrier, adjuster, limits, and claim number.
Record an insurance policy on a case. Set party to ‘P’ or ‘D’ and pass the matching plaintiff_id or defendant_id from…
Replace an insurance policy in full. Fields left unset are cleared, so supply everything you want kept, including par…
Change selected fields on an insurance policy, leaving the others untouched. Pass fields as a mapping of API field na…
Delete an insurance policy from a case permanently. This cannot be undone.
List the firm’s insurance types, e.g. auto liability or health. Call this before create_insurance — these IDs are per…
List the notes on one case by internal case ID, newest first. Use list_notes_by_case_number when you only have the ca…
List the notes on one case by its human-readable case number. Use list_case_notes when you already have the internal…
Get one case note by its note ID, including full body text and sharing settings.
Search notes across cases by modified-date window, optionally restricted to specific case numbers. The date window is…
Add a note to a case. Call list_note_types first — note type IDs are per-firm configuration. note_text accepts HTML…
Replace a note in full — type, body, date, subject, contact, priority and sharing. Every field left unset is cleared,…
Change selected fields on a note, leaving the others untouched. Pass fields as a mapping of API field name to new val…
List the firm’s note types. Call this before create_note or update_note — note type IDs are per-firm configuration an…
List the plaintiffs on a case with their roles and contact IDs. Set add_contact_info to include full contact details,…
List the defendants on a case with their roles and contact IDs.
Add a plaintiff to a case. Call list_plaintiff_roles first with the case’s type ID — role IDs are per-firm configurat…
Change selected fields on a plaintiff record, leaving the others untouched. Pass fields as a mapping of API field nam…
List the plaintiff roles available for a case type, e.g. Passenger or Driver. Call this before add_plaintiff — role I…
Look up cases by a single criterion, e.g. every case with a given status. Pass the value as criteria and what it refe…
List the staff assigned to one case with their roles. This is the discovery tool for staff IDs: it returns the contac…
List staff assignments by case number. Accepts % as a wildcard, so ‘1%’ returns assignments for every case whose numb…
Search staff assignments across cases by modified-date window, optionally restricted to specific case numbers. The da…
List a case’s status history by internal case ID — each record with its type, value, and effective dates. A record wi…
List a case’s status history by its human-readable case number. Use list_case_statuses when you already have the inte…
Get one case status record by its status record ID, with dates and comments.
Search case status records across cases by modified-date window, optionally restricted to specific case numbers. The…
Add a status record to a case. Call list_status_types first — both the status type ID and the status value ID within…
Change the comment on an existing case status record. Only the comment can be edited; use create_case_status to recor…
Close out the active status of a given type on a case by stamping its end date. Nothing is deleted — the record stays…
List the firm’s case status types and the status values inside each one. Call this before create_case_status or termi…
List every tag defined in the firm, with its active state and any case-group or case-type restrictions. Use list_avai…
Get one tag definition by ID, including its group and case-type restrictions.
Define a new tag that can be applied to cases. Set limit_groups true and pass groups to restrict it to certain case g…
Update a tag definition’s name, active state, or group restrictions. This replaces the tag’s properties, so supply ev…
Delete a tag definition permanently. This also removes the tag from every case it was applied to and cannot be undone…
List the tags that can still be applied to one case — those allowed for its case group and type and not already assig…
Apply one or more existing tags to a case. Call list_available_case_tags first — a tag not permitted for the case’s g…
Take one or more tags off a case. The tag definitions themselves are left intact — use delete_tag to remove a definit…
List the tasks on one case by internal case ID. Use list_tasks_by_case_number when you only have the case number, or…
List the tasks on one case by its human-readable case number. Use list_case_tasks when you already have the internal…
Get one task by its task ID, including assignee, dates, and attached documents.
Search tasks across cases, filtering by modified window, due-date range, type, status, assignee, or template. All fil…
Create a task on a case. Call list_task_types, list_task_statuses, and list_task_priorities first — these IDs are per…
Replace a task in full. Every field you want kept must be supplied — omitted fields are cleared. Use patch_task to ch…
Change selected fields on a task, leaving the others untouched. Pass fields as a mapping of API field name to new val…
Delete a task permanently by its task ID. This cannot be undone.
List the firm’s task types. Call this before create_task, update_task, or search_tasks — task type IDs are per-firm c…
List the firm’s task statuses, e.g. Not Started or Completed. Call this before create_task, update_task, or search_ta…
List the firm’s task priority levels, e.g. Normal or High. Call this before create_task or update_task.
List a case’s user-defined fields and their current values — SmartAdvocate’s custom fields. This is the discovery too…
List a case’s user-defined fields by its human-readable case number. Use list_case_udfs when you already have the int…
Get one user-defined field’s value on a case by its UDF definition ID. Use list_case_udfs to find UDF IDs.
Search user-defined field values across cases by modified-date window, optionally restricted to specific case numbers…
Set one user-defined field’s value on a case. Call list_case_udfs first for the udfid, and pass its relatedPK as sub_…
Set several user-defined field values on one case in a single transaction — if any entry is invalid nothing is writte…
List the rows of a UDF grid on a case. Get the screen name from the screen_name of a grid-type field returned by list…
Get one row of a UDF grid by row ID, returning each cell’s column definition ID and value. Use list_udf_grid_rows to…
Add a row to a UDF grid on a case. Read the column definition IDs from an existing row with list_udf_grid_rows first…
Replace a UDF grid row’s cells. This is a full replacement — include every column you want kept, with each cell’s udf…
Delete a row from a UDF grid on a case. This cannot be undone.