- Overview
- UiPath GenAI Activities
- Release notes
- About the UiPath GenAI Activities package
- Project compatibility
- Content Generation
- Update Context Grounding Index
- Context Grounding Search
- Get DeepRAG Analysis by ID
- Summarize Text
- PII Filtering
- Translate
- Detect Language
- Rewrite
- Generate Email
- Categorize
- Named Entity Recognition
- Image Analysis
- Detect Object
- Signature Similarity
- Sentiment Analysis
- Reformat
- Semantic Similarity
- Image Comparison
- Image Classification
- Web Search
- Web Summary
- Web Reader
- Working with UiPath GenAI activities
- Data residency
- GenAI Activities feature availability
- Frequently asked questions
- Act! 365
- ActiveCampaign
- Adobe Acrobat Sign
- Adobe PDF Services
- Amazon Bedrock
- Amazon Connect
- Amazon Polly
- Amazon SES
- Amazon Transcribe
- Anthropic Claude
- Asana
- AWeber
- Azure AI Document Intelligence
- Azure Defender for Cloud
- Azure Maps
- BambooHR
- Box
- Release notes
- About the Box activities
- Project compatibility
- Add Shared Link to File
- Add Shared Link to Folder
- Search for Content
- Cancel Sign Request
- List Sign Requests
- Create Sign Request
- Resend Sign Request
- Create Collaboration
- Upload File Version
- Copy File
- Delete File
- Download File
- Get File Info
- Get Folder Items
- Upload File
- Copy Folder
- Create Folder
- Delete Folder
- Delete Record
- Get Record
- Insert Record
- Replace Record
- List All Records
- Brevo
- Calendly
- Campaign Monitor
- Cisco Webex Teams
- Citrix ShareFile
- Clearbit
- Confluence Cloud
- Constant Contact
- Coupa
- CrewAI – Preview
- Customer.io
- Database Hub
- Databricks Agent
- Datadog
- DeepSeek
- Deputy
- Discord - Preview
- DocuSign
- Drip
- Dropbox
- Dropbox Business
- Egnyte
- Epic FHIR - Preview
- Eventbrite
- Exchangerates
- Expensify
- Facebook
- Freshbooks
- Freshdesk
- Freshsales
- Freshservice
- GetResponse
- GitHub
- Google Maps
- Google Speech-to-Text
- Google Text-to-Speech
- Google Vertex
- Google Vision
- GoToWebinar
- Release Notes
- About the GoToWebinar activities
- Project compatibility
- Delete Webinar
- Get Webinar
- Get Webinar Meeting Times
- Get Webinar Registrant
- Get Webinar Start URL
- List Account Webinars
- List All In Session Webinars
- List All Webinar Attendees
- List All Webinar Registrants
- List All Webinars
- Quick Create Webinar
- Quick Update Webinar
- Search Recording Assets
- Delete Record
- Get Record
- Insert Record
- List All Records
- List Records
- API References
- Greenhouse
- Hootsuite
- HTTP Webhook
- Hubspot CRM
- HubSpot Marketing
- Icertis
- iContact
- Insightly CRM
- Intercom
- Jina.ai
- Jira
- Release notes
- About the Jira activities
- Project compatibility
- Create Issue
- Add Issue Attachment
- Download Issue Attachment
- Get Instance Details
- Add Comment
- Update Comment
- Get Comments
- Get Issue
- Search Issues by JQL
- Search Issues
- Update Issue
- Update Issue Assignee
- Find User by Email Address or Display Name
- Update Issue Status
- Delete Record
- Get Record
- Insert Record
- List Records
- Replace Record
- Upsert Record
- Invoke Operation
- Delete Issue
- Event Trigger
- Keap
- Klaviyo
- LinkedIn
- Mailchimp
- Mailjet
- MailerLite
- Mailgun
- Marketo
- About the Marketo activities
- Project compatibility
- Create Lead
- Get All Leads
- Get Lead Changes
- Update Lead
- Add Leads To A List
- Remove Leads From A List
- Delete Record
- Get Record
- Insert Record
- List Records
- Update Record
- Bulk Import Leads
- Bulk Import Program Members
- Push Leads to Trigger Campaign
- Get Bulk Export Status
- Create Program
- Bulk Export Program Members
- Get Bulk Import Status
- Clone Program
- Download Program Members Bulk Export
- Change Program Members Status
- Create or Update Tokens
- Technical References
- MCP
- Microsoft Azure OpenAI
- Microsoft Azure AI Foundry
- Microsoft Azure Sentinel
- Microsoft Dynamics CRM
- Release Notes
- About the Microsoft Dynamics CRM activities
- Project compatibility
- Technical References
- Upload Note Attachment
- Download Note Attachment
- Upload Activity Attachment
- Download Activity Attachment
- Create Account
- Update Account
- Create Contact
- Update Contact
- Create Lead
- Update Lead
- Close Lost Opportunity
- Close Won Opportunity
- Create Opportunity
- Delete Record
- Get Record
- Insert Record
- List All Records
- Update Record
- Microsoft Power Automate
- Microsoft Sentiment
- Microsoft Sentinel Threat Intelligence
- Microsoft Teams
- Release Notes
- About the Microsoft Teams activities
- Project compatibility
- Create Channel
- Invite Member to Channel
- List All Channels
- Send Individual Chat Message
- Reply to Channel Message
- Create Online Teams Meeting
- Send Bot Channel Message
- Send Bot Direct Message
- Send Channel Message
- Send Group Chat Message
- Get Channel by Name
- Get Individual Chat
- Get Team by Name
- Invite User to Team
- List All Channel Messages
- List All Chat Messages
- List All Team Members
- Get Online Teams Meeting
- List All Recordings
- List All Transcripts
- Download Meeting Transcript/Recording
- Get User by Email
- List Records
- Insert Record
- Update Record
- Get Record
- Delete Record
- Technical references
- Microsoft Translator
- Microsoft Vision
- Miro
- Nvidia NIM
- Okta
- OpenAI
- OpenAI V1 Compliant LLM
- Oracle Eloqua
- Oracle NetSuite
- PagerDuty
- Paypal
- PDFMonkey
- Perplexity
- Pinecone
- Pipedrive
- QuickBooks Online
- Quip
- Salesforce
- Release Notes
- About the Salesforce activities
- Project compatibility
- Create Account
- Update Account
- Create Contact
- Update Contact
- Create Lead
- Update Lead
- Create Opportunity
- Upload File
- Download File
- Download Attachment
- Search Records
- Search Using SOQL
- Approve record in Approval process
- Submit a record for Approval Process
- Reject record in Approval process
- Get Opportunity
- Get Lead
- Get Contact
- Get Account
- Get Report Metadata
- Add File to Record
- Create Bulk Upload Job
- Get Bulk Job Info
- Starts or Aborts Bulk Job
- Download SOQL Bulk Job Results
- Download Unprocessed Records of Bulk Upload
- Create Bulk Download Job Using SOQL
- Search Using String
- Get Object Fields
- Insert Record
- Get Record
- Delete Record
- Update Record
- List Records
- Salesforce Agentforce & Flows
- Salesforce Marketing Cloud
- SAP BAPI
- SAP Cloud for Customer
- SAP Concur
- SAP OData
- SendGrid
- ServiceNow
- Release Notes
- About the ServiceNow activity package
- Project compatibility
- Create New Incident
- Create Incident Task
- List All Incidents
- Update Incident
- Add Attachment
- Download Attachment
- Get Incident Task
- Get Attachment
- List All Attachments
- List All Incident Tasks
- Update Incident Task
- Delete Attachment
- Search Users by Email or Name
- Search Incidents by Incident Number
- Delete Record
- Get Record
- Insert Record
- List All Records
- Update Record
- Technical references
- Troubleshooting
- Shopify
- Slack
- Release Notes
- About the Slack activities
- Project compatibility
- Archive Channel
- Create Channel
- Invite Users to Channel
- Remove User from Channel
- Send File to Channel
- Send Message to Channel
- Unarchive Channel
- Send Reply
- Get Channel Info
- Join Channel
- Set Channel Topic
- Set Channel Description
- Send Button Response
- Download File By File ID
- List All User Groups
- List All Users
- Add Users to User Group
- Create Group Direct Message
- Create User Group
- Get User by Email or User Id
- Send Message to User
- Troubleshooting
- SmartRecruiters
- Smartsheet
- Release notes
- About the Smartsheet activities
- Project compatibility
- Attach URL to Sheet
- Add Column
- Update Column
- Add Row
- Update Row
- Get Sheet
- List All Sheets
- Attach File to Comment
- Search Everything
- Update Sheet
- Create Sheet from Template
- Send Sheet Via Email
- List All Folders
- Download Attachment
- Attach File to Row
- Attach URL to Row
- Attach File to Sheet
- List All Workspaces
- List All Attachments
- Delete Row
- Download Sheet
- Search Sheets
- Insert Record
- Get Record
- List All Records
- Delete Record
- Snowflake
- Snowflake Cortex
- Stripe
- Sugar Enterprise
- Sugar Professional
- Sugar Sell
- Sugar Serve
- TangoCard
- Todoist
- Trello
- Twilio
- UiPath Apps - Preview
- UiPath Orchestrator
- UiPath Test Manager
- About the UiPath Test Manager activities
- Project Compatibility
- Assign Test Cases To Requirement
- Assign Test Cases To Test Set
- Create Requirement
- Create Test Case
- Create Test Set
- Create Test Step
- Delete Attachment
- Delete Requirement
- Delete Test Case
- Delete Test Execution
- Delete Test Set
- Download Assertion
- Download Attachment
- Execute Test Cases
- Execute Test Set
- Get Assertions
- Get Assigned Test Cases For Requirement
- Get Assigned Test Cases For Test Set
- Get Attachments
- Get Requirement
- Get Requirements
- Get Robot Logs
- Get Test Case
- Get Test Case Log
- Get Test Cases
- Get Test Execution
- Get Test Executions
- Get Test Set
- Get Test Sets
- Get Test Step
- Get Test Step Logs
- Get Test Steps
- Test Manager HTTP Request
- Update Requirement
- Update Test Case
- Update Test Set
- Update Test Step
- Upload Attachment
- IBM WatsonX
- WhatsApp Business
- WooCommerce
- Workable
- Workday
- Workday REST
- X (formerly Twitter)
- Xero
- Release notes
- About the Xero activity package
- Project compatibility
- Create Contact
- List All Contacts
- Add Attachment to Contact
- Get Balance Sheet Report
- Get BAS Report
- Get GST Report
- Get Bank Summary Report
- Get Aged Receivables by Contact Report
- Get Attachments of a Contact
- Get Budget Summary Report
- Get Profit and Loss Report
- Get Trial Balance Report
- Get Executive Summary Report
- Get Aged Payables by Contact Report
- List Reports
- Delete Record
- List All Records
- Get Record
- Insert Record
- Replace Record
- Youtube
- Zendesk
- Zoho Campaigns
- Zoho Desk
- Zoho Mail
- Zoom
- ZoomInfo
Patient.$match
Patient.$match activity for Epic FHIR, finding the one patient that matches the supplied demographics, and the outcome codes Epic returns.
Project compatibility
Windows | Cross-platform
Overview
| Description | API Method | API Path |
|---|---|---|
| Find the one patient matching the supplied demographics. Returns a single patient, or an empty record when none matched with certainty. | GET | /PatientMatch |
Input
Epic requires a minimum data set before it returns a patient, and each Epic organization configures its own. By default, one of the following is enough: an identifier on its own, Given Name with Family Name and Date of Birth, or Given Name with Family Name, Legal Sex and either Phone or Email. See The minimum data set and confirm what your organization accepts.
No single field is required, and Epic decides whether the combination you supply is sufficient. A request carrying no values at all is refused, because Epic answers an empty match with a no-results response that cannot be told apart from a genuine no-match.
| Parameter | Description | Data Type |
|---|---|---|
| Given Name | The patient first (given) name. | string |
| Family Name | The patient last (family) name. | string |
| Date of Birth | The patient date of birth as YYYY-MM-DD. | string |
| Legal Sex | The patient legal sex: male, female, other or unknown. | string |
| Identifier System | The identifier system that Identifier Value belongs to, such as the object identifier (OID) of your organization MRN. This value differs at every Epic organization, so confirm it with your Epic contact rather than copying one from Epic documentation or a sandbox. Epic ignores an identifier whose system it does not match on. | string |
| Identifier Value | An identifier for the patient, such as an MRN or national ID. On its own this satisfies one of Epic default minimum data sets, and it is the strongest single discriminator available. Supply Identifier System with it where you know it. | string |
| Phone | A phone number on the patient record. With Given Name, Family Name and Legal Sex this satisfies one of Epic default minimum data sets. | string |
| An email address on the patient record. With Given Name, Family Name and Legal Sex this satisfies one of Epic default minimum data sets. | string | |
| Address Line | The patient street address. Narrows a match that is otherwise uncertain. | string |
| City | The patient city. Narrows a match that is otherwise uncertain. | string |
| State | The patient state. Narrows a match that is otherwise uncertain. | string |
| Postal Code | The patient postal code. Narrows a match that is otherwise uncertain. | string |
| Country | The patient country. Narrows a match that is otherwise uncertain. | string |
Output
content carries the matched patient record, and pagination reports whether anything matched.
Patient record
| Parameter | Description | Data Type |
|---|---|---|
| Active | Whether the patient record is active. | boolean |
| Address | The patient's current address, as well as any previous or temporary addresses, if applicable. The patient's current address has a use code of " home ". If the patient also has one or more previous addresses, each previous address has a use code of " old ". The patient's temporary address has a use code of " temp ". | Object |
| Address > City | The city that the patient lives in. | string |
| Address > Country | The country that the patient lives in. | string |
| Address > District | The county that the patient lives in. | string |
| Address > Line | The patient’s street address. | string |
| Address > Period | The start date – and optionally, end date – for when the address is valid. Returned for the current address if the information is available. Starting in the May 2025 version of Epic, also returned for previous and temporary addresses if the information is available. | Object |
| Address > Postal Code | The patient’s postal code. | string |
| Address > State | The state where the patient lives. | string |
| Address > Text | The patient’s full address as a string. This is formatted based on the country the address is in. For U.S. addresses, to meet the standards laid out in the Project US@ Technical Specifications , patient addresses format automatically for patient matching purposes. | string |
| Address > Use | Specifies the type of address: home for a permanent address, old for a previous permanent address, or temp for a temporary address. Temporary addresses are returned according to the Epic organization's version and configuration. | string |
| Birth Date | The patient's date of birth in the format YYYY-MM-DD | string |
| Communication | Languages used to communicate with the patient, along with an indicator of which is preferred. | Object |
| Communication > Language | The patient's general language, onsite care language, and spoken language. | Object |
| Communication > Preferred | Whether the language is the patient's preferred language. | boolean |
| Contact | Details for the patient's contacts. Patient contacts include any documented family members, emergency contacts, care givers, acquaintances, and employers. | Object |
| Contact > Address | The contact address. For responses to a patient-facing application, this element is not returned for contacts linked to a patient record. For organizations in the Netherlands, this element represents an nl-core-address value. | Object |
| Contact > Name | The contact's preferred name. The system determines this from the contact's linked patient record if available. For contacts linked to a patient record, only the patient's official first name is returned in patient context. For organizations in the Netherlands, this element represents an nl-core-humanname value. | Object |
| Contact > Organization | An Organization reference that represents the patient's employer. Returned when contact.relationship.code is E. | Object |
| Contact > Period | The start and end dates for the patient contact. | Object |
| Contact > Relationship | The contact's relationship to the patient. This element can contain multiple Epic category values and, for organizations in the Netherlands, relationship or role code-system values. | Object |
| Contact > Telecom | Telephone numbers and email address for the contact. For responses to a patient-facing application, this element is not returned for contacts linked to a patient record. For organizations in the Netherlands, this element represents an nl-core-contactpoint value. | Object |
| Contact > Telecom > Rank | The priority for permanent phone numbers or emails. 1 indicates the highest priority phone number, 2 indicates the second priority, and so on. Starting in the May 2025 version of Epic, rank is returned for the phone numbers of patient contacts. | string |
| Contact > Telecom > System | The type of telecom. Potential values are: email phone | string |
| Contact > Telecom > Use | If the telecom entry is a phone number, possible values are: home mobile work | string |
| Contact > Telecom > Value | Value of the telecom method. Can be an email address or phone number. | string |
| Deceased Boolean | Whether the patient is deceased. | boolean |
| Deceased Date Time | The date and time of death. | string |
| Extension | A reference to a newborn’s birth facility. URL: http://open.epic.com/FHIR/StructureDefinition/extension/birth-location | Object |
| Gender | The patient's legal sex. | string |
| General Practitioner | The patient's Primary Care Provider (PCP). Reference to a Practitioner resource. For organizations in UK with EPS enabled at the system level, also contains an identifier-based reference to the patient's care organization. | Object |
| Id | The Patient FHIR ID. | string |
| Identifier | The patient's identifiers. Includes the following: MPI IDs (such as MRNs) Epic MyChart login IDs Epic database IDs Payer Member IDs National IDs FHIR ID Care Everywhere ID For organizations in Singapore, the patient’s document ID, type, and expiry date. | Object |
| Identifier > Period | The expiration date of the patient's identification document in Singapore. [R4 only] | Object |
| Identifier > System | The namespace for the identifier, such as an Epic identity ID, MyChart ID, Care Everywhere ID, internal or external Epic ID, payer member ID, or national identifier. | string |
| Identifier > Type | The patient's identifier type. In Singapore, this is the patient's identification document type. | Object |
| Identifier > Type > Coding | The type coding. [R4 only] | Object |
| Identifier > Type > Coding > Code | The type code. Epic external ID "um" Payer Member ID "MB" Australian Medicare Number "MC" [R4 only] | string |
| Identifier > Type > Coding > System | The code system. Epic external ID http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBIdentifierType Payer Member ID http://terminology.hl7.org/CodeSystem/v2-0203 Australian Medicare Number http://terminology.hl7.org/CodeSystem/v2-0203 [R4 only] | string |
| Identifier > Value | The patient's ID. For organizations in Singapore, this can also be the patient's identification document ID. | string |
| Link | Contains links to other patient records if the patient record was involved in a merge. Each link element represents a single merge event. If the patient was involved in multiple merges, multiple Link elements are returned. Starting in the February 2024 version of Epic, the 30 most recent merge events are returned instead of all merge events. | Object |
| Link > Other | A Patient reference to the source patient. In a merge, the source patient is the patient that goes away. | Object |
| Link > Other > Reference | A reference to the Patient resource that this Patient replaces. [STU3 only] | string |
| Link > Type | The type of link between Patient resources. This is always set to " replaces ". The Patient FHIR ID in the link.extension (patient-merge-target-reference) element replaces the Patient FHIR ID referenced in the link.other element. | string |
| Managing Organization | The patient’s primary service area. Reference to an Organization resource. | Object |
| Marital Status | The patient's marital status. | Object |
| Meta | Metadata about the resource. | Object |
| Meta > Profile | Only returned for organizations in the Netherlands. This element shows that this API conforms to the profile connected to the following canonical url: http://fhir.nl/fhir/StructureDefinition/nl-core-patient [STU3 only] | string |
| Meta > Security | The patient's unverified status. For unverified patients, this element indicates that the record may need reconciliation and includes the PATRPT (Patient Reported) value; it is not returned for verified patients. | Object |
| Multiple Birth Integer | The patient's birth order. | int32 |
| Name | The patient's name. | Object |
| Name > Family | The patient's family (last) name. Can contain a data-absent-reason extension with a value of " unknown " if the patient has an alias that cannot be returned as discrete elements or if the patient's preferred name replaces their full name. | string |
| Name > Given | The patient's given name. Can include first and middle names. | string |
| Name > Prefix | The patient's name prefix. | string |
| Name > Suffix | The patient's name suffix. Acquired as a title due to academic, legal, employment or nobility status, etc. | string |
| Name > Text | The patient's full name as a string. | string |
| Name > Use | The purpose of the name. Can be "official", "usual", or "old". | string |
| Resource Type | The FHIR resource type (always "Patient" for this activity). | string |
| Telecom | Telephone numbers and email addresses for the patient, along with their use (home or work for example) and their preferred rank (which to contact first, second, third, etc). | Object |
| Telecom > Rank | The priority for permanent phone numbers or emails. 1 indicates the highest priority phone number, 2 indicates the second priority, etc . The preferred has a rank of 1. Additional emails have a null rank. | string |
| Telecom > System | The type of telecom. Potential values are: email phone fax url pager sms other | string |
| Telecom > Use | If the telecom entry is a phone number, possible values are: home mobile work temp old Use is not returned for emails. | string |
| Telecom > Value | Value of the telecom method. Can be an email address or phone number. | string |
Pagination
| Parameter | Description | Data Type |
|---|---|---|
| Has More Pages | Always false. Patient Match resolves to at most one patient, so there is never a further page. | boolean |
| Next Page Session Id | Always empty. Patient Match resolves to at most one patient, so there is no continuation token. | string |
| Returned Count | 1 when a patient matched, 0 when none did. Epic returns a patient only when it is certain, so this is never more than 1. | int32 |
- In API workflows, a single response object is returned as the output. Any required fields can be extracted directly from this object.
- In RPA workflows, some output parameters may differ, but the necessary values can still be retrieved from the response object even if they are not explicitly exposed.
How the match works
The activity wraps Epic's Patient.$match (R4) operation. Epic's implementation requires onlyCertainMatches = true, which the connector always sets. Epic returns a patient only when it is confident the demographics identify exactly one person, so the activity returns at most one record and is not a way to retrieve more than one patient.
For the choice between this activity and a patient search, see Finding a patient.
Epic reports the confidence of the match through an outcome code:
| Outcome | Epic code | Meaning |
|---|---|---|
| One patient returned | None | The match succeeded. |
| Multiple high-confidence matches | 59011 | The request needs a discriminator, and Identifier Value is the strongest. Falling back to a search and taking the first result is unsafe. |
| Only low-confidence matches | 59013 | A discriminator is missing or incorrect. The response is not a match, and this is the outcome callers hit most often. |
| No matches | 4101 | A valid answer rather than an error. The activity returns an empty record, so an empty Id means no patient matched. |
Two behaviors the connector handles for you
- Phone numbers require a use value. Epic rejects a phone number submitted without a use value of home, work or mobile. It discards the number and then reports that it could not reach certainty, having removed the detail that would have provided it. The connector always supplies a use value. Testing showed the specific value has no effect on the result, which is why Phone is a single field rather than a number and a separate classification.
- Rejected values produce a clear error. Epic reports any value it cannot use as code
59109and then completes the match without it, which quietly weakens your request. The connector fails the activity when a value was rejected and no patient matched, and it includes Epic's own diagnostics where they are available. A rejected value is not reported as a missing patient.
Related resources
- Finding a patient — choosing between Patient.$match and a patient search, and the minimum data set Epic requires.
- Patient.$summary — retrieving a matched patient's clinical summary from the FHIR ID this activity returns.
- Epic FHIR authentication — setting up the connection this activity uses.