Skip to main content

Generic survey-platform integration

Use this guide as the implementation template for a provider other than LimeSurvey. It separates public browser collection from private server-to-server operations.

Prerequisites

  • An organization Integration API key stored server-side.
  • A stable UUID for every survey response you want to associate with Ramon.
  • A way to add the Ramon embed to each participant survey page.
  • A background job or administrator action for scoring and deletion polling.

Minimal lifecycle

  1. Provision a survey through the provider-specific Ramon contract. Store its surveyId, trackingKey, collector URL, and embed URL.
  2. On response creation, generate and store a UUID. Add it to the embed as sessionId and interviewId.
  3. Render the public embed with privacy options and CSP in place.
  4. At an authorized administrative point, start a scoring run and poll its result.
  5. Look up response UUIDs to render summary-level Human Scores.
  6. When a response is deleted, request Ramon deletion and keep retrying or polling until the record reaches a terminal state.

Verification

Run one test response end-to-end: provision, page render, interaction, lookup, manual scoring, score lookup, and deletion. Verify that the browser contains no private rmn_ls_… credentials.

Failure behavior

The participant flow must be fail-open. Do not hold up rendering, submission, or deletion of the source response when Ramon is unavailable. Record the operation for server-side retry or surface it to an administrator.