Survos Platform¶
The Survos Platform provides researchers with powerful tools to interact with their study participants. Participants can interact via random or fixed-interval SMS surveys, provide detailed, continuous information about their location, and collect photos via SMS or our app. Researchers can extract information about those photos via Amazon’s Mechanical Turk, a crowd-sourcing platform.
This documentation provides detailed instructions about what the tools do, and how they are configured. As with many comprehensive systems, sometimes getting started is the hardest part. The major parts of the data collection system are broken down into “Modules”. The basic workflow is the same for all the survey types.
Getting Started with Modules¶
The platform has 4 related but independent modules. Each module collects a different type of data. All modules consist of protocols, surveys, waves, tasks, assignments, sets and channels. These terms will be defined within each module, with examples. Knowing these terms and how they are connected to each module is key to understanding the platform.
What can you do with the Survos Platform? These four verbs answer that question, and are the names of the modules:
- Recruit recruit and enroll study participants or field workers
- Study collect personal data about a set of study participants
- Audit get objective (not personal) data about a set of inanimate objects, like images or places
- Annotate combination of Study and Audit, collects personal data about a set of places or events, basically a personal map or calendar annotation.
In general, the workflow to collect data within any module is as follows:
- Establish a set of who or what those questions will be asked of
- Configure a protocol associated with that set of data and a channel type for how that data will be collected.
- Design one or more surveys – the questions you want to ask
- Add one or more surveys and timing information to the protocol, this is called a deployment wave, or simply wave.
- Once the protocol has been configured with surveys and timing information, activate that protocol.
Recruit¶
Important
Recruit and enroll study participants. The purpose of this module is to create new participant accounts within the system.
- Protocol
- The protocol configuration includes how the candidate will take the survey. In most cases, this will be either self-enrolled via the participant website, or done as an interview by a researcher who will enter the data via the administrative website.
- Survey
- A list of questions and answer options. Answers can have scores associated with them, when a candidate fills out a survey, answers with scores are totaled and can be used in the wave configuration to automatically approve those candidates as participants.
- Wave
- The deployment of the survey questions, along with the configuration data specific to automatic enrollment, like the minimum score required.
Most of the example projects use a self-enrollment protocol, with very minimal requirements for actual enrollment.
A typical recruit protocol might be to ask if someone smokes cigarettes, is above 18, and has not tried to quit in the last year. Based on their answers, they may be accepted in the study. At that point, they’d have an account tagged as active, and therefore would be added into the “accepted participants” set (used by Study protocols).
Study¶
Tip
Collect personal data about a set of study participants. Study participants are created in the Recruit module, or by simply creating a participant account.
- Participant Set
- The collection of participants who will be enrolled in each wave of this protocol. The default set is “All Accepted Participants”, or you can create a subset like “All participants who self-identify as smokers” or “All participants who have completed with baseline protocols” or “All participants who have completed the observation period and have a compliance score of greater than 80%”.
- Protocol
- The protocol configuration includes the participant set, the schedule type (e.g. just one time, like a baseline survey, or periodic, like a daily diary, or even a testing schedule, called a “blitz”). If the schedule type is periodic, then the duration of the protocol is also defined. The method of communication is also defined in the protocol, e.g. SMS or web-based. For example, you can configure the “Observation Protocol” as a 2-week period communicating with pregnant smokers via SMS. Note that when you initially set up the protocol, there are no surveys or schedules yet – those come when the wave is configured.
- Survey
- A list of questions and answer options. For protocols with schedule type of for one-time surveys (e.g. a baseline protocol), these questions are likely to be in the form of “Have you ever…?” or “Do you…?” For periodic protocols, like an observation period, the questions are likely be EMA (Ecological Momentary Assessments, “in-the-moment” surveys), or coverage surveys, like a daily diary. An EMA survey may have questions in the form “Right now, are you…?”, e.g. “Right now, are you with other people?”, “Right now, how much do you want to use marijuana?”. A coverage survey typically contains questions like “Thinking about today only, did you purchase any tobacco products?” or “In the last 4 hours, did you exercise?” The common theme of surveys in the Study Module is that they are questions about the participant.
- Wave
- The deployment of the survey questions within a protocol, along with relevant configuration information. If it’s part of a periodic protocol, then the specific schedule is defined here. Also, the communication channel is defined and the prompt channel (email, SMS, etc.). Compliance thresholds are set, expiration times, reminders, etc. The wave is where the majority of the settings are configured, and are defined in detail in this documentation.
A typical study protocol might be for 3 week to send SMS prompts 4 times per day asking participants who have completed the baseline protocol if they have smoked in the last 4 hours, as well as random prompts 6 times per day to ask if they are smoking right now, and if not, what their craving to smoke is.
Contents:
Here are some terms that are common to the Survos Platform.
Terminology (short and sweet)¶
Survey/Survey Instrument: what you ask Protocol: time period and to whom you deploy Survey Instruments Wave: how you deploy Survey Instruments Account/Member: A participant (or other role) in a study Task: The instnace of a wave associated with specific data. Assignment: The participant’s survey answers associated with a Task
Terminology (detailed)¶
- Project/Study
- The data, people and protocols of a research study.
- Survey
- A list of questions and answer options, tied to a how those questions will be deployed, such as via SMS or Turk or a Web Interview
- Module
- A collection of protocols that operate on the same source data. The primary modules are Study (collects data about study participants), Audit (collects objective, no personal, data about things, like images or places, Annotations (combination of Study and Audit, collects personal data about a place, basically a personal map annotation.
- Protocol
- A collection of survey types that collect data in a similar way. Because the types of data the system can collect is so varied, selectively installing modules allows the system to be navigated more easily. Many projects only use one or two `ref:modules.
- Wave
- Deployment of the survey questions. It is the central object in the system, and is the configuration for who will answer the survey questions, when, how, how often, how much they’ll be paid, etc. There are many types of jobs, and each type will have its own specific configuration, which will be described later in the document.
- Protocol
- A group of waves that share a common duration and criteria.
- Turk
- Amazon Mechanical Turk (AMT) is a marketplace for crowd-sourced work. The Posse Platform enables a user to create what AMT calls external HITs, which are tasks run outside of the AMT system. Internal hits for AMT are somewhat limited. With a Turk job, a task is posted and a crowd of anonymous users has a chance to accept individual assignments and complete the task. This is particularly good for gathering data about a photo, where if a group of anonymous people reach consensus about something, it is likely to be valid.
- Accounts (aka “member”): Accounts associated with a project. All users have an identifier that is unique with in the project, for study participants, this is sometimes referred to as a “Subject ID”, and except when testing, this identifier should not be personally identifiable. There are various roles users have, such as “applicant”, “participant”, “turker” “researcher” and “participant”.
- Assignment/Survey Response: The participant’s survey answers.
- Data: Each project may contain its own database of places, images and other data. Jobs that use data (e.g. visiting a list of places, looking at a list of photos) get their data from these tables. Wave collect data (e.g. taking pictures) put their results here (so the results can be used by subsequent Surveys).
- Import: Import data from external source (e.g. csv file, CartoDB)
Data Collection Workflow¶
All data collection within a project works roughly the same way, and will be described in specific detail in each module.
- Within a module, decide how your questions will be delivered (e.g. SMS, Interview, Turk), and create a survey.
- Design your questions within the survey, paying special attention to the question codes, types and possible responses. The data collected will be available using these codes.
- Define the specifics of your survey deployment, called a _wave_ – this will change for each specific survey type, but is basically who receives the survey, when and how often.
- Deploy the wave and collect the data. Wave Configuration is specific to each survey type, and is described in detail under “Deployment” for each Survey Type
Lifecycles / Workflows¶
Each lifecycle component shares a state_machine.
Contents:
Workflow project in Project¶
Project States¶
- configuration
- pending_approval
- collecting_data
- aborted
- complete
- cancelled
Project Transitions¶
- propose
- reject
- cancel
- launch
- stop_at_deadline
- abort
- all_data_collected
The Workflow¶

Workflow project
Workflow audit_task in Task¶
Task States¶
- created
- published
- publish_error
- expired
- complete
- Assignable
Task Transitions¶
- publish
- unpublish
- cannot_publish
- expire
- extend
- complete
The Workflow¶

Workflow audit_task
Workflow task_enrollment in Task¶
Task States¶
- created
- enrolled
- dropout
- dismissed
- error
- finished
- deleted
Task Transitions¶
- enroll
- admin_dismiss
- last_day
- participant_quits
- admin_delete
- error
- fix_error
The Workflow¶

Workflow task_enrollment
Workflow outgoing_msg in ChannelMessage¶
ChannelMessage States¶
- created
- dispatched
- delivered
- error
ChannelMessage Transitions¶
- send_to_dispatcher
- dispatch_error
- deliver
The Workflow¶

Workflow outgoing_msg
Workflow survey_response in Assignment¶
Assignment States¶
- scheduled
- initiated
- responding
- abandoned
- complete
- expired
Assignment Transitions¶
- at_start_time
- single_submission
- reminders_sent
- warnings_sent
- never_responds
- first_response
- stops_responding
- no_more_questions
The Workflow¶

Workflow survey_response
Workflow member_participant in Member¶
Member States¶
- visitor
- applicant
- ineligible
- eligible
- active
- finished
- dismissed
Member Transitions¶
- applicant_fills_out_screener
- admin_creates_participant
- accept_eligibility
- deny_eligibility
- approve_application
- enroll_in_waves
- finish
- dismiss
The Workflow¶

Workflow member_participant
Workflow data in Data¶
Data States¶
- record_created
- pending
- ready
- error
Data Transitions¶
- request_processing
- processing_success
- processing_failed
The Workflow¶

Workflow data
Workflow survey in Survey¶
Survey States¶
- new
- configured
- draft
- survey_preview
- waves_active
- data_collected
- no_data_collected
- locked
- paused
- archived
Survey Transitions¶
- configure
- design_questions
- modify_configuration
- publish
- deploy_waves
- data_collected
- unlock
- edit
- archive
- pause
- resume
The Workflow¶

Workflow survey
Account Roles¶
ROLE_PARTICIPANT¶
Participants are study subjects in a study. They have a unique anonymous identifier.
ROLE_OWNER¶
Owner accounts have full access to configure and edit a study. They also have full access to PII. Their account identifier (username) is identifiable, even if they are participating as a study participant (usually for testing)
ROLE_RESEARCHER¶
Researchers have read-only access to the entire study design and data, EXCEPT PII of the participants. Their account identifier (username) is identifiable, even if they are participating as a study participant (usually for testing)
ROLE_APPLICANT¶
Applicants are not yet in the study, and have no study identifier. They are not eligible to be enrolled in any waves except screener waves, which are used to determine if they are eligible for the study.
ROLE_FIELD_WORKER¶
roles.ROLE_FIELD_WORKER
Modules¶
Contents:
Recruit Survey Types¶
Information to screen applicants (potential study participants or field workers)
What’s Needed to Deploy¶
- Qualified Survey Participants
- Images
Use Case¶
Integration Types¶
Typical Questions¶
Survey Types/Ways to Administer¶
- WebInterview, see WebInterview Integration Types
- ObserveWeb, see ObserveWeb Integration Types
Survey Participants¶
Administrators can invite or add participants. Projects with “Allow Self Registration” and an active Screener Wave allow visitors to create an fill out a pre-qualification survey.
Data Collected¶
Technical Notes¶
Code: screener
WebInterview Integration Types¶
WebInterview
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a WebInterview Wave
This is the form snippet from basic Tab in the WebInterview Wave.

Rendered Form WebInterview Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed |
This is the form snippet from questions Tab in the WebInterview Wave.

Rendered Form WebInterview Wave Tab questions
Field | Info | Description |
---|
This is the form snippet from schedule Tab in the WebInterview Wave.

Rendered Form WebInterview Wave Tab schedule
Field | Info | Description |
---|---|---|
taskFrequencyType | Type: mixed | |
duration | Type: mixed | Number of days a participant is enrolled (set in Protocol) |
OK to Enroll |
Type: boolean Required: No |
If enrollment is permitted now |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
Field Workers |
Type: text Required: No |
Separated By commas, empty means everyone is eligible |
This is the form snippet from enrollment Tab in the WebInterview Wave.

Rendered Form WebInterview Wave Tab enrollment
Field | Info | Description |
---|---|---|
Auto Publish |
Type: boolean Required: No |
Auto-publish tasks to Audit/Import when queued |
This is the form snippet from task Tab in the WebInterview Wave.

Rendered Form WebInterview Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the WebInterview Wave.

Rendered Form WebInterview Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the WebInterview Wave.

Rendered Form WebInterview Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
ObserveWeb Integration Types¶
ObserveWeb
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a ObserveWeb Wave
This is the form snippet from basic Tab in the ObserveWeb Wave.

Rendered Form ObserveWeb Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed |
This is the form snippet from questions Tab in the ObserveWeb Wave.

Rendered Form ObserveWeb Wave Tab questions
Field | Info | Description |
---|
This is the form snippet from schedule Tab in the ObserveWeb Wave.

Rendered Form ObserveWeb Wave Tab schedule
Field | Info | Description |
---|---|---|
taskFrequencyType | Type: mixed | |
duration | Type: mixed | Number of days a participant is enrolled (set in Protocol) |
OK to Enroll |
Type: boolean Required: No |
If enrollment is permitted now |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
Field Workers |
Type: text Required: No |
Separated By commas, empty means everyone is eligible |
This is the form snippet from enrollment Tab in the ObserveWeb Wave.

Rendered Form ObserveWeb Wave Tab enrollment
Field | Info | Description |
---|---|---|
Auto Publish |
Type: boolean Required: No |
Auto-publish tasks to Audit/Import when queued |
This is the form snippet from task Tab in the ObserveWeb Wave.

Rendered Form ObserveWeb Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the ObserveWeb Wave.

Rendered Form ObserveWeb Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the ObserveWeb Wave.

Rendered Form ObserveWeb Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Study Survey Types¶
Personal data about registered study participants
What’s Needed to Deploy¶
- Qualified Survey Participants
- Images
Use Case¶
When you want to repeatedly collect data from a participant over a period of time. You can configure a daily diary – a scheduled once-a-day survey, or ask participants to self-report every time they engage in some behavior, or randonly prompt participants with mood or behavior questions.
Integration Types¶
Typical Questions¶
- How many hours did you sleep last night?
- How many cigarettes have you smoked in the last 2 hours?
- On a scale of 0 to 5, how much are you craving a cigarette right now?
- Take a picture of your store receipt.
Survey Types/Ways to Administer¶
- ObserveWeb, see ObserveWeb Integration Types
- WebInterview, see WebInterview Integration Types
- TwilioSms, see TwilioSms Integration Types
- Mattermost, see Mattermost Integration Types
- Email, see Email Integration Types
- Simulator, see Simulator Integration Types
- Api, see Api Integration Types
- JsonResponses, see JsonResponses Integration Types
Survey Participants¶
Administrators can invite or add participants. Projects with “Allow Self Registration” and an active Screener Wave allow visitors to create an fill out a pre-qualification survey.
Data Collected¶
Technical Notes¶
Code: ongoing
TwilioSms Integration Types¶
TwilioSms
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a TwilioSms Wave
This is the form snippet from basic Tab in the TwilioSms Wave.

Rendered Form TwilioSms Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the TwilioSms Wave.

Rendered Form TwilioSms Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the TwilioSms Wave.

Rendered Form TwilioSms Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the TwilioSms Wave.

Rendered Form TwilioSms Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the TwilioSms Wave.

Rendered Form TwilioSms Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Mattermost Integration Types¶
Mattermost
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Mattermost Wave
This is the form snippet from basic Tab in the Mattermost Wave.

Rendered Form Mattermost Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the Mattermost Wave.

Rendered Form Mattermost Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the Mattermost Wave.

Rendered Form Mattermost Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the Mattermost Wave.

Rendered Form Mattermost Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Mattermost Wave.

Rendered Form Mattermost Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Email Integration Types¶
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Email Wave
This is the form snippet from basic Tab in the Email Wave.

Rendered Form Email Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the Email Wave.

Rendered Form Email Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the Email Wave.

Rendered Form Email Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the Email Wave.

Rendered Form Email Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Email Wave.

Rendered Form Email Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Simulator Integration Types¶
Simulator
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Simulator Wave
This is the form snippet from basic Tab in the Simulator Wave.

Rendered Form Simulator Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the Simulator Wave.

Rendered Form Simulator Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the Simulator Wave.

Rendered Form Simulator Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the Simulator Wave.

Rendered Form Simulator Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Simulator Wave.

Rendered Form Simulator Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Api Integration Types¶
Api
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Api Wave
This is the form snippet from basic Tab in the Api Wave.

Rendered Form Api Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed |
This is the form snippet from questions Tab in the Api Wave.

Rendered Form Api Wave Tab questions
Field | Info | Description |
---|
This is the form snippet from schedule Tab in the Api Wave.

Rendered Form Api Wave Tab schedule
Field | Info | Description |
---|---|---|
taskFrequencyType | Type: mixed | |
duration | Type: mixed | Number of days a participant is enrolled (set in Protocol) |
OK to Enroll |
Type: boolean Required: No |
If enrollment is permitted now |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
Field Workers |
Type: text Required: No |
Separated By commas, empty means everyone is eligible |
This is the form snippet from enrollment Tab in the Api Wave.

Rendered Form Api Wave Tab enrollment
Field | Info | Description |
---|---|---|
Auto Publish |
Type: boolean Required: No |
Auto-publish tasks to Audit/Import when queued |
This is the form snippet from task Tab in the Api Wave.

Rendered Form Api Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the Api Wave.

Rendered Form Api Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Api Wave.

Rendered Form Api Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
JsonResponses Integration Types¶
JsonResponses
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a JsonResponses Wave
This is the form snippet from basic Tab in the JsonResponses Wave.

Rendered Form JsonResponses Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed |
This is the form snippet from questions Tab in the JsonResponses Wave.

Rendered Form JsonResponses Wave Tab questions
Field | Info | Description |
---|
This is the form snippet from schedule Tab in the JsonResponses Wave.

Rendered Form JsonResponses Wave Tab schedule
Field | Info | Description |
---|---|---|
taskFrequencyType | Type: mixed | |
duration | Type: mixed | Number of days a participant is enrolled (set in Protocol) |
OK to Enroll |
Type: boolean Required: No |
If enrollment is permitted now |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
Field Workers |
Type: text Required: No |
Separated By commas, empty means everyone is eligible |
This is the form snippet from enrollment Tab in the JsonResponses Wave.

Rendered Form JsonResponses Wave Tab enrollment
Field | Info | Description |
---|---|---|
Auto Publish |
Type: boolean Required: No |
Auto-publish tasks to Audit/Import when queued |
This is the form snippet from task Tab in the JsonResponses Wave.

Rendered Form JsonResponses Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the JsonResponses Wave.

Rendered Form JsonResponses Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the JsonResponses Wave.

Rendered Form JsonResponses Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Annotate Survey Types¶
Staypoints and events
What’s Needed to Deploy¶
- Qualified Survey Participants
- Images
Use Case¶
Integration Types¶
Typical Questions¶
Survey Types/Ways to Administer¶
- Api, see Api Integration Types
- CartoDataSet, see CartoDataSet Integration Types
- CartoMap, see CartoMap Integration Types
- CollectedData, see CollectedData Integration Types
- Csv, see Csv Integration Types
- Email, see Email Integration Types
- Github, see Github Integration Types
- JsonResponses, see JsonResponses Integration Types
- Mapmob, see Mapmob Integration Types
- Mattermost, see Mattermost Integration Types
- ObserveWeb, see ObserveWeb Integration Types
- Participants, see Participants Integration Types
- PaypalRest, see PaypalRest Integration Types
- RabbitQueue, see RabbitQueue Integration Types
- RapidPro, see RapidPro Integration Types
- Simulator, see Simulator Integration Types
- SqsQueue, see SqsQueue Integration Types
- SubmittedAssignments, see SubmittedAssignments Integration Types
- Turk, see Turk Integration Types
- TwilioIvr, see TwilioIvr Integration Types
- TwilioSms, see TwilioSms Integration Types
- WebInterview, see WebInterview Integration Types
Survey Participants¶
Administrators can invite or add participants. Projects with “Allow Self Registration” and an active Screener Wave allow visitors to create an fill out a pre-qualification survey.
Data Collected¶
Technical Notes¶
Code: stay
CartoDataSet Integration Types¶
CartoDataSet
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a CartoDataSet Wave
This is the form snippet from basic Tab in the CartoDataSet Wave.

Rendered Form CartoDataSet Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the CartoDataSet Wave.

Rendered Form CartoDataSet Wave Tab enrollment
Field | Info | Description |
---|---|---|
Auto Publish |
Type: boolean Required: No |
Auto-publish tasks to Audit/Import when queued |
This is the form snippet from task Tab in the CartoDataSet Wave.

Rendered Form CartoDataSet Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the CartoDataSet Wave.

Rendered Form CartoDataSet Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the CartoDataSet Wave.

Rendered Form CartoDataSet Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
CartoMap Integration Types¶
CartoMap
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a CartoMap Wave
This is the form snippet from basic Tab in the CartoMap Wave.

Rendered Form CartoMap Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the CartoMap Wave.

Rendered Form CartoMap Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the CartoMap Wave.

Rendered Form CartoMap Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the CartoMap Wave.

Rendered Form CartoMap Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the CartoMap Wave.

Rendered Form CartoMap Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
CollectedData Integration Types¶
CollectedData
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a CollectedData Wave
This is the form snippet from basic Tab in the CollectedData Wave.

Rendered Form CollectedData Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the CollectedData Wave.

Rendered Form CollectedData Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the CollectedData Wave.

Rendered Form CollectedData Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the CollectedData Wave.

Rendered Form CollectedData Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the CollectedData Wave.

Rendered Form CollectedData Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Csv Integration Types¶
Csv
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Csv Wave
This is the form snippet from basic Tab in the Csv Wave.

Rendered Form Csv Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the Csv Wave.

Rendered Form Csv Wave Tab enrollment
Field | Info | Description |
---|---|---|
Auto Publish |
Type: boolean Required: No |
Auto-publish tasks to Audit/Import when queued |
This is the form snippet from task Tab in the Csv Wave.

Rendered Form Csv Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the Csv Wave.

Rendered Form Csv Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Csv Wave.

Rendered Form Csv Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Github Integration Types¶
Github
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Github Wave
This is the form snippet from basic Tab in the Github Wave.

Rendered Form Github Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the Github Wave.

Rendered Form Github Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the Github Wave.

Rendered Form Github Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the Github Wave.

Rendered Form Github Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Github Wave.

Rendered Form Github Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Mapmob Integration Types¶
Mapmob
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Mapmob Wave
This is the form snippet from basic Tab in the Mapmob Wave.

Rendered Form Mapmob Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed |
This is the form snippet from questions Tab in the Mapmob Wave.

Rendered Form Mapmob Wave Tab questions
Field | Info | Description |
---|
This is the form snippet from schedule Tab in the Mapmob Wave.

Rendered Form Mapmob Wave Tab schedule
Field | Info | Description |
---|---|---|
taskFrequencyType | Type: mixed | |
duration | Type: mixed | Number of days a participant is enrolled (set in Protocol) |
OK to Enroll |
Type: boolean Required: No |
If enrollment is permitted now |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
Field Workers |
Type: text Required: No |
Separated By commas, empty means everyone is eligible |
This is the form snippet from enrollment Tab in the Mapmob Wave.

Rendered Form Mapmob Wave Tab enrollment
Field | Info | Description |
---|---|---|
Auto Publish |
Type: boolean Required: No |
Auto-publish tasks to Audit/Import when queued |
This is the form snippet from task Tab in the Mapmob Wave.

Rendered Form Mapmob Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the Mapmob Wave.

Rendered Form Mapmob Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Mapmob Wave.

Rendered Form Mapmob Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Participants Integration Types¶
Participants
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Participants Wave
This is the form snippet from basic Tab in the Participants Wave.

Rendered Form Participants Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the Participants Wave.

Rendered Form Participants Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the Participants Wave.

Rendered Form Participants Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the Participants Wave.

Rendered Form Participants Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Participants Wave.

Rendered Form Participants Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
PaypalRest Integration Types¶
PaypalRest
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a PaypalRest Wave
This is the form snippet from basic Tab in the PaypalRest Wave.

Rendered Form PaypalRest Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the PaypalRest Wave.

Rendered Form PaypalRest Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the PaypalRest Wave.

Rendered Form PaypalRest Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the PaypalRest Wave.

Rendered Form PaypalRest Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the PaypalRest Wave.

Rendered Form PaypalRest Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
RabbitQueue Integration Types¶
RabbitQueue
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a RabbitQueue Wave
This is the form snippet from basic Tab in the RabbitQueue Wave.

Rendered Form RabbitQueue Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the RabbitQueue Wave.

Rendered Form RabbitQueue Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the RabbitQueue Wave.

Rendered Form RabbitQueue Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the RabbitQueue Wave.

Rendered Form RabbitQueue Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the RabbitQueue Wave.

Rendered Form RabbitQueue Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
RapidPro Integration Types¶
RapidPro
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a RapidPro Wave
This is the form snippet from basic Tab in the RapidPro Wave.

Rendered Form RapidPro Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the RapidPro Wave.

Rendered Form RapidPro Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the RapidPro Wave.

Rendered Form RapidPro Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the RapidPro Wave.

Rendered Form RapidPro Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the RapidPro Wave.

Rendered Form RapidPro Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
SqsQueue Integration Types¶
SqsQueue
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a SqsQueue Wave
This is the form snippet from basic Tab in the SqsQueue Wave.

Rendered Form SqsQueue Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the SqsQueue Wave.

Rendered Form SqsQueue Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the SqsQueue Wave.

Rendered Form SqsQueue Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the SqsQueue Wave.

Rendered Form SqsQueue Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the SqsQueue Wave.

Rendered Form SqsQueue Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
SubmittedAssignments Integration Types¶
SubmittedAssignments
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a SubmittedAssignments Wave
This is the form snippet from basic Tab in the SubmittedAssignments Wave.

Rendered Form SubmittedAssignments Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the SubmittedAssignments Wave.

Rendered Form SubmittedAssignments Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the SubmittedAssignments Wave.

Rendered Form SubmittedAssignments Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the SubmittedAssignments Wave.

Rendered Form SubmittedAssignments Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the SubmittedAssignments Wave.

Rendered Form SubmittedAssignments Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Turk Integration Types¶
Turk
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a Turk Wave
This is the form snippet from basic Tab in the Turk Wave.

Rendered Form Turk Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed |
This is the form snippet from questions Tab in the Turk Wave.

Rendered Form Turk Wave Tab questions
Field | Info | Description |
---|
This is the form snippet from schedule Tab in the Turk Wave.

Rendered Form Turk Wave Tab schedule
Field | Info | Description |
---|---|---|
taskFrequencyType | Type: mixed | |
duration | Type: mixed | Number of days a participant is enrolled (set in Protocol) |
OK to Enroll |
Type: boolean Required: No |
If enrollment is permitted now |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
Field Workers |
Type: text Required: No |
Separated By commas, empty means everyone is eligible |
This is the form snippet from enrollment Tab in the Turk Wave.

Rendered Form Turk Wave Tab enrollment
Field | Info | Description |
---|---|---|
Turk Type |
Type: string() Required: Yes |
|
Turk Deployment |
Type: string(12) Required: Yes |
|
Auto Publish |
Type: boolean Required: No |
Auto-publish tasks to Audit/Import when queued |
This is the form snippet from task Tab in the Turk Wave.

Rendered Form Turk Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
Reward |
Type: text Required: Yes |
in USD, can be formula |
Repetitions |
Type: integer Required: Yes |
Number of Repetitions (aka raters) |
HIT Lifeftime |
Type: integer Required: Yes |
e.g. 1d 3h 5m for 1 day, 3 hour and 5 minutes |
Assignment Duration |
Type: integer Required: Yes |
Time Worker has to complete assignment, e.g. 5m for 5 minutes |
Auto Approval |
Type: integer Required: Yes |
Amount of time before Assignment is automatically approved " ."(faster if consensus reached) |
This is the form snippet from qualifications Tab in the Turk Wave.

Rendered Form Turk Wave Tab qualifications
Field | Info | Description |
---|---|---|
Use Qualifications |
Type: boolean Required: No |
Restrict tasks to qualified people |
Locale |
Type: string(32) Required: No |
|
MinApprovalRate |
Type: integer Required: No |
|
MinApprovedHits |
Type: integer Required: No |
|
Qualifications |
Type: text Required: No |
SET THESE IN JOB! Valid qualification types are: . Valid operators are: |
This is the form snippet from expiration Tab in the Turk Wave.

Rendered Form Turk Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the Turk Wave.

Rendered Form Turk Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
TwilioIvr Integration Types¶
TwilioIvr
The purpose of this integration is to provide a channel to collect data.
Go through each screen of the Wave Form or Wizard for a TwilioIvr Wave
This is the form snippet from basic Tab in the TwilioIvr Wave.

Rendered Form TwilioIvr Wave Tab basic
Field | Info | Description |
---|---|---|
Protocol | Type: mixed | |
description |
Type: text Required: No |
|
integrationTypeCode |
Type: string(16) Required: No |
|
Survey Channel | Type: mixed | How will the survey happen? |
Dedicated Channel | Type: mixed | Deactivate previous waves using this channel |
scheduleType | Type: mixed | |
Trigger |
Type: text Required: No |
Key word to trigger self-initiated survey |
Prompt Channel | Type: mixed | How will the prompting happen? Leave empty if same as survey |
Response Channel | Type: mixed | Channel for response, if different than primary channel (e.g. API) |
marking | Type: mixed | |
Schedule |
Type: text Required: No |
help_block_schedule_configuration |
Scheduling Conditions |
Type: text Required: No |
Only schedule when these conditions are met, e.g. dayOfWeek in ['Mon','Wed','Fri'] and dayOfMonth != 22 Fields: dayOfWeek (.e.g Mon), month (e.g. Jan), dayOfMonth (e.g. 15) |
Start Date | Type: mixed | Starting date of the protocol, when surveys are scheduled / accepted. |
Relative To Start Date |
Type: integer Required: Yes |
+1 for starting the next day |
Specific Start Date | Type: mixed | Only if type is set to specific, otherwise calculated |
Completion Threshold |
Type: text Required: No |
Minimum completed prompt percentage to mark as Complete |
Notes |
Type: text Required: No |
|
Allow in Observe |
Type: boolean Required: No |
Send link to web-based survey |
Publish Conditions |
Type: text Required: No |
In addition to the Source Channel Filter |
This is the form snippet from enrollment Tab in the TwilioIvr Wave.

Rendered Form TwilioIvr Wave Tab enrollment
Field | Info | Description |
---|
This is the form snippet from task Tab in the TwilioIvr Wave.

Rendered Form TwilioIvr Wave Tab task
Field | Info | Description |
---|---|---|
Task Title |
Type: text Required: No |
Public title |
Description |
Type: text Required: No |
Public description of this task |
Deployment Keywords |
Type: text Required: No |
Keywords make searching for jobs easier |
This is the form snippet from expiration Tab in the TwilioIvr Wave.

Rendered Form TwilioIvr Wave Tab expiration
Field | Info | Description |
---|---|---|
Time before expiration |
Type: integer Required: No |
|
Number of Reminders before Expiration |
Type: integer Required: No |
If 0, no reminders |
Maximum response time |
Type: integer Required: No |
Time allowed after first response before marking as abandoned (eg, 5m, 3h, 2d) |
Number of warnings |
Type: integer Required: No |
Once responding, number of warnings before marking as abandoned |
Minimum Time Between Same Surveys |
Type: integer Required: No |
Delay surveys if necessary by this amount (eg, 5m, 3h, 2d) |
This is the form snippet from messages Tab in the TwilioIvr Wave.

Rendered Form TwilioIvr Wave Tab messages
Field | Info | Description |
---|---|---|
welcome |
Type: boolean Required: No |
Welcome! |
welcome |
Type: text Required: No |
welcome Custom Message |
taskEnd |
Type: boolean Required: No |
The task has ended. |
taskEnd |
Type: text Required: No |
taskEnd Custom Message |
prompt |
Type: boolean Required: No |
Time to take your survey! |
prompt |
Type: text Required: No |
prompt Custom Message |
end |
Type: boolean Required: No |
The assignment has ended. |
end |
Type: text Required: No |
end Custom Message |
expiration |
Type: boolean Required: No |
The assignment has expired |
expiration |
Type: text Required: No |
expiration Custom Message |
reminder | Type: mixed | Please start your survey. |
reminder |
Type: text Required: No |
reminder Custom Message |
warning | Type: mixed | You have {{ assignment.remainingTimeDisplay}} remaining. |
warning |
Type: text Required: No |
warning Custom Message |
Audit Survey Types¶
Objective information about external data, like places or images
What’s Needed to Deploy¶
- Qualified Survey Participants
- Images
Use Case¶
When you want to know about individual places from an existing list. Deployed with field workers.
Integration Types¶
Typical Questions¶
- Go to the 7-11 and 1922 18th St. NW. Take a picture of the front door.
- Is the store open?
- Take pictures of all outdoor ads for sugary drinks.
- Do you see a "We Card" sign?
Survey Types/Ways to Administer¶
- Turk, see Turk Integration Types
- WebInterview, see WebInterview Integration Types
- Mapmob, see Mapmob Integration Types
- Api, see Api Integration Types
- ObserveWeb, see ObserveWeb Integration Types
- JsonResponses, see JsonResponses Integration Types
Survey Participants¶
Administrators can invite or add participants. Projects with “Allow Self Registration” and an active Screener Wave allow visitors to create an fill out a pre-qualification survey.
Data Collected¶
Users and Participants¶
A user an individual who has an account on the site. A participant is a user who has been enrolled in a mobile job. Users may have one or more roles. The most common role is ROLE_ADMIN, which gives the user full access when they are logged in.
Self-Registration¶
Users can register themselves on a site. To do so, they simply go to the site, and when prompted to log in, click on “New User Registration”. The first screen prompts them to create a username and password.
The username must not contain spaces or punctuation, except for “@” and “.” so that email addresses can be used as usernames.
Administrative Registration¶
Administrators can create users on the site. A user must be created before the person can be enrolled in a specific job. An administrator can create a user by going to the “Users” menu and selecting “Create a New User”.
Self-Enrollment¶
A user can register a tracking device as part of their profile. All users must have an account, even if a project is closed and the user is not allowed to log in. This allows a single record for each user so that information like their time zone and mobile phone number do not need to be repeated throughout the project.
Users register themselves by going to the login page

Login Screen
Signing in with Google is trivial, and recommended since Survos Mobile also supports it, making for a very fast login and avoiding yet another account name and password to remember. Alternatively, the user can click on Create sn Account and be prompted with a screen that asks for email address, username, and password. The email and username must be unique on the site; different users cannot have the same email. The username may be the same as the email, which is what happens if the user registered via Google+.
Profile Editor¶
After logging in, the user is taken to a page that allows them to complete their profile. The field details are described in the next section, since they are a subset of the fields a project administrator will see.
The user simply fills in the fields and clicks on Save.
To enroll a participant:
https://www.youtube.com/watch?v=2YmuZxtA6vY
Enrolling Participants¶
There are three ways to participants can be enrolled in a job, self-enrollment, via the “Participants” table, or when a user is created or modified.
(TEXT and screenshots here)
(text and screenshots)
- Install CHAT app
- iPhone: [insert instructions]
- Android: [insert instructions]
- Add new user to Survos
- Click “participants” on left-hand column
- Click “Create new user”
- Enter their mobile phone #!!!
- Enter user name (same as baseline ID number)
- Enter password (same as user name)
- Click “save”
- Click “Add new device”
- Enter their chat number and click on the search button
- Select “chat-iOS” for type
- Click “save”
- Enroll participant
- Click on the “random” study
- Click on the “enrollees” tab
- Click “add new participant”
- Select the user by clicking on the box to the left of their name/id
- Enter the start date (if left blank it will start today)
- “Verbosity” – choose “normal”
- Click “ADD”
- Go back to the home page
- Click on “cig” study
- Click on the “enrollees” tab
- Click “add new participant”
- Select the user by clicking on the box to the left of their name/id
- Enter start date
- Verbosity – normal
- Click add
- Send test survey
- Click on the “random” study
- Click on the “enrollees” tab
- Select the box to the left of the participant’s user name
- Action > Initiate Right now
- Click “Do action”
- Schedule survey
- Click on the “cig” study
- Click on the “enrolles” tab
- Select the box to the left of the participant’s user name
- Click on the pencil icon
- Enter start date
- Enter number of days: 7
- Verbosity: normal
- Frequency: 6
- Enter start and end time (8 hours)
- Click submit”
- Program phone numbers into participants phone
- 202-688-0658 “Cig Survey”
- 202-601-3699 “Random Survey”
- Explain incentives
- Give them a copy of the incentives chart
Tutorials¶
Contents:
Exercise Monitoring¶
Suppose you wanted to know how much people excercised? You could ask them to keep a diary, but people often forget to fill it out. In this tutorial, we’ll set up a nightly text message to ask people a few simple questions about their exercise for the day.
This tutorial shows how to set up a regularly scheduled survey, like a daily diary.
Design the Survey¶
NOTE: Although there’s not much typing in this survey, if you want to simply import the survey and skip the typing, read “Importing Surveys” and import the survey called “Exercise 1”.
Click on the Surveys menu, and then Create a New Survey. You’ll be prompted for the code, and the deployment methods. You can deploy the same survey via multiple methods, selecting how you will deploy it now will make sure that the survey designer only allows you to create valid questions for your deployment type. For example, you can’t create a camera question via IVR.
Make the survey code exercise1, set the “Deployable via” to “SMS” and click on “Continue”. Survey Designer will open.
The first question should be filled out like the image below.
Adding Questions¶
To add the first question to a survey, follow these steps:
- Fill out the question text with Did you exercise today? This is a Yes/No question, so choose that as the type from the dropdown menu. Each question has its own code, like the column headers in a spreadsheet or analysis in a statistics program like R or Stata. Type “exercised_today” as the variable.
We could stop here, if that’s all the data we wanted to collect. But let’s say we’re interested in what kind of exercise, so let’s ask.
- Add another question by clicking on the ADD QUESTION button. Now fill out the second question with “What kind of exercise?”, and make the variable name “exercise_type”. We could let the user answer whatever they wanted, but this would give us all sorts of variations that would be difficult to analyse. So we’ll restrict the answers by making it a radio question, called that way because like a radio, you can only choose one station at a time. Choose “radio” from the dropdown, and in the Choices, create answers like these:
IMAGE: 1 Running, 2 Team Sports 3: Swimming 4: Yoga 5:Other
We could stop here, but let’s say we’re interested in the relationship between exercise and feeling, so let’s ask.
- Add another question by clicking on the ADD QUESTION button, and enter “On a scale of 1-5, where 1 is lousy and 5 is great, how do you feel right now?”. Set the type to integer, and to make sure the answers are in the appropriate range, set min to 1 and max to 5.
IMAGE OF QUESTION.
Let’s do a quick look
- Publish the surveys
Exporting Collected Data¶
Go to Export
Tracking¶
The Posse Platform allows the ability to track people’s location by associating a tracking ID with each participant. Tracks (timestamped coordinates) are sent to an independent tracking server, Survos Tracker. Individual projects pull tracking data from the participants locally, as needed.
This section will review various methods to initiate tracking, and how to integrate tracking with the Posse Platform.
GT500 Devices¶
The GT500 devices are programmed either with the Queclink software and USB cable provided to device administrators or remotely via SMS. The device should be programmed to send the data to the same address as Traccar—that is:
Setting | Value |
---|---|
Server address | tracker.survos.com |
Server port | 5000 |
The unique identifier for GT500 devices is always the IMEI number, a string of 15 digits unique to each device. A name can also be programmed, such as SCTC-105, but this is simply a tool to make debugging a bit easier.
Survos Mobile¶
Survos Mobile has built-in tracking and currently does not have any configuration options.
Traccar¶
Traccar is a free and open source GPS tracking system. Tracking apps are available for Android and iOS that integrate with the Traccar server or any server that can understand their protocol. Since the Survos Tracker server understands that protocol, a user simply needs to download the app and configure it to point to the right server.
Since the software is available in the app stores, installation is very easy:
- Android: https://play.google.com/store/apps/details?id=org.traccar.client for remote install.
- Android or iOS: Open the App Store on your device, search for Traccar Client and install.
Traccar Configuration¶
Once you’ve opened the application, Simply tap on each setting to be prompted for the new value. Use these values to point your device to Survos Tracker. The initial version of Traccar for iOS does not include Location Provider or Extended Format, although the author has indicated that these may be added in the future.
Please note that Apple now prevents apps that use the location service from automatically starting when the phone is powered on. Therefore participants are responsible for turning the app when they boot their phone up, or (even better) keeping their phone charged so it never goes off. Because location apps are a battery drain, this is often difficult. You can use the Posse Platform to schedule nightly “surveys” that remind people to plug their devices in and ask them to report any problems.
Integration with the Posse Platform¶
Survos Tracker simply records a timestamp and point (latitude and longitude) for each device that sends it information. In order to integrate it with the Posse Platform, there must be a link between users and the device. This can be done either by the user, if they are managing their own account, or by a project administrator, if it is a closed project.
A closed project can only be managed by someone with an account set up that allows access to user data on the system. This is usually the administrator’s account.
Registering Devices¶
In order to associate a tracking device with a user, use the Device panel at the bottom of the profile screen. The GT500’s must be registered with the Master Device Database before those devices can be added to a user profile. The GT500’s are registered at the American Legacy Foundation before they are shipped to partners. Traccar devices will register themselves the first time a point is received by the Survos Tracking Server.
Closed Project Enrollment¶
Projects may be completely closed, (not allowing users to self-enroll or access their data), or they can allow for some user participation. In particular, a project might allow a user to sign up online or in a waiting area before their initial interview. This will allow the user to type in their own name and cell phone number, and then the administrator can simply verify it and add the tracking device as necessary.
If the project is completely closed, then the administrator needs to create a user record for the participant. To do that, simply click on the Create a New User link.
While this screen is fairly self-explanatory, there are a few things worth noting:
- Username: This is the identifier that will show up on reports and data exports. You can select something obscure if you want to keep your report data anonymous. You can also choose an email address, since that will be unique. Or depending on the project size, you may choose something like first initial plus last name. There should be no spaces or punctuation in the username (other than “@” and “.” for email addresses). It is simply a code for the user.
- Name: Used in some reports, but mostly for administration.
- Timezone: Timezone is important with tracking and scheduled surveys, since surveys are often scheduled during waking hours, so the system needs to know the timezone. The default is the timezone where the computer is located, which may be wrong if the participant is being registered remotely, such as over the phone.
- User Roles: Gives special permissions to certain users, such as administrative rights.
- Amazon Turk Id: If you are paying participants through Amazon Mechanical Turk, this is their account number. User recruitment can also be done via Mechanical Turk, as described in the section “Creating a Recruitment Job” in the “Surveys” chapter.
- Mobile Phone: Required to participate in SMS (text) or MMS (text plus photos) mobile surveys. Note that Google Voice will not work with MMS, but does work with SMS surveys.
- Tracking Device Id: This is the IMEI (for GT500 devices) or other unique identifier that is being sent to Survos Tracker.
Conclusion¶
User registration is fairly straightforward. It can be done entirely by an administrator, entirely self-administered, or a combination. The user record is a single system-wide way to maintain important information about a single user, such as the email address, timezone, mobile phone, and tracking device.
Once a user is set up in the system, they can participate in mobile surveys.