Links

Overview

Links in Origami represent associations between two records across domains. A link connects a parent record to a child record, where:

  • Parent can be any standard or custom domain in the system (Claim, Policy, Location, Member, Contact, Incident, etc.).
  • Child must be a "linkable" domain. Currently, only Contact and File are linkable child types. This is a fixed set defined in the application code, not a configurable setting. There is no API endpoint to discover which domains are linkable children; assume Contact and File unless otherwise documented.

When the child domain is Contact, links support an optional Relationship (e.g., "Adjuster", "Broker", "Claimant") from the Contact Type code list. This allows multiple contacts to be linked to the same parent with different roles.

Use Cases

  • Attach an adjuster to a claim: Link a Contact (the adjuster) to a Claim with the relationship "Adjuster" so the assignment is tracked.
  • Attach a policy document to a policy: Link a File (the uploaded PDF) to a Policy record so it appears in the policy's documents tab.
  • Associate a broker with a proposal: Link a Contact (the broker) to a Proposal with the relationship "Broker" to record who placed the submission.
  • Share a contact across multiple claims: Link the same Contact to several Claim records, each with its own relationship type (e.g., "Defense Attorney" on one, "Expert Witness" on another).
  • Attach inspection photos to a location: Link multiple File records to a single Location to store site inspection documentation.

Key Concepts

ConceptDescription
ParentAny domain record that can have child records linked to it.
ChildA record from a linkable domain (currently Contact and File).
RelationshipAn optional classification for Contact links (e.g., "Adjuster", "Broker"). Uses the Contact Type code list. Not applicable to non-Contact child domains.
Link RecordThe association itself, stored in the Links table. Contains the parent domain/ID, child domain/ID, and optional relationship.

Endpoints

EndpointDescription
GET /api/Link/QueryQuery link associations by parent, child, or both.
POST /api/Link/UpsertCreate a new link or update an existing one.
POST /api/Link/RemoveDelete an existing link.

Record Identification

All Link endpoints support two ways to identify parent and child records:

  1. By primary key (preferred): Provide the record's ID directly (e.g., ParentRecordID).
  2. By match field: Provide a field name and value to look up the record (e.g., ParentRecordMatchField=ClaimNumber + ParentRecordKey=CLM-2026-001). Only text or numeric fields are accepted.

If both are provided for the same side, the primary key takes priority.

Permissions

Link operations check the authenticated user's permissions on the parent domain:

Child DomainUpsert PermissionRemove Permission
ContactAttach ContactsDetach Contacts
FileAttach FilesModify Files
OtherEditEdit

* The user must also have View permission on the child domain.