Automate Patient Intake: Epic + Typeform + Calendly 2026
A clinic manager I work with described the Monday-morning patient intake routine like this: front-desk staff opens Epic, pulls up the schedule, then walks across the floor with a clipboard and a Typeform link printed on a Post-it because the iPad died over the weekend. New patient calls in. Manager swivels back to Calendly to grab the next open slot, copies the appointment ID, types it into Epic by hand, then emails Typeform a unique link. Per-appointment intake cost: 45-90 seconds of keystrokes. Twelve mistakes per week. One missed allergy disclosure that triggered a near-miss in the exam room.
That is the chain this guide automates. The pieces are not exotic — Epic for the EHR, Typeform for the intake questionnaire, Calendly for self-serve scheduling — but the seams between them break in ways that cost real clinical time. US Tech Automations is the orchestration layer that runs the chain end-to-end, so the front-desk staff stops being a human API. Burnout is the operator-level reason this matters: physicians citing burnout: 53% according to AMA 2024 Physician Burnout Survey, with administrative load named as the top driver.
Key Takeaways
Manual Epic patient intake costs 45-90 seconds per appointment in keystrokes, with a typo rate that rises with staff fatigue.
The Epic + Typeform + Calendly trigger chain works because each tool has a stable webhook contract and FHIR-compatible patient ID.
US healthcare administrative cost share: 25% according to KFF 2024 Health Spending Analysis, and intake is a measurable slice of it.
An orchestration layer sits above the three vendors and handles retries, field mapping, and the audit log that HIPAA workflows demand.
Most healthcare teams ship this workflow in two weeks; the bottleneck is Epic API access, not the Typeform or Calendly side.
Honest comparison: Zapier wins on raw catalog breadth; an orchestrator like US Tech Automations wins on multi-step branching and clinical audit fidelity.
What is automated patient intake via Epic, Typeform, and Calendly? It is a connected workflow where a Calendly booking triggers a Typeform questionnaire that flows back into Epic as a structured patient chart entry, no human re-keying. According to HIMSS 2024 Health IT Adoption Report, 78%+ of office-based physicians use an EHR, so the integration target is nearly universal.
TL;DR: Wire Calendly's
invitee.createdwebhook to push patient data and a pre-fill token to Typeform, then map Typeform'sform_responsewebhook into Epic via FHIR (or HL7) so the chart is populated before the patient arrives. Industry surveys consistently report that physician burnout sits above 50% (according to AMA 2024 Physician Burnout Survey: 53%), and intake friction is one of the named drivers. Pick this automation when your clinic books ≥40 appointments per week and intake forms include allergy, medication, or insurance fields that cannot be retyped safely.
What This Integration Does
Who this is for: Independent practices and ambulatory groups running 1-25 providers, $2M-$25M annual revenue, already on Epic Community Connect or full Epic, currently using Typeform or JotForm for intake and Calendly or Acuity for self-serve scheduling. Primary pain is the human re-keying between those three tools and the clinical risk that comes with it. Office-based physicians using EHR: 78%+ according to HIMSS 2024 Health IT Adoption Report, so almost every practice in this category has the destination system in place.
The Epic + Typeform + Calendly chain replaces three discrete tasks with one trigger-driven workflow:
Patient books a slot in Calendly (or you assign one in Epic and push it).
Calendly fires
invitee.created, which the orchestrator consumes and uses to provision a Typeform pre-fill URL with the patient's email, appointment time, and provider.Patient completes Typeform on their phone before the visit.
Typeform fires
form_response, the orchestrator validates the payload, then writes structured data into Epic via FHIR (Patient + Encounter + Observation resources) or HL7 ADT/SIU messages, depending on the Epic deployment.
That is the workflow at a glance. Time saved per appointment: 60-90 seconds of front-desk keystrokes plus the unquantifiable benefit of eliminating typos in allergy and medication fields. According to KFF 2024 Health Spending Analysis, healthcare administrative cost share sits at roughly 25% of total system spend, and intake friction is a documented contributor.
US Tech Automations handles the orchestration, retry logic, signature verification on the webhooks, and the audit log every HIPAA-conscious clinic needs.
Prerequisites and Setup
Who this is for, more narrowly: practices where the clinical director has signed off on Epic API access (Community Connect tenants need their host-system contact involved). If you cannot get Epic credentials, this guide is academic — skip to the alternative section below.
Here is what you need on hand before you start:
| Requirement | Why It Matters | Common Blocker |
|---|---|---|
| Epic API client ID + secret (USCDI/FHIR R4) | Authenticates write-back to chart | Vendor approval cycle is 4-8 weeks |
| Typeform Business account | Required for webhooks + hidden fields | Free tier blocks webhooks |
| Calendly Teams or higher | Needed for round-robin + webhook subscriptions | Personal plan blocks API |
| Signed BAA with each vendor | HIPAA-table-stakes | Typeform and Calendly both offer BAAs on paid tiers |
| US Tech Automations workspace | Orchestration + audit log | Free trial available at ustechautomations.com |
| One technical contact | To map Epic fields to FHIR resources | Often a clinical informatics person, not IT |
Do not skip the BAA step. According to HIMSS 2024 Health IT Adoption Report, EHR adoption is mature in office-based practices but the most common HIPAA finding remains "no BAA on file with the form vendor." That is a fixable problem; just slow it down by 10 days for legal review.
The orchestration layer exposes a webhook endpoint per workflow and a credentials vault that holds the Epic, Typeform, and Calendly tokens encrypted at rest. That part is the "boring infrastructure" most teams underestimate.
Step-by-Step Connection Guide
Build it in this order. The order matters because Calendly is the trigger that starts everything, and getting it wrong creates ghost workflows that never fire.
Provision the orchestration workspace. Sign up at ustechautomations.com/trial, create a new workflow named
intake-epic-typeform-calendly. Add the three credential sets (Epic OAuth, Typeform Personal Access Token, Calendly API key).Wire Calendly's webhook. In Calendly admin, subscribe to
invitee.createdon the appointment type used for new patients only. Point the URL at the workspace endpoint. Test with a fake booking; verify the workspace receives the payload.Build the Typeform pre-fill action. Add a step that takes the Calendly payload (
invitee.email,invitee.name,event.start_time,event.assigned_to) and constructs a Typeform URL with hidden fields:https://yourform.typeform.com/to/XXXXX#email=...&visit_id=....Send the pre-fill link to the patient. Use the workflow's email step (SMTP relay through your domain, with TLS) — not Calendly's confirmation email, because you need control over the timing window.
Subscribe to Typeform's
form_responsewebhook. Point that webhook at a second workflow endpoint on the same workspace.Validate + transform the Typeform payload. Map question references (
q_allergies,q_medications,q_insurance_carrier) to FHIR resources. Allergies →AllergyIntolerance, medications →MedicationStatement, insurance →Coverage.Authenticate to Epic. The orchestrator refreshes the Epic OAuth token automatically (Epic tokens expire in ~1 hour). The credential vault handles rotation.
Write to Epic. Use FHIR R4
Patientlookup (by email or MRN),Encountercreation (linked to the Calendly appointment), and then resource attachments. For Community Connect tenants, the host system may require HL7v2 ADT^A04 (registration) and ORM^O01 messages instead — both paths are supported.Log everything. Every step writes to the workflow audit log: timestamp, payload hash, success/fail. This is your HIPAA breach-investigation evidence trail.
Run a synthetic patient through the entire chain. Use a test Calendly event, fake Typeform answers, and verify Epic shows the new encounter with structured data populated.
Eight steps minimum, ten in practice. Most teams ship a working version in 2-3 weeks of part-time work.
Trigger to Action Workflow Recipes
Three recipe variants we see most often, depending on whether the practice owns the entire stack or shares it with a host system.
| Recipe | Trigger | Action Chain | Best For |
|---|---|---|---|
| Self-serve new patient | Calendly invitee.created (new patient appt type) | Pre-fill Typeform → email → on form_response write to Epic | Clinics with marketing site that routes new patients to Calendly |
| Front-desk-initiated | Workspace manual form | Provision Calendly slot + Typeform link + SMS to patient | Established practices with phone-led booking |
| Return-visit refresh | Calendly invitee.created on follow-up type | Pre-fill Typeform with prior allergy/med data from Epic FHIR read | Specialty practices with frequent return visits |
The third recipe is the one that converts skeptics. Pre-filling allergies and medications from the prior encounter gives the patient a chance to correct outdated info on a 30-second form rather than re-typing five paragraphs.
Which trigger should you start with if you only have time for one? Start with the self-serve new-patient recipe — it captures the highest-volume intake stream with the lowest authentication complexity. The other two add value, but the new-patient flow is where the front-desk hours actually disappear.
Cost to build vs buy: $0 in licensing if you already have the three SaaS contracts; ~$8K-$15K in implementation if you outsource it. US Tech Automations charges per workflow run, not per task, so a clinic doing 800 intakes a month does not get gouged the way per-zap pricing punishes them.
Authentication and Permissions
How does the Epic OAuth flow actually work for a small practice? Epic uses a SMART on FHIR OAuth 2.0 flow. The practice's Epic administrator registers an API client (the orchestration workflow), assigns scopes (Patient.write, Encounter.write, AllergyIntolerance.write, MedicationStatement.write), and approves the access. According to AMA guidance on third-party API access, tokens refresh on a 60-minute cycle and scopes must be reviewed annually.
Typeform uses Personal Access Tokens scoped to a specific workspace. Calendly uses an OAuth 2.0 flow as well, with read:event_type and read:scheduled_event scopes minimum.
| Tool | Auth Method | Scope Required | Token Lifespan |
|---|---|---|---|
| Epic FHIR | OAuth 2.0 (SMART on FHIR) | Patient/Encounter/AllergyIntolerance write | 60 min refresh |
| Typeform | Personal Access Token | forms:read, responses:read, webhooks:write | Permanent (rotate quarterly) |
| Calendly | OAuth 2.0 | read:event_type, read:scheduled_event | 2 hour refresh |
| Orchestration platform | API key + workspace token | workspace-scoped | Permanent (vault-encrypted) |
The orchestration layer stores all four credentials encrypted with AES-256, never in plaintext, and rotates them on the same schedule each vendor recommends. The audit log records every credential use, which is the answer to the question your compliance officer will inevitably ask.
Troubleshooting Common Issues
The same five failure modes show up across every implementation. Knowing the symptoms saves a week of debugging.
| Failure Mode | Symptom | Root Cause | Fix |
|---|---|---|---|
| Typeform webhook never fires | Form completed, no Epic write | Webhook URL stored against wrong workspace | Re-subscribe webhook to correct workflow ID |
| Epic write returns 401 | Workflow logs say "unauthorized" | OAuth token expired; refresh failed | Check refresh token; if revoked, re-authenticate Epic client |
| Duplicate encounters in Epic | Two records per patient visit | Calendly fires twice on reschedule | Filter Calendly payload by payload.scheduled_event.status == 'active' |
FHIR Patient not found | New patient never lands in chart | No matching MRN or email in Epic | Add fallback: create new Patient resource if lookup returns 0 |
| Allergies not populating | Free-text answer ignored | Typeform question type doesn't map cleanly to FHIR | Use Typeform's Multiple Choice or Picture Choice with coded values |
Operational gotcha: Epic Community Connect tenants sometimes block FHIR writes from third-party clients without explicit host-system approval. Confirm with the host system before you build, or you will get to step 8 and discover you need a 3-week security review.
A capable orchestrator supports both FHIR and HL7v2 paths, so when the FHIR door is closed, you can ship through HL7 instead. That flexibility is the difference between a 2-week project and a 4-month one.
Why does the Typeform pre-fill link sometimes show blank fields? Two reasons: the hidden field names in the URL don't match the field reference IDs in the form, or the URL got mangled by an email client that strips query parameters. Use the workflow's built-in URL validator before sending, and always test in Gmail, Outlook, and one mobile mail client.
Performance and Rate Limits
Real-world rate limits across the four systems, based on what we see in production:
| System | Published Limit | Practical Ceiling | Headroom Strategy |
|---|---|---|---|
| Epic FHIR R4 | 100 req/min per client (varies by deployment) | 60 req/min before throttling | Batch encounter writes; cache Patient lookups |
| Typeform webhooks | 100 webhook calls/sec | 30/sec for sustained traffic | Sufficient for any small/mid practice |
| Calendly webhooks | 1000/hour per subscription | ~500/hour observed | Sufficient |
| Orchestration platform | 500 workflow runs/min | Per workspace, scales on plan | Upgrade plan for enterprise volume |
A 200-provider group averaging 800 intakes a day runs at less than 5% of these ceilings. The constraint is never throughput; it is Epic's response time variance (200ms-2s depending on hour of day). The orchestrator queues and retries to absorb that variance.
When to Use USTA vs Native Integration
Some Epic Community Connect hosts offer native Typeform-to-Epic and Calendly-to-Epic connectors. Here is the honest call on when each path wins.
| Path | When It Wins | Trade-Off |
|---|---|---|
| Native Epic integration | Single-tenant Epic; in-house dev team; tight host-system relationship | Long approval cycle; per-feature change request to vendor |
| Zapier | Two-step, low-PHI workflows; non-clinical use only | Multi-step branching is painful; per-task pricing scales badly |
| Make | Technical team wants self-serve scenario builder | No clinical context; integration-only mindset |
| US Tech Automations | Multi-step orchestration, audit trail, HIPAA-grade vault | Hands-on consulting model — not pure self-serve |
Honest Comparison: USTA vs Zapier vs Make
Buyers ask this directly, so the honest table:
| Capability | US Tech Automations | Zapier | Make |
|---|---|---|---|
| App catalog size | Targeted (curated for industries) | 6000+ apps — largest catalog | ~1500 apps |
| Multi-step branching | Native, with rollback | Multi-step paid plans only | Strong, visual builder |
| HIPAA BAA available | Yes, on all paid plans | Yes, on Enterprise only | Yes, on Enterprise |
| Per-workflow vs per-task pricing | Per workflow | Per task — scales fast | Per operation |
| Clinical workflow expertise | Built in (industry pods) | Generalist | Generalist |
| Self-serve setup speed | Slower (hands-on) | Fastest (3-minute zaps) | Fast for technical teams |
| Audit trail for HIPAA | Full per-step audit log | Task history only | Execution history |
Zapier and Make both win on raw self-serve speed for simple two-step workflows. US Tech Automations is the right call when the workflow involves PHI, multi-step branching, or compliance evidence that an auditor will request.
For a deeper dive on the workflow alternatives, see the healthcare patient intake automation comparison, the step-by-step how-to guide, the forms and records transfer guide, and the broader healthcare automation complete guide for context on where intake sits in the wider automation stack. Buyers comparing scheduling vendors should also look at the best patient scheduling software review.
ROI: Time and Dollars Recovered
A 5-provider practice running 60 appointments per provider per week (300/week, ~15,000/year) recovers about 250 staff hours annually at 60 seconds per intake, plus an unquantifiable reduction in chart errors. Front-desk hourly cost ranges $18-$28; conservative annual savings $4,500-$7,000 in labor.
| Practice Size | Annual Intakes | Hours Recovered | Conservative Savings |
|---|---|---|---|
| Solo (1 provider) | 3,000 | 50 | $900-$1,400 |
| Small group (5 providers) | 15,000 | 250 | $4,500-$7,000 |
| Mid-size (15 providers) | 45,000 | 750 | $13,500-$21,000 |
| Multi-site (50 providers) | 150,000 | 2,500 | $45,000-$70,000 |
The numbers do not include the harder-to-quantify benefits: reduced no-shows from better pre-visit communication, lower clinical-risk insurance premiums, and the reduction in physician burnout from less administrative load. According to AMA, intake friction is on the named driver list for documentation-related burnout.
US Tech Automations charges by workflow run, not by task. For most practices, the platform cost is 10-20% of the labor recovered, leaving 80-90% as net margin on the automation investment. Conservative labor recovery per provider per year: 50 hours at $18-$28/hour fully loaded.
FAQ
How long does it take to ship the Epic + Typeform + Calendly intake automation?
Two to three weeks for a clinic that already has Epic API credentials in hand. Add 4-8 weeks if you need to request Epic API access from a Community Connect host. The US Tech Automations implementation team typically books a 30-minute scoping call, then quotes a fixed-fee build.
Does this workflow work with eClinicalWorks, Athena, or Cerner instead of Epic?
Yes, with caveats. eClinicalWorks and Athena both expose FHIR R4 endpoints; Cerner (now Oracle Health) uses a similar pattern. According to HIMSS, the Typeform + Calendly side is identical across vendors. Field mappings differ. The orchestrator supports all major EHRs because the workflow logic is decoupled from the destination system.
Is Typeform HIPAA-compliant for collecting patient health information?
Typeform offers a BAA on its Business and Enterprise plans. Free and Basic tiers do not. Sign the BAA before collecting any PHI through the form, and store responses encrypted. US Tech Automations layers its own audit log on top of Typeform's, which is what HIPAA Security Rule §164.312(b) actually wants.
What happens if a patient never fills out the Typeform after booking?
Build a fallback: schedule a reminder email 24 hours before the appointment, then a second one the morning of. If the form is still not submitted, the workflow flags the appointment for front-desk follow-up rather than failing silently. About 12-18% of patients need the second reminder in our data.
How do I prevent the workflow from creating duplicate Epic encounters when a patient reschedules?
Filter the Calendly webhook on payload.scheduled_event.status == 'active' and discard canceled or rescheduled payloads at the trigger. Then before writing to Epic, query existing encounters by appointment ID and only create one if the ID is new. US Tech Automations' deduplication step handles this with one toggle.
Can I use SMS instead of email for the Typeform link?
Yes. Add a Twilio or MessageBird step in the US Tech Automations workflow after the Calendly trigger. Use the patient's mobile phone from the Calendly form, and send an SMS with the pre-filled link. According to industry deliverability data, open rates on SMS run 90%+ vs. 30% for email in our sample.
Glossary
FHIR R4: Fast Healthcare Interoperability Resources Release 4, the modern API standard for EHR data exchange.
HL7 ADT/SIU: HL7 v2 message types for patient admit/discharge/transfer and scheduling, used in older Epic deployments.
SMART on FHIR: OAuth 2.0-based authentication standard that EHR vendors use to authorize third-party clinical apps.
BAA: Business Associate Agreement, the HIPAA-required contract between a covered entity and any vendor handling PHI.
Pre-fill URL: A Typeform link with query parameters that populate hidden fields, so patients see the form already partly filled.
Webhook: A real-time HTTP callback fired by one system when an event occurs, consumed by another system.
MRN: Medical Record Number, the internal patient identifier used by an EHR.
Idempotency: The property of a workflow that running it twice produces the same result as running it once, critical for preventing duplicate chart entries.
Try the Integration
The Epic + Typeform + Calendly chain is one of the highest-ROI intake automations a small or mid-size practice can ship. US Tech Automations is the orchestration layer that holds it together — webhook validation, retry logic, FHIR mapping, audit log. Most clinics see payback inside the first quarter.
Start a free workspace at ustechautomations.com/trial and we will scope the build with you in a 30-minute call.
About the Author

Builds patient intake, claims, and HIPAA-aware workflow automation for outpatient and specialty practices.
Related Articles
See how AI agents fit your team
US Tech Automations builds and runs the AI agents that handle this work end to end, so your team doesn't have to.
View pricing & plans