Surveys Reference Public

Administration & controls

Permissions, audience targeting, when prompts are deliberately suppressed, the audit trail, and where survey data physically lives in a multi-tenant install.

Guide version: r3 Module version: 1.6.0 Updated: 2026-08-27 Estimated time: 4 min 8 views 0% helpful

Permissions

KeyGrants
surveysSee the Surveys tab and read everything in it.
surveys_createAdd surveys.
surveys_updateEdit existing ones.
surveys_deleteRemove them.
surveys_publishPublish and archive — the only one that reaches users.

The retired app_ratings_report permission granted reading and full catalog editing from one key. Upgrading carries each holder’s grant forward to the first four above, so nobody loses access. Publish is new and is not granted automatically — hand it out deliberately. (Since 1.6.0, which apps exist and can be rated is managed in the App Library under the Applications module’s own permissions — the in-module catalog editor is gone.)

Two surfaces, two audiences

This module has an admin half and an end-user half, and they are gated in opposite directions on purpose.

 Surveys tabThe prompt
WhoPlatform operatorsEvery user inside a tenant workspace
DatabaseMain only — tenant sessions are refusedTenant sessions (or any session on a single-tenant install)
Permissionsurveys requiredNone required
Why answering needs no permission. A prompt is addressed to the person seeing it. If replying required a permission, an ordinary employee could be shown a required modal and then be refused the right to dismiss it — locked out of ERPat by a permission they were never meant to need.

Targeting

Two optional filters on each survey. Leave either blank to mean “everyone”.

  • User types — e.g. staff only, or client-portal users only.
  • Tenants — pick one or more tenants from the list, by company key (the same key they sign in with, e.g. ahm). Useful for piloting a wording change on one customer before rolling it out. Platform surveys only — inside a tenant workspace a survey reaches that tenant’s own users by definition, so the control is not shown.

A start and end date can also bound the window. Outside it, nobody is prompted.

When prompts are deliberately suppressed

Even with a published, perfectly targeted survey, no prompt is shown:

  • to anyone working on the main platform database, when multi-tenancy is enabled. Those users are running the fleet rather than using the product, so their consent belongs to no tenant — and the operator publishing a survey should not be interrupted by their own prompt. (On a single-tenant install every user is on the main database, so this rule does not apply there.)
  • on the sign-in, forbidden or maintenance pages;
  • during a support-access session — while an operator is signed in as a tenant admin, recording “their” consent would attribute one person’s decision to another;
  • on background requests, or on public pages outside the app;
  • more than once per page load — and a required prompt always outranks an optional one.

What gets audited

ActionAudit logLedger
Create / edit / delete a surveyYes
Publish or archiveYes (warning)
Agree / decline a required surveyYes (warning)Yes
Answer an optional surveyNoYes

Optional answers stay out of the audit log on purpose. The ledger is the evidence record; mirroring every star rating into the audit trail would bury the entries that matter.

Where the data lives

All survey data is stored in the main database, never per-tenant. A user answering from inside a tenant workspace still writes their response to the main database, because that is where the survey they are answering lives.

Each response also stores the responder’s name and email as they stood at that moment. Two reasons: consent evidence must not change when someone edits their profile later, and it lets the Responses list render without reaching into every tenant database to look people up.

The mobile endpoints

This module owns GET /v1/api/me/apps and POST /v1/api/me/app-rating. Both keep their original URLs. Both now return 404 module_unavailable when the module is switched off — so treat the toggle as a live switch on your mobile clients, not just a UI preference.

Since 1.1.0 it also owns the mobile survey prompt queue: GET /v1/api/me/surveys (the signed-in employee’s pending prompts) and POST /v1/api/me/surveys/respond (answer / agree / decline / snooze / opt out) — what the Syntry app’s survey popup runs on. This surface has its own policy switch, Send survey prompts to the mobile app (Survey Settings → Tenant Policy), independent of the rating switch and off by default. With it off, both endpoints answer the same 404 module_unavailable.

One operational nuance: fetching the queue counts one “ask” against the first survey’s prompt limit — the same counting the web prompt does when it renders. The Syntry app therefore fetches only when it is about to show the popup, never on a timer.

Was this guide helpful?

Report a content problem