Actors
Roles
| Role | Description | Main operations |
|---|---|---|
| Survey designer | Designs and edits questionnaires. Holds edit permission on a survey |
Creating surveys, editing sections and questions, configuring branches, saving (creating versions), setting permissions, exporting JSON, reusing from the question library |
| Reviewer | Reviews authored questionnaires. Holds view permission on a survey |
Viewing surveys, sections, and questions; previewing; checking version history; duplicating surveys and versions |
| Administrator | A user whose email address is registered in SURVEY_ADMIN_EMAILS |
Viewing and editing every survey, deleting any survey, deleting any past question data |
| frontend (Web UI) | The Next.js application operated by designers and reviewers | Google login, API calls, evaluating branches in the preview |
| backend (API server) | A REST API built with Hono, running on AWS Lambda | User resolution, permission checks, persistence, version snapshots, OpenAPI hosting |
| Chrome extension | A Plasmo extension that runs on the CS editing screen | Bulk import from CS, pushing questionnaires into CS, collecting CS API logs |
| Import Bot | A system user used when the import API is called with an API key | Recorded as the actor of the import |
| Creative Survey | The questionnaire delivery tool (external system) | Delivering questionnaires and collecting responses. Both the destination and the import source |
How permissions apply
With view permission, updating questions, saving, exporting, and changing permissions are not possible (the backend requires edit permission and returns 404). Administrators can view and edit every survey regardless of permission records.
Role Diagram
graph TD
Designer[Survey designer]
Reviewer[Reviewer]
Admin[Administrator]
Web[frontend Web UI]
API[backend API]
Ext[Chrome extension]
Bot[Import Bot]
CS[(Creative Survey)]
Designer --> Web
Reviewer --> Web
Admin --> Web
Web --> API
Designer --> Ext
Ext -->|push questionnaire JSON| CS
Ext -->|fetch existing questionnaires| CS
Ext -->|import API| API
Ext -.->|actor under API key auth| Bot
Bot --> API
Permissions and Capabilities
| Operation | view | edit | Administrator |
|---|---|---|---|
| Viewing and previewing a survey | โฏ | โฏ | โฏ |
| Viewing version history | โฏ | โฏ | โฏ |
| Duplicating a survey or version | โฏ | โฏ | โฏ |
| Updating the theme, editing sections and questions | โ | โฏ | โฏ |
| Saving (creating a version), rolling back | โ | โฏ | โฏ |
| Exporting JSON | โ | โฏ | โฏ |
| Changing permissions | โ | โฏ | โฏ |
| Deleting a survey | โ | creator only | โฏ |
| Deleting past question data | โ | โ | โฏ |