Template Analytics¶
Opened from a row on the Templates page — completion rate, time-to-sign, and per-field drop-off for one template.
Endpoint summary¶
| Method | Path | Summary |
|---|---|---|
| GET | /organization/v1/templates/{templateId}/analytics |
Completion rate + status counts |
| GET | /organization/v1/templates/{templateId}/analytics/full |
Above + time-to-sign in one call |
| GET | /organization/v1/templates/{templateId}/time-to-sign |
Time-to-sign distribution |
| GET | /workflow/v1/templates/{templateId}/field-drop-off |
Per-field completion/drop-off |
| POST | /workflow/v1/field-events |
Ingest signing-interaction events (feeds drop-off) |
Completion rate¶
{
"templateId": 42,
"templateName": "Standard NDA",
"completionRate": 0.82,
"counts": { "total": 120, "completed": 98, "void": 6, "inProgress": 14, "draft": 2, "other": 0 }
}
GET /organization/v1/templates/{templateId}/analytics/full returns the same thing plus time-to-sign stats in a single response — use this if the page renders both charts together.
Time to sign¶
{
"templateId": 42,
"templateName": "Standard NDA",
"sampleSize": 98,
"avgHours": 6.4,
"medianHours": 2.1,
"p90Hours": 18.7,
"distribution": { "under1h": 40, "under1d": 35, "under3d": 15, "under7d": 6, "over7d": 2 }
}
Field drop-off¶
Returns per-field completion/drop-off rates — which specific field on the template causes people to abandon signing:
{
"templateId": 42,
"templateName": "Standard NDA",
"fields": [
{ "placeholderKey": "signature-1", "fieldType": "SIGNATURE", "pageNo": 1, "label": "Client Signer", "reached": 118, "completed": 98, "dropOffRate": 0.17, "lowSample": false, "confusionRecoveries": 4 }
],
"totalSessions": 120,
"collectingSince": "2026-05-01T00:00:00Z"
}
This is computed from telemetry the signing UI sends as recipients interact with fields:
POST /workflow/v1/field-events
Content-Type: application/json
{
"sessionId": "b6e2...",
"workflowId": 887,
"documentId": 1200,
"events": [
{ "fieldId": 5501, "type": "FIELD_VIEWED", "at": "2026-08-01T09:30:01Z" },
{ "fieldId": 5501, "type": "FIELD_FILLED", "at": "2026-08-01T09:30:14Z" }
]
}
type is one of SESSION_START, FIELD_VIEWED, FIELD_FOCUSED, FIELD_GLANCED, FIELD_FILLED, SUBMITTED. Always returns 202 Accepted with { "ingested": 2, "skipped": 0 } — malformed individual events are silently skipped, not rejected as a batch. This call is made by the signing UI itself (see Sending & Signing), not something you'd typically call directly unless building a custom signing client.