Skip to content

Survey Scheduling

Survey schedules define when surveys are sent, who receives them, and which questions are asked. This page covers all scheduling options and targeting configurations.

GuideMode supports three scheduling patterns:

Diagram

Send surveys on the same day each week.

FieldTypeDescription
dayOfWeek0-60 = Sunday, 1 = Monday, …, 6 = Saturday
timeOfDayHH:MM24-hour format (e.g., “09:00”)

Example: Every Monday at 9am

{
"scheduleType": "weekly",
"dayOfWeek": 1,
"timeOfDay": "09:00"
}

Send surveys on the same business day each month.

FieldTypeDescription
dayOfMonth1-31Business day number (skips weekends)
timeOfDayHH:MM24-hour format

Example: First business day at 10am

{
"scheduleType": "monthly",
"dayOfMonth": 1,
"timeOfDay": "10:00"
}

Send surveys based on user activity rather than calendar.

Trigger TypeDescriptionConfiguration
session_countAfter N AI sessions uploaded{ "type": "session_count", "threshold": 25 }

Example: After every 25 sessions

{
"scheduleType": "triggered",
"triggerConfig": {
"type": "session_count",
"threshold": 25
}
}

Surveys can target different audiences:

Diagram

All organization members receive the survey.

{
"targetType": "organization"
}

Use case: Company-wide pulse checks, quarterly health surveys.

Only members of selected teams receive the survey.

{
"targetType": "teams",
"targetTeamIds": ["team-uuid-1", "team-uuid-2"]
}

Features:

  • Only enabled teams receive surveys
  • Members are deduplicated across teams
  • Users in multiple targeted teams get one survey

Use case: Team-specific feedback, project retrospectives.

Specific named users receive the survey.

{
"targetType": "individual",
"targetUserIds": ["user-uuid-1", "user-uuid-2"]
}

Use case: Targeted follow-ups, new hire onboarding surveys.

GuideMode prevents survey overload with built-in limits:

SettingDefaultDescription
surveyMinimumIntervalDays7Days between surveys for same user
surveyMaxActivePerUser1Maximum pending surveys per user

These are configured at the organization level in Settings → Organization → Survey Settings.

Before creating a new survey instance:

  1. Check active count - User has fewer than surveyMaxActivePerUser pending surveys
  2. Check interval - User’s last completed survey was more than surveyMinimumIntervalDays ago
  3. Check duplicates - No existing instance for same schedule + due date
FieldTypeRequiredDescription
namestringYesSchedule display name
descriptionstringNoOptional description
surveyTypestringNoType of survey (default: ‘team_experience’)
purposeenumNoSurvey purpose category
scheduleTypeenumYes’weekly’, ‘monthly’, ‘triggered’
dayOfWeekintegerWeekly0 (Sunday) to 6 (Saturday)
dayOfMonthintegerMonthly1-31 (business day number)
timeOfDaystringYes”HH:MM” format (24-hour)
triggerConfigobjectTriggeredTrigger configuration
targetTypeenumYes’organization’, ‘teams’, ‘individual’
targetTeamIdsuuid[]TeamsTeam IDs to target
targetUserIdsuuid[]IndividualUser IDs to target
isActivebooleanNoWhether schedule is active (default: true)

Each schedule can customize which questions are asked:

{
"questionConfig": {
"version": "1.0",
"questions": [
{ "id": "overall_productivity", "enabled": true, "order": 1 },
{ "id": "job_satisfaction", "enabled": true, "order": 2 },
{ "id": "ai_tool_impact", "enabled": false, "order": 3 }
]
},
"randomizeQuestionOrder": true,
"textQuestionsAtEnd": true
}
SettingDefaultDescription
randomizeQuestionOrdertrueRandomize question order per response
textQuestionsAtEndtruePlace text questions last (when randomized)

See Survey Questions for the complete list of available questions.

Diagram

Users receive:

  • Assignment email - When survey is assigned
  • Reminder email - If pending for more than 3 days

Users can disable these in their settings:

  • emailSurveyAssignments - Toggle assignment emails
  • emailSurveyReminders - Toggle reminder emails