Integrations
Connect Ardela to Zapier, Clio, and other CRM systems.
This guide covers the recommended integration pattern for filing completed Ardela recordings into external systems.
Typical filing flow
Poll unsynced recordings → Fetch full content → Create CRM record → Mark filedOptionally add webhooks to wake your integration when recordings complete.
API key setup
Create a key in Settings → API Keys with:
| Integration type | Scopes |
|---|---|
| Read-only monitoring | read:recordings |
| CRM filing (most common) | read:recordings, write:recordings |
| Webhook management | manage:webhooks (in addition to above) |
Zapier (private app)
Trigger: New completed recording
Poll:
GET /api/v1/recordings?status=COMPLETED&syncState=unsynced&limit=50Zapier configuration:
- Dedupe key:
id - Poll interval: 5–15 minutes
- Pagination: follow
meta.nextCursorwhilemeta.hasMoreistrue
The trigger response is metadata-first — use a separate action step to fetch full content.
Action: Get recording details
GET /api/v1/recordings/{{id}}Map these fields in downstream steps:
| Field | Use for |
|---|---|
notes[].content | Generated notes |
documents[].content | Letters and documents |
transcript | Full transcript |
client.referenceNumber | CRM client matching |
matter.referenceNumber | CRM matter matching |
Action: Mark recording filed
After the CRM step succeeds:
POST /api/v1/recordings/{{id}}/filings{
"provider": "zapier",
"externalId": "{{crm_document_id}}",
"externalUrl": "{{crm_document_url}}",
"metadata": {
"zapId": "{{zap_id}}",
"step": "file-to-clio"
}
}Example: File to Clio
- Trigger — New completed recording (
syncState=unsynced) - Ardela — Get recording details (
GET /recordings/:id) - Clio — Upload document using
documents[0].contentor note content - Clio — Create communication on matter
matter.referenceNumber - Ardela — Mark recording filed:
{
"provider": "clio",
"externalId": "doc_123",
"externalUrl": "https://app.clio.com/documents/doc_123",
"metadata": {
"matterId": "matter_456",
"communicationId": "comm_789"
}
}Example: Actionstep / custom CRM
The pattern is the same regardless of provider:
- Poll or webhook for new completed recordings
- Fetch full content by ID
- Map
client,matter,notes, anddocumentsto your CRM's API - Mark filed with your provider name in the
providerfield
Use metadata to store any provider-specific IDs you need for reconciliation.
Optional: webhooks for faster triggers
Instead of polling alone, register a webhook:
POST /api/v1/webhooks
{ "url": "https://your-server.com/ardela", "events": ["recording.completed"] }Your server verifies the signature, fetches full content, and processes the filing. Keep polling as a backup.
See Webhooks.
Performance tips
- Poll
syncState=unsyncedto skip already-filed recordings - Use cursor pagination for catch-up after downtime
- Fetch by ID instead of
include=contenton list for high-volume firms - Use 5–15 minute poll intervals — avoid aggressive polling
