Trusted Voice Research Infrastructure for NGOs, Governments & Global Development Partners
Running the platform

Integrations

What connects today, and what is format support rather than integration.

Who this is for

Technical reviewers and implementation teams.

No screenshot on this pageA format is not a screen. XLSForm import, DHIS2 payload construction and SCIM provisioning happen between systems, and the only honest picture would be of a payload. The public ledger at /integrations.html carries the state of each one.

XLSForm

XLSForm instruments import, including label::lang columns and comment rows. An unsupported construct is refused by name rather than silently flattened — a repeat group is rejected, not quietly discarded. A mapping preview marks every question that will not be imported before anything is written, and a response import fails whole rather than landing partially.

DHIS2

The platform builds DHIS2 dataValueSet payloads, validates periods, enforces https-only base URLs and a version floor, and never emits a suppressed value. A push to a target not explicitly confirmed as non-production is refused.

SCIM and SSO

SCIM 2.0 user provisioning implements the RFC 7643/7644 Users resource — ListResponse, PatchOp, the SCIM error envelope and ServiceProviderConfig. An unsupported filter is refused rather than ignored. Deprovisioning deactivates the user and revokes their sessions; it never destroys the record. Groups are answered 501 Not Implemented rather than faked.

Single sign-on uses OIDC authorization-code flow with PKCE. ID tokens are verified against the provider’s JWKS; alg: none and the HMAC family are refused outright. An identity provider’s group claim never selects a role.

What is format support, not integration

Implementing a format is not integrating with a systemVoiceInsights can produce a DHIS2 dataValueSet, parse an XLSForm and answer a SCIM PatchOp correctly. No DHIS2 server, Kobo server, ODK server or identity provider has been connected to this platform. Both halves of that sentence are true and only the first is ours to claim.

What this does not do

Stated here rather than discovered later

  • No named external system is a working integration. Connecting one is implementation work, scoped with your team.
  • A suppressed value is never pushed to an external system.
  • SCIM Groups are answered 501 Not Implemented rather than faked.