Create a Conversational Form — Patient Intake

Build an AI-powered patient intake workflow that collects demographic, insurance, and medical history information through natural conversation.

Intermediate
9 min read

Create a Conversational Form — Patient Intake

What You'll Accomplish

By the end of this tutorial, you'll have an AI-powered patient intake system that collects demographic information, insurance details, and medical history through natural conversation. Instead of handing patients a paper form or a rigid web form, your AI agent guides them through the process conversationally — adapting to their responses, asking follow-up questions, and validating data as it goes.

What You'll Need

  • A Gravity Rail workspace
  • A channel for patient interaction (web chat site, phone number, or SMS — you'll set one up)
  • An agent configured for your workspace

Step 1: Create the Intake Forms

Patient intake typically collects several categories of information. Create separate forms for each so data stays organized and reusable.

Demographics form

  1. Go to Knowledge > Forms

  2. Click Create Form

  3. Configure:

    • Name: "Demographics"
    • Slug: demographics
    • Collection: Off (one record per member)
    • Prompt: "Collect the patient's demographic information in a conversational, friendly manner. Ask for each piece of information naturally — don't read off a list. If the patient provides multiple pieces of information at once, capture them all."
  4. Add these fields:

Field NameTypeSlugRequired
Date of BirthDatedate_of_birthYes
GenderDropdowngenderYes
AddressTextaddressYes
CityTextcityYes
StateDropdownstateYes
ZIP CodeZIP Codezip_codeYes
Preferred LanguageDropdownpreferred_languageNo
Emergency Contact NameTextemergency_contact_nameYes
Emergency Contact PhonePhoneemergency_contact_phoneYes
Emergency Contact RelationshipTextemergency_contact_relationshipYes
  1. For the Gender dropdown, add: "Male", "Female", "Non-binary", "Prefer not to say", "Other"

  2. For Preferred Language, add your most common languages: "English", "Spanish", "Mandarin", "Vietnamese", etc.

Insurance form

  1. Create another form:

    • Name: "Insurance"
    • Slug: insurance
    • Collection: Off
    • Prompt: "Collect the patient's insurance information. Be helpful — many patients don't have their insurance details memorized. Let them know it's okay to provide what they have and the office can verify the rest."
  2. Add these fields:

Field NameTypeSlugRequired
Insurance ProviderTextinsurance_providerYes
Plan NameTextplan_nameNo
Member IDTextmember_idYes
Group NumberTextgroup_numberNo
Policyholder NameTextpolicyholder_nameYes
Policyholder DOBDatepolicyholder_dobNo
Relationship to PolicyholderDropdownpolicyholder_relationshipYes
  1. For Relationship to Policyholder: "Self", "Spouse", "Child", "Other"

Medical history form

  1. Create a third form:

    • Name: "Medical History"
    • Slug: medical_history
    • Collection: Off
    • Prompt: "Collect the patient's medical history sensitively and conversationally. Normalize the process — let them know this is routine and helps their provider give better care. If they're unsure about something, note that and move on."
  2. Add these fields:

Field NameTypeSlugRequired
Current MedicationsLong Textcurrent_medicationsNo
AllergiesLong TextallergiesYes
Chronic ConditionsMulti-selectchronic_conditionsNo
Previous SurgeriesLong Textprevious_surgeriesNo
Family HistoryLong Textfamily_historyNo
Currently PregnantYes/Nocurrently_pregnantNo
Primary Reason for VisitLong Textreason_for_visitYes
  1. For Chronic Conditions multi-select, add common options: "Diabetes", "Hypertension", "Asthma", "Heart Disease", "Arthritis", "Depression/Anxiety", "None", "Other"

For more on creating forms and field types, see the Forms guide.


Step 2: Build the Intake Workflow

Create a multi-step workflow that guides the patient through each section of the intake.

Create the workflow

  1. Go to Workflows and click Create Workflow
  2. Name it "Patient Intake"
  3. Assign your agent

Add the tasks

Task 1: Welcome (Starting Task)

  • Name: "Welcome"
  • Prompt:
    Welcome the patient warmly. Introduce yourself as the intake assistant for
    [Your Practice Name]. Explain that you'll be collecting some information to
    help their provider prepare for their visit. Let them know:
    - This takes about 5-10 minutes
    - Their information is kept confidential
    - They can ask questions at any time
    - If they're unsure about something, that's okay
    
    Ask if they're ready to get started.
    
  • Goal: "Patient has acknowledged and is ready to begin"
  • Sub-Tasks: Collect Demographics

Task 2: Collect Demographics

  • Name: "Collect Demographics"
  • Prompt: "Collect the patient's demographic information. Be conversational — don't read off a list of fields. Adapt based on what they volunteer."
  • Goal: "All required demographic fields are filled"
  • Data Types: Attach the Demographics form
  • Sub-Tasks: Collect Insurance

Task 3: Collect Insurance

  • Name: "Collect Insurance"
  • Prompt: "Now collect insurance information. Let the patient know this helps the office verify coverage before their visit. If they don't have insurance, note that and move on."
  • Goal: "Insurance information collected or patient confirmed uninsured"
  • Data Types: Attach the Insurance form
  • Sub-Tasks: Collect Medical History

Task 4: Collect Medical History

  • Name: "Collect Medical History"
  • Prompt: "Collect the patient's medical history. Be sensitive — some patients may be uncomfortable discussing health conditions. Normalize the questions and explain why each is important."
  • Goal: "Medical history information collected"
  • Data Types: Attach the Medical History form
  • Sub-Tasks: Review & Confirm

Task 5: Review & Confirm

  • Name: "Review & Confirm"
  • Prompt:
    Summarize what was collected for the patient. Give them a brief overview of
    the key details (name, appointment reason, insurance provider) and ask if
    anything needs to be corrected. Thank them for their time and let them know
    the office will review their information before their visit.
    
  • Goal: "Patient has reviewed and confirmed their information"

Connect the tasks

Link the tasks in sequence using the visual Task Flow editor: Welcome > Collect Demographics > Collect Insurance > Collect Medical History > Review & Confirm

Set "Welcome" as the Starting Task.


Step 3: Connect a Channel

Give patients a way to complete the intake.

  1. Go to Channels > Sites
  2. Create a site:
    • Name: "Patient Intake Portal"
    • Default Workflow: "Patient Intake"
  3. Visit the site URL to test the intake flow

Option B: SMS

  1. Go to Channels > Phone Numbers
  2. Set up a phone number with SMS enabled
  3. Set the Default Workflow to "Patient Intake"
  4. Patients text the number to begin intake

Option C: Email

  1. Go to Channels > Inboxes
  2. Create an inbox with the Default Workflow set to "Patient Intake"
  3. Patients email to begin intake

See the Channels guide for more setup options.


Step 4: Set Up Pre-Visit Automation

Automatically start the intake process before a patient's appointment.

  1. Go to Events and click New Event
  2. Configure:
    • Schedule Type: CRON
    • CRON Expression: 0 10 * * * (daily at 10 AM)
    • Targeting: Member Filter — filter for members with appointments in the next 3-7 days who haven't completed intake
  3. Create a Send SMS action:
    • Message: "Hi {{member.first_name}}, your appointment is coming up! Complete your intake now to save time at your visit. Reply START to begin."
  4. Attach the action and activate the event

Step 5: Add Completion Notifications

Notify your team when a patient completes intake so they can review the information.

  1. Go to Actions and click New Action
  2. Configure:
    • Trigger: Task Entered, targeting the "Review & Confirm" task
    • Action Type: Member Notify
    • Recipients: Your front desk or clinical team
    • Message: "{{member.name}} has completed patient intake for their upcoming visit."

Optionally, add a Send Webhook action to push the data to your practice management system.


Confirm the Result

  1. Walk through the intake. Open the site you created and complete the intake as a test patient. Verify the conversation flows naturally from demographics through medical history.

  2. Check the form data. Go to Knowledge > Forms and open each form. Verify that records were created with the data you provided.

  3. Test edge cases. Try the intake again with variations:

    • Skip optional fields
    • Provide multiple pieces of information in a single message
    • Ask the agent a question mid-intake
    • Say you don't have insurance
  4. Verify notifications. Confirm that team notifications fire when a patient reaches the Review & Confirm task.

If the AI isn't collecting data correctly, review the form prompts and task prompts. Clear, specific prompts produce the best results.


What's Next

  • Add consent forms. Create a Yes/No form for patient consent (HIPAA acknowledgment, treatment consent) and add a task before Review & Confirm.
  • Support multiple languages. Configure your agent with multilingual instructions or create separate workflows per language. Use the Preferred Language field to route patients appropriately.
  • Track completion rates. Use Labels to tag members as "Intake Complete" when they finish, then filter your member list to see who still needs to complete intake.
  • Connect to your EHR. Push completed intake data to your electronic health record system using webhooks or an MCP Server integration. See the Connect to Your EHR tutorial for details.