Prerequisites
- Talview-provisioned tenant + project DSN (customer success or Talview Sales can help).
- Modern browser with WebRTC support and HTTPS hosting for your delivery app.
- Ability to add a script tag and a small bootstrap snippet wherever proctoring needs to run.
Content Security Policy (CSP)
If your application enforces CSP headers, allow the domains and inline resources required by the SDK:1. Load the SDK once
Place the loader as the last script on any page that needs proctoring. The loader attaches itself globally aswindow.Proview and fires window.proviewOnLoad when ready.
Use the environment-specific loader URL shared during onboarding (dev / staging / prod). The example above targets the production CDN.
2. Initialise once per page view
CallProview.init after the loader fires. The dsn is mandatory; identifiers can be supplied now or later via setAttendee / setWorkflow.
Host checklist
- Ensure
dsnis set; init rejects withMissing DSNotherwise (seeInitConfigSchemain the SDK). - Provide
attendee_identifier,workflow_identifier, and (optionally)session_identifierduringinit, or defer them toProview.setAttendee/Proview.setWorkflow/Proview.session.start(next section). - Do not gate your own UI on the loader script—wait for the session to enter the
runningstate (next section).
3. Start the proctoring session before showing the assessment
Trigger the session start from your own UI (for example, a “Start Exam” button) once the candidate is ready. Wait for the promise to resolve before displaying your assessment content.When you callProview.session.start, the SDK first reuses any identifiers already set duringProview.init/Proview.setAttendee/Proview.setWorkflow. Pass whichever fields are still missing in thestartoptions. Ifsession_identifieris still undefined after both steps, the SDK derives one by combining the attendee and workflow identifiers.
4. Stop / complete / pause / resume
The session module mirrors the methods listed insdk/configuration:
onError handler on failure. When rolling out pause/resume, consider mapping them to your own assessment timers as well.
5. Troubleshooting quick tips
Missing DSN: confirm the value passed intoProview.init. The SDK validates the configuration and rejects empty strings.- No UI rendered: ensure
Proview.session.start()ran successfully and that a valid attendee/workflow identifier exists in context. - Permission prompts not appearing: the host page must not override camera/mic permissions (see best practices). Verify using your browser’s developer tools.
- Network disconnects: listen for your own connectivity changes and optionally call
Proview.session.pause()so the candidate is aware.

