Technical Terminology
Partners implementing the Intake and Scheduling API must collect all required user inputs, validate values where specified, and submit them through the appropriate API endpoints. The client application is responsible for enforcing every constraint defined on this page before submission.
Preferred Modality
The client application must collect the member's preferred counseling modality and submit it as part of the intake request.
| Constraint | Value |
|---|---|
| Field | Preferred modality |
| Type | enum |
| Cardinality | Exactly one value |
Allowed values:
telephonicvirtualin_person
Area of Support
The client application must collect the member's primary area of support.
| Constraint | Value |
|---|---|
| Field | Primary area of support |
| Type | enum |
| Cardinality | Exactly one value |
| Match rule | Must exactly match one of the EAPX values below |
Allowed values:
- Grief/Loss
- Relationship/Family Concerns
- Adjustment/Change
- Stress
- Workplace Concerns
- Addiction Concerns
- Anxiety
- Depression
- Emotion Regulation
- Self Growth
Risk Assessment Questions
The client application must collect responses to the following risk assessment questions before proceeding with intake or scheduling.
| # | Question | Type |
|---|---|---|
| 1 | Are you experiencing any thoughts of hurting yourself? | boolean (Yes / No) |
| 2 | Are you experiencing any thoughts of hurting others? | boolean (Yes / No) |
| 3 | Are you seeking support for substance abuse–related concerns? | boolean (Yes / No) |
Classification Rule
If any response = Yes, the case must be classified as High Risk.
State Management — High Risk
When a High Risk condition is detected, the client application must enter a blocked state immediately. The intake or scheduling flow must not continue.
| Rule | Requirement |
|---|---|
| Flow termination | Disable all forward navigation; the workflow must not proceed |
| Cross-page navigation | Disable navigation to other application pages |
| Messaging | Render the exact emergency message below with organization-specific values supplied by the API |
| Cache expiration | The blocked state expires after 24 hours |
| Manual reset | The blocked state may also be cleared by resetting the application cache |
Required blocked-state message (render with dynamic organization values):
Thank you for answering. To complete your request, please call our 24/7 support line now:
{Emergency Phone Number by Country}Support is moments away.
If you are experiencing suicidal thoughts, homicidal thoughts, or domestic violence, please call us at
{Emergency Phone Number by Country}. If you are experiencing a life-threatening situation, please call emergency services or go to the nearest emergency room.
Identify Location (In-App Scheduling Only)
In-App Scheduling requires the client application to collect the member's location before querying provider availability.
| Field | Type | Required | Validation |
|---|---|---|---|
country | string | Yes | Valid country value |
state | string | Yes when country = US | One of the allowed U.S. states and territories below |
When country is United States, state must be one of:
- All 50 U.S. states
- Puerto Rico
- U.S. Virgin Islands
U.S. values must use USPS two-letter abbreviations (e.g., CA, NY, TX, PR, VI).
Choose Provider and Schedule Time (In-App Scheduling Only)
Provider Query
The system takes into account providers availability and licenses as follows:
- Domestic (U.S.): Backend queries self-scheduling providers whose licensed state matches the state selected by the member.
- International: Backend queries self-scheduling providers located in the country selected by the member.
Provider Profile — Required Display Fields
The API returns the following provider attributes. The client application must display all listed fields:
| Attribute | Notes |
|---|---|
| Profile photo | — |
| Provider's full name | — |
| Professional license | — |
| Preferred pronouns | Optional |
| Accepted insurance plans | Domestic providers only |
| Languages spoken | — |
| Provider biography | Maximum 400 characters |
| Next available appointment | Earliest bookable slot is 72 hours from the current time |
| Additional availability | — |
| Time zone | All availability and time slots must be presented in the member's local time zone, based on the user's location and system time settings |
Booking Rules — System Validation Constraints
The client application must enforce the following scheduling constraints:
| Constraint | Rule |
|---|---|
| Minimum lead time | Appointment requests must be scheduled at least 72 hours in advance |
| Maximum lead time | Appointment requests may only be scheduled between 72 hours and 30 days in the future |
| Overlap prevention | A request cannot overlap with an existing booking for the same provider |
| Duration | Appointment duration is always 45 minutes |
| UI (booking & confirmation) | Must reflect a 45-minute meeting |
| Slot intervals | Available time slots are displayed in 45-minute intervals separated by 15 minutes of buffer, beginning at the first available start time defined by the provider |
Example 1: Provider availability from 9:00 AM–1:00 PM
- 9:00 AM – 9:45 AM
- 10:00 AM – 10:45 AM
- 11:00 AM – 11:45 AM
- 12:00 PM – 12:45 PM
Example 2: Provider availability from 2:30 PM–4:30 PM
- 2:30 PM – 3:15 PM
- 3:30 PM – 4:15 PM
No Available Appointment Handling
If the availability API returns no appointment slots matching the member's preferences, the client application must seamlessly fall back to submitting an intake request without scheduling data (see Stand-Alone Intake). This routes the member to the internal provider matching team, who will connect the user with a provider outside of the In-App Scheduling system.
Clinical Screening Questions (PHQ-9 & GAD-7)
The client application must collect PHQ-9 and GAD-7 survey responses and submit them with the intake request. These responses are stored for clinical context and help determine the risk severity of a case.
Note: Risk-based handling of survey results (e.g., classifying a member as high risk and redirecting them to the blocked page) is not currently enforced and will be implemented in a future phase.
GAD-7 Survey Format
Response values (all GAD-7 questions 1–7):
| Value | Label |
|---|---|
0 | Not at all |
1 | Several days |
2 | More than half the days |
3 | Nearly every day |
Questions:
- Feeling nervous, anxious, or on edge
- Not being able to stop or control worrying
- Worrying too much about different things
- Trouble relaxing
- Being so restless that it is hard to sit still
- Becoming easily annoyed or irritable
- Feeling afraid, as if something awful might happen
PHQ-9 Survey
Response values (PHQ-9 questions 1–9):
| Value | Label |
|---|---|
0 | Not at all |
1 | Several days |
2 | More than half the days |
3 | Nearly every day |
Questions:
- Little interest or pleasure in doing things
- Feeling down, depressed, or hopeless
- Trouble falling or staying asleep, or sleeping too much
- Feeling tired or having little energy
- Poor appetite or overeating
- Feeling bad about yourself — or that you are a failure or have let yourself or your family down
- Trouble concentrating on things, such as reading the newspaper or watching television
- Moving or speaking so slowly that other people could have noticed, or the opposite — being so fidgety or restless that you have been moving around more than usual
- Thoughts that you would be better off dead or of hurting yourself in some way
PHQ-9 Question 10 (Functional Impact):
| Value | Label |
|---|---|
0 | I did not check off any problems |
1 | Not difficult at all |
2 | Somewhat difficult |
3 | Very difficult |
4 | Extremely difficult |
Basic Demographics
The client application must collect the following member information before submitting an intake or scheduling request.
Personal Information
| Field | Type | Required | Validation / Notes |
|---|---|---|---|
| First Name | string | Yes | — |
| Last Name | string | Yes | — |
| Preferred Name | string | No | — |
| Date of Birth | date | Yes | See State Management — Under 18 below |
State Management — Under 18
If the member is under 18 years old, the client application must enter a blocked state immediately. Parental consent is required to provide counseling to a minor.
| Rule | Requirement |
|---|---|
| Flow termination | Block the member from continuing; the workflow must not proceed |
| Cross-page navigation | The member must not be able to navigate back to any other page |
| Messaging | Render the exact emergency message below with organization-specific values rendered dynamically |
| Cache expiration | The block automatically expires after 24 hours, after which the member may access the site again |
Required blocked-state message (render with dynamic organization values):
Thank you for answering. To complete your request, please call our 24/7 support line now:
{Emergency Phone Number by Country}Support is moments away.
If you are experiencing suicidal thoughts, homicidal thoughts, or domestic violence, please call us at
{Emergency Phone Number by Country}. If you are experiencing a life-threatening situation, please call emergency services or go to the nearest emergency room.
Identity Information
| Field | Type | Required | Allowed Values |
|---|---|---|---|
| Gender | enum | Yes | Agender, Bi-gendered, Female, Gender Fluid, Gender Queer, Intersex, Male, Non-Binary/Non-Conforming, Other, Pangender, Transgender, Unable to Answer, Unknown / Decline |
| Preferred Pronouns | enum | No | He/Him, He/They, She/Her, She/They, They/Them, XE/XEM, Other |
Member Details
| Field | Type | Required | Allowed Values |
|---|---|---|---|
| Member Type | enum | Yes | Employee, Family Member, Household Member |
| Marital Status | enum | Yes | Co-habitating, Common-law, Co-Parenting, Decline to Answer, Divorced, In a relationship, Married, Partner, Separated, Single, Unable to Answer, Widowed |
Contact Information
| Field | Type | Required | Validation / Notes |
|---|---|---|---|
string | Yes | — | |
| Phone Number | string | Yes | Must support international phone number formats |
| Can we leave a voicemail? | boolean | Yes | Yes / No |
Address Information
| Field | Type | Required | Validation / Notes |
|---|---|---|---|
| Address Line 1 | string | Yes | — |
| Address Line 2 | string | No | — |
| City | string | Yes | — |
| State / Province / County | enum | Yes | When Country = United States, validate against all U.S. states and territories, including Puerto Rico (PR) and U.S. Virgin Islands (VI). U.S. selections must use USPS two-letter state/territory abbreviations (e.g., CA, NY, PR, VI). |
| Postal Code | string | Yes | Must support international postal code formats |
| Country | enum | Yes | Must include all countries globally |
Legal Acceptance
| Field | Type | Required |
|---|---|---|
| Terms & Agreement and Privacy Policy Acceptance | boolean | Yes |
Success Page
The success page message must vary based on the flow used. The client application must render the appropriate message exactly as defined below, with values rendered dynamically based on organization-specific configuration.
Note: All success page messaging may be overridden by values defined in the organization's internal Custom Success Message Settings. If custom messaging is configured, the client application must render the organization-provided content instead of the default messages below.
In-App Scheduling — Default Success Message
Displayed after an In-App Scheduling request is submitted.
Your appointment request has been received!
Please allow up to 48 hours for your clinician to confirm your appointment. You will receive a confirmation or follow-up via email.
If you do not hear back within that time, feel free to reach out to us at eapsupport@myeap.io
Note: This service is not intended for emergencies. If you are in crisis, please call our 24/7 hotline at
{emergency_phone_by_country}.
Stand-Alone Intake — Default Success Message
Displayed after a Stand-Alone Intake request is submitted (the API payload name is Intake).
Your request has been received!
Please allow up to 48 hours to hear back regarding your request. You will receive a confirmation or follow-up via email.
If you do not hear back within that time, feel free to reach out to us at eapsupport@myeap.io
Note: This service is not intended for emergencies. If you are in crisis, please call our 24/7 hotline at
{emergency_phone_by_country}.
Intake Customizations
Organization-configurable intake settings are managed on the backend and delivered to the client via the API. The client application must inspect the API response for these configuration values and dynamically render the corresponding UI elements when present.
Configuration Inheritance
Intake customizations can be configured at either the parent or child organization level:
- Parent-level settings apply to all child organizations by default.
- Child-level settings override parent configurations and apply only to that specific organization.
Custom Success Messages
| Property | Behavior |
|---|---|
| Source | Backend organization configuration, returned by the API |
| UI effect | Replaces the default success message for the corresponding flow |
| Applicable flows | Stand-Alone Intake, In-App Scheduling, Work-Life Requests |
When a custom success message is configured, the client application must render the organization-provided content instead of the default messages defined in Success Page.
Custom Modality Message
| Property | Behavior |
|---|---|
| Source | Backend organization configuration, returned by the API |
| UI effect | Optional banner displayed at the top of the Modality Selection page |
| Purpose | Organization-specific guidance, modality limitations or recommendations, or expectations prior to modality selection |
When present, the client application must render this banner before the member selects a counseling modality.
Custom Intake Questions
The API supports organization-level configuration for additional intake UI elements. When returned by the API, the client application must render each custom question dynamically.
| Property | Type | Required | Description |
|---|---|---|---|
| Question Label | string | Yes | Display text for the question |
| Helper Text | string | No | Supplemental guidance shown below the label |
| Required | boolean | Yes | Indicates whether the question must be answered (Yes / No) |
| Question Type | enum | Yes | One of: text, multi-select, single-select |
| Options | string | Conditional | Comma-separated values; required for multi-select and single-select question types |
