Overview
Morf enables respondents to schedule appointments within a Feathery flow through two integration points:- Time Slot Selection Step (iframe) — Embeds the Morf scheduling UI inside a Feathery step. Displays real-time availability from your scheduling service and allows respondents to select a time slot.
- Booking in Progress Step (logic rule) — Schedules the appointment in your scheduling service using the selected time slot and the respondent’s submitted information.
Prerequisites
Before you begin, confirm you have:- A Morf organization.
- Your branding details shared with Morf (or use default branding).
- Provider data entered into the Morf provider dashboard.
- Completed the baseline Feathery Setup Instructions.
- Feathery fields that collect the following information before the appointment is scheduled. Confirm the field IDs match exactly:
first_namelast_namephone_numberemail_address
Instructions
0. Create a Feathery-triggered workflow in Morf
- Create your workflow (or use the Morf patient signup template).
- Configure the Profile Lookup node:
- Lookup field →
user_id - Profile ID →
Profile ID
- Lookup field →
- Configure the Update Profile Properties node:
- Store
user_idas the Feathery ID.
- Store
1. Create hidden fields
In the form, go to Settings > Data Tracking > Edit Hidden Fields and add:scheduled_apptscheduled_appt_idscheduled_appt_datetime_formattedappt_type_id
appt_type_id, which must be set in the environment variables logic rule (see step 2).
2. Edit logic rule: Set Environment Variables
Addappt_type_id to your existing Set Environment Variables custom logic rule. If you haven’t created it yet, follow the Feathery Setup Instructions.
View code
View code
3. Create step: Time slot selection
- Create a new step in your flow named
Time slot selection. - Add a Container → iframe to the step.
- Set:
- Field ID →
time_slot - Source URL → Use the scheduling URL from the direct scheduling link documentation.
- Field ID →
- Optionally hide filters by appending query parameters:
hideStatehideInsurancehideSpecialties
- Recommended iframe height:
85vh
4. Create logic rule: Initialize time slot selection
This rule listens for messages from the Morf scheduling UI iframe and stores the selected time slot details:providerId, timezone, appointmentTypeId, and datetime.
- Go to Logic > Create New Logic Rule.
- Name the rule
Initialize time slot selection. - Configure the trigger:
- Event trigger: Form Step is Loaded
- Step trigger:
time_slot_selection
- Go to Advanced Logic > Edit Code and add the following. Update
goToStepto use the step name that should follow time slot selection.
View code
View code
5. Create intermediate steps (optional)
Insert any steps to collect additional patient information — such as insurance or credit card details — before scheduling the appointment.6. Create booking status steps
Create three steps:- Booking in progress — Triggered when the respondent views this step; initiates the appointment booking in your third-party service. Recommended styling: loading icon + “Booking your appointment…” message.
- Appointment confirmed — Displayed when the appointment is successfully booked. Use the
scheduled_apptfield to display booking details. - Booking error — Displayed if the scheduling service returns an error. Recommended: instruct the user to retry time slot selection.
response.data.message field will contain one of the following error values:
7. Add logic rule: Schedule appointment
- Go to Logic > Create New Logic Rule.
- Name the rule
Schedule appointment. - Configure the trigger:
- Event trigger: Form Element is Viewed
- Element trigger: an element on your Booking in Progress step
- Go to Advanced Logic > Edit Code and add the following. Update the
goToStepcalls at the bottom to match your booking error and appointment confirmation step names.
View code
View code
8. Add Morf API connectors
Add two API connectors in Feathery:-
Morf scheduling endpoint — Used to schedule the appointment in your scheduling service.
- URL:
https://questions.morf.health/api/scheduleAppointment - Method: POST
- URL:
-
Morf webhook URL — Used to send the “Booking in progress” step event to Morf.
- URL:
https://api.morf.healthcare/webhooks/... - Method: POST
- URL:
