An interaction is one logged touchpoint with a client: a call, an email, a meeting. This API records interactions against clients, contacts, tickets, projects, and opportunities, so integrations like phone systems and calendars can write straight into the client history.
POST /api/v1/interactions needs only a type_id; everything else is optional context. Link the record to a client_id, contact_name_id, ticket_id, project_id, or opportunity_id, and record duration or start_time/end_time for calls and meetings. Filter the log with GET /api/v1/interactions by any of those links plus a date range.
curl https://algapsa.com/api/v1/interactions \
-H "X-API-Key: $ALGA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type_id": "0197c1b7-...",
"client_id": "0197c1a2-...",
"title": "Renewal call with office manager",
"notes": "Confirmed headcount, wants revised seat count on the next invoice.",
"duration": 20
}'Every interaction is classified by a type. GET /interaction-types returns the union of the built-in system types and the types the tenant has defined, so pick the type_id from there rather than hard-coding IDs.
Statuses work the same way. GET /interaction-statuses returns the tenant's interaction statuses in display order, with is_closed and is_default flags, so you can resolve a status name to its status_id before creating or updating an interaction.
Every endpoint links through to its full parameters, request and response schemas, and code samples.
GET/api/v1/interaction-statusesAlgaPSAAlgaDeskList interaction statusesGET/api/v1/interaction-typesAlgaPSAAlgaDeskList interaction typesGET/api/v1/interactionsAlgaPSAAlgaDeskList interactionsPOST/api/v1/interactionsAlgaPSAAlgaDeskCreate an interactionGET/api/v1/interactions/{id}AlgaPSAAlgaDeskGet an interactionPUT/api/v1/interactions/{id}AlgaPSAAlgaDeskUpdate an interaction status or notes