Why Projection matters
Webhook andGET/Submission responses include every field that the applicant entered or Argos generated during processing. As submissions grow, payload size, PII storage obligations, and data management complexity scale together.
Projection lets you persist exclusion policies per project so your applications only receive the slices of data they care about—enabling least-privilege data flows without modifying core workflows.
Projection policies are created and managed exclusively through the
POST /projection API rather than the dashboard.Scope and constraints
- Projection currently applies only to submissions created via Liveform.
- The policy affects webhook events linked to those submissions (
submission.submit,submission.approved,submission.rejected) and theGET/SubmissionAPI alike. GET/Submissionreturns data based on the Projection assigned at submission time. Editing a policy later does not retroactively change existing submissions.
Policy components
| Component | Description | Key considerations |
|---|---|---|
name | Human-readable identifier | Lowercase letters, digits, and underscores only; unique per project. |
mode | How data is handled | Only the exclude option is available today. |
fields | Array of fields to hide | Must use values from the allowlist in POST /projection. |
projection_id | System-generated ID | Referenced by Liveform URLs, webhook logs, and GET/Submission payloads to confirm which policy was applied. |
How the flow works
- Call
POST /projectionto define the exclusion set and receive aprojection_id. - Encrypt that
projectionId(orprojectionName) inside the Liveform URL or token payload. - Once the user finishes the submission, webhooks and
GET/Submissionemit responses already filtered by the chosen Projection.
fields—such as identityNumber here—are omitted or set to null in both webhook payloads and GET/Submission responses, even though Argos still retains the underlying values.
Projection workflow
1
Create the policy
Use
POST /projection to define the exclusion list. Policies become active immediately.The response must contain
"message": "Create projection success" and a projection_id.2
Attach the policy to Liveform
Add the encrypted
projectionId to the Liveform URL or token payload, for example:projectionId and projectionName are mutually exclusive, and both must be encrypted. See the query string and token guide for encryption details.3
Validate via webhooks or Get Submission
Webhook payloads and
GET/Submission responses include projection.projectionId. Confirm that the payload now only surfaces the intended fields.Log
projection.projectionId in your downstream services to trace which policy shaped each payload.4
Monitor and retire policies
GET /projection and GET /projection/{projectionId} help you review active policies. Delete unused entries via DELETE /projection/{projectionId} to free up slots or re-expose data.Projection API quick links
POST/Projection
Create new policies and define the exclusion set.
GET/Projection
Retrieve every Projection configured for the project.
GET/Projection/{projectionId}
Inspect a single policy, including fields and creation timestamp.
DELETE/Projection
Remove obsolete policies to re-expose fields or stay within the 10-slot limit.
Operational best practices
- Gather required-field lists from each consumer team before rolling out Projection and document the approvals.
- Store
projectionIdalongside webhook payloads or analytics logs to simplify audits and troubleshooting. - Reuse existing policies when possible so you do not hit the 10-policy ceiling unnecessarily.
- Define explicit schemas per Projection in downstream services to avoid null-pointer exceptions when fields disappear.
Troubleshooting
Projection seems ignored
Projection seems ignored
- Confirm the Liveform
encryptedpayload is actually encrypted; plaintext values are rejected. - When using
projectionName, verify the spelling follows the lowercase-and-underscore rule. - Call
GET /projectionto ensure the referenced ID still exists and the timestamp matches your expectations.
Need to review excluded fields again
Need to review excluded fields again
Argos still stores the full submission. However, as long as the Projection is attached, webhooks and
GET/Submission will keep hiding those fields. Delete the policy with DELETE /projection/{projectionId} and trigger a new submission to receive full payloads again.Policy quota exceeded
Policy quota exceeded
If you reach the 10-policy limit, audit the current list via
GET /projection. Remove unused policies or consolidate field combinations into a smaller shared set before creating new ones.