Create a new form packet for a patient. Specify the patient and either a list of form template IDs or a form template group ID. Optionally set a due date and pre-fill form fields with known data using attribute name keys (see the prefill field for details). Use GET /form/template/{id}/attribute to discover available attribute names for a template.
Form template group ID. Either formTemplateGroupId or formTemplateIds is required. When both are provided, formTemplateGroupId takes precedence.
List of form template IDs to include. Either formTemplateIds or formTemplateGroupId is required.
[ 101, 102, 103 ]
Pre-fill form fields with known data. Keys are form element attribute names (case-insensitive, trimmed) and values are the answer strings. Applied across all forms in the packet — each field whose attribute name matches a key will be pre-filled. Fields without a match are auto-filled from the patient record when possible. Use GET /form/template/{id}/attribute to discover available attribute names.
{ "email": "john@example.com", "first_name": "John" }
- Mock serverhttps://api-docs.lobbie.com/_mock/openapi/partner/v2/account/{accountId}/location/{locationId}/form-packet
- Productionhttps://api-prod.lobbie.com/lobbie/api/partner/v2/account/{accountId}/location/{locationId}/form-packet
curl -i -X POST \
'https://api-docs.lobbie.com/_mock/openapi/partner/v2/account/{accountId}/location/{locationId}/form-packet' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-d '{
"dueDate": "2025-01-20T17:00:00-05:00",
"formTemplateGroupId": 500,
"formTemplateIds": [
101,
102,
103
],
"patientId": 67890,
"prefill": {
"email": "john@example.com",
"first_name": "John"
},
"sendNotification": true
}'Form packet created successfully
Completion timestamp. Not monotonic: can transition back to null and re-set if forms are added to a completed packet, an EHR sync retracts completion, or staff manually clear it. Treat each form-packet.updated event as a state snapshot, not a terminal completion signal.
Whether the form packet is active. Inactive packets have been deactivated by the system (e.g. via appointment cancellation).
{ "completedAt": "2025-01-18T14:30:00-05:00", "createdAt": "2025-01-15T14:00:00Z", "dueDate": "2025-01-20T17:00:00-05:00", "formTemplateIds": [ 101, 102 ], "id": 12345, "isActive": true, "isArchived": false, "locationId": 111, "locationName": "Main Street Clinic", "patientId": 67890, "patientName": "John Doe", "updatedAt": "2025-01-15T14:00:00Z" }