docs/Power features/Qualtrics
connect your survey tool

Qualtrics.

Capture the Samply IDs as Embedded Data, then redirect from the End of Survey element.

Plan requirement
The end-of-survey redirect is not available on free Qualtrics accounts — it needs a licensed/institutional account.

1 · Pass the Samply IDs into the survey

Embedded Data in the Survey Flow, left unassigned so Qualtrics fills each field from the matching query-string key.

  1. Open the Survey Flow (Survey tab → Survey Flow), click "Add a New Element Here" and choose Embedded Data.
  2. Add one field per Samply placeholder, named EXACTLY like the query-string keys in the start link (e.g. msg, id, code). Leave each unassigned so it reads "Value will be set from Panel or URL". Capitalization must match.
  3. Drag the Embedded Data element to the TOP of the Survey Flow (above anything that uses it) and save the flow.
  4. Configure the Samply start link so its keys match these field names. The fields are then stored with every response and appear in the data export automatically.
Example start link
https://<your-org>.qualtrics.com/jfe/form/SV_xxxx?id=%SAMPLY_ID%&code=%PARTICIPANT_CODE%&msg=%MESSAGE_ID%

2 · Register completion

The End of Survey element's "Redirect to a URL" option, piping the captured field with Qualtrics syntax ${e://Field/msg}.

  1. In the Survey Flow (or Survey Options) open an End of Survey element, click "Customize…" and check "Override Survey Options".
  2. Select "Redirect to a URL".
  3. Enter the Samply completion URL with the captured message id piped in: https://samply.uni-konstanz.de/studies/<study-code>/done/${e://Field/msg} (use whatever field name holds %MESSAGE_ID%).
  4. Optionally use ${e://Field/msg?format=urlencode} to be safe, then save and publish. Test with a real Samply link end-to-end.
Example completion redirect
https://samply.uni-konstanz.de/studies/<study-code>/done/${e://Field/msg}

Or register completion silently with a POST

The redirect above navigates the participant's browser to Samply. The same completion can instead be registered server-to-server with an HTTP POST to /studies/<study-code>/done/<message-id> — no request body and no authentication (the message id in the path is the shared secret). Samply replies 200 on success or 400if the id matches no response, and it records the completion and cancels that send's pending reminders exactly like the redirect — just without redirecting. Whether Qualtrics can issue that POST itself varies:

Supported natively
Qualtrics can POST it from a Workflow — a "Survey response" event running a "Web Service" task set to POST — so nothing redirects the participant. Needs a licensed account with the Workflows module (not free tiers).
  1. Open the survey's Workflows tab → Create a workflow → "Started when an event is received", and choose the "Survey response" event, firing on newly-created completed responses only.
  2. Add a task and pick "Web Service". Set the method to POST and Authentication to "Not authenticated".
  3. In the URL field, type the completion URL and use the piped-text {a} button to drop the msg embedded-data field into the path: https://samply.uni-konstanz.de/studies/<study-code>/done/${e://Field/msg}
  4. Choose any body format but leave the body empty, and add no headers. Save the task and publish the workflow.
  5. Send a test response and confirm Samply recorded it from the task's run history — verify the msg resolved inside the path (Qualtrics documents piping mainly for query strings, so test it). If your brand restricts outbound domains, allowlist samply.uni-konstanz.de.
POST endpoint
POST https://samply.uni-konstanz.de/studies/<study-code>/done/<message-id>

POST sources: https://www.qualtrics.com/support/survey-platform/actions-module/web-service-task/ · https://www.qualtrics.com/support/survey-platform/actions-module/survey-response-events/

Full request and response details are in the API reference.

Reserved parameters & gotchas

Avoid Q_-prefixed names (Q_Language, Q_TotalDuration, …) and other built-ins (RID/rid, SID, EndDate, IPAddress). Field names are case-sensitive and must match the URL keys exactly.

Things to watch out for

  • The message id sits in the URL path; Samply's %MESSAGE_ID% is a plain 15-char ID, so it is URL-safe, but ${e://Field/msg?format=urlencode} is the cautious choice.

Sources

These steps were verified against the platform's official documentation.