- Get Suki
template_idUUIDs for static entries, and/or define partnerschemaobjects for dynamic form entries. - Install the package for your framework (JavaScript or React).
- Create
SukiAuthManagerwith yourpartnerTokenand provider fields. - Create
FormFillingClientwith that auth manager. - Start a session with
formsand your encounter ID ascorrelation_id.
Prerequisites
Before you start, ensure you have the following:- Partner credentials from Suki (
partnerIdandpartnerToken). - Medical form template IDs from Suki’s Support team for static forms, and/or partner
schemaobjects for dynamic forms. Refer to Medical form templates and Dynamic Form filling. - A browser on HTTPS with microphone access and a page container that has explicit height for the Form filling UI.
- Form filling SDK
v0.1.0-beta.3or later for dynamic and mixedforms.
Forms for the session
The Form filling SDK supports Suki Medical form templates (such as Vitals, Neuro, and Skin) and partner-defined dynamic schemas. Prefer theforms array. Each entry uses either form_template_id or schema. You can mix both in one session. Refer to Form filling templates and Dynamic Form filling.
You can also pass static Suki template IDs with form_template_ids when forms is omitted. That option is deprecated. Prefer forms: [{ form_template_id }]. If you provide forms, it is the only source of Context.
Your encounter ID (correlation_id)
When you start a Form filling session, pass your encounter or appointment ID in the correlation_id parameter. Suki includes this ID in SDK callbacks and partner webhooks so you can associate results with the correct patient record.
Pass correlation_id when you call start() or render FormFilling, together with forms. Suki returns the same correlation_id in SDK callbacks and partner webhooks when results are available.
Register a Partner webhook and use correlation_id together with the Form filling session ID to associate webhook events with the correct encounter. For more information, refer to Configuration and the Webhook handler example.
Recommended integration pattern
CreateSukiAuthManager and FormFillingClient once per page, then open Form filling only when the clinician starts a session.
Suki Auth Manager
Create
SukiAuthManager once after the partner token is available.Form Filling Client
Create
FormFillingClient with that auth manager and reuse it across sessions on the page.Form Filling Provider (React)
Wrap your components with
FormFillingProvider.Start Form Filling
Mount
FormFilling or call client.start() only when the clinician starts a Form filling session.Create your first Form filling session
1
Install the Packages
Install the Form filling package for your framework, plus
@suki-sdk/core for authentication.- JavaScript
- React
2
Add the Page Container
Give Form filling a container with real height before the hosted UI opens. JavaScript uses a DOM node you pass as
rootElement. React mounts into .suki-form-filling.- JavaScript
- React
HTML
3
Run Your First Session
Create
SukiAuthManager and FormFillingClient, then open Form filling when the clinician is ready. Pass forms and your encounter ID as correlation_id.- JavaScript
- React
JavaScript
Your integration works when the Form filling UI appears, the microphone is active, and
onSubmit returns structured_data.Replace YOUR_TEMPLATE_ID with template_id UUIDs from your Suki support team. For dynamic-only sessions, omit the static entry and keep partner schema objects.Verify your integration
After you complete your first Form filling session, verify that:- The hosted Form filling UI loads in your page container.
- The microphone is active during recording. You should see a microphone icon in the UI.
onSubmitreturnsstructured_data.generated_values. Match dynamic rows withpartner_form_id, and static rows withform_template_id.correlation_idmatches your encounter in SDK callbacks and partner webhooks (when provided).
Available tutorials
Next steps
Session workflow - Single-form vs multi-form sessions, offline behavior, and webhooks. Callbacks - Event payloads andFormFillingResult.
Authentication - If you need to sign in after page load.