# Medplum Integrations

Medplum's integrations are the most commonly used features of the platform, and the tools can be used to build effective robust integrations. Medplum supports three types of integrations:

- **First party** integrations with common medical systems
- **Common medical integrations** like FHIR, HL7 V2, SMART-on-FHIR and SFTP
- **Custom built** integrations using the SDK and Bot templates

## First Party Integrations

Medplum supports the following first party integrations.

| Name | Type | Description | Documentation |
| --- | --- | --- | --- |
| **Authentication and Identity** |
| [Okta](https://www.okta.com/) | Authentication | Enable Okta SSO for Providers | [Okta setup](/content/docs/auth/domain-level-identity-providers#okta-setup/index.html) |
| [Auth0](https://auth0.com/) | Authentication | Enable Auth0 SSO for Providers and Patients | [Auth0 account Setup](/content/docs/user-management/external-ids#invite-user/index.html) |
| [Google Authentication](https://safety.google/authentication/) | Authentication | Enable Google SSO for Providers and Patients | [Google Auth Setup](/content/docs/auth/google-auth/index.html) |
| [Entra SSO](https://learn.microsoft.com/en-us/entra/identity-platform) (fka Azure SSO) | Authentication | Enable Microsoft Entra SSO for Providers and Patients | [Entra Auth Setup](/content/docs/auth/external-identity-providers/index.html) |
| [reCAPTCHA](https://www.google.com/recaptcha/about/) | Security | Enable reCAPTCHA on patient registration | [Set up reCAPTCHA](/content/docs/user-management/custom-emails#setup-recaptcha/index.html) |
| **Clinical Systems (EHR, HIE, Labs)** |
| [Epic Systems](https://www.epic.com/) | EHR | Read/Write via FHIR API | [Epic JWT authentication](https://github.com/medplum/medplum/tree/main/examples/medplum-demo-bots/src/epic) |
| [Health Gorilla Patient 360](https://www.healthgorilla.com/) | HIE | Integrated records and ADT data | [Health Gorilla Integration](/content/docs/integration/health-gorilla/index.html) |
| [Zus Health](https://zushealth.com/) | HIE | Integrated HIE, analytics and longitudinal care | [Medplum integration](https://docs.zushealth.com/docs/medplum) |
| [Health Gorilla Lab Network](https://www.healthgorilla.com/) | Diagnostics | Lab orders and results | [Health Gorilla Integration](/content/docs/integration/health-gorilla/index.html) |
| [Labcorp](https://www.labcorp.com/) | Diagnostics | Lab orders and results | [Bot and setup](/content/docs/integration/health-gorilla/index.html) |
| [Quest](https://www.questdiagnostics.com/) | Diagnostics | Lab orders and results | [Bot and setup](https://github.com/medplum/medplum/tree/main/examples/medplum-health-gorilla-demo) |
| **Communications** |
| [eFax](https://www.efax.com/) | Communications | Send and receive faxes via FHIR Communication resources | [eFax Integration](/content/docs/integration/efax/index.html) |
| [Twilio SMS](https://www.twilio.com/) | Communications | Send and receive SMS messages via FHIR Communication resources | [Twilio SMS Integration](/content/docs/integration/twilio-sms/index.html) |
| **Billing** |
| [Candid Health](https://www.joincandidhealth.com/) | Billing | Revenue cycle and insurance eligibility check | [Candid bot](https://github.com/medplum/medplum/tree/main/examples/medplum-demo-bots/src/candid-health) |
| **Data and Observability** |
| [Datadog](https://www.datadoghq.com/) | Observability | Application monitoring | [Datadog sidecar setup](/content/docs/self-hosting/datadog/index.html) |
| [Sumo Logic](https://www.sumologic.com/) | Observability | Application monitoring | Coming soon |
| [Snowflake](https://www.snowflake.com/) | Data warehouse | Synchronize data to datawarehouse | Documentation coming soon |
| **Artificial Intelligence** |
| [OpenAI](https://www.openai.com/) | AI | Large language models | [Medplum AI](/content/docs/ai/index.html) |
| **Devices and Remote Monitoring** |
| [AnyBio](https://www.anybiosignal.com/) | Remote Monitoring | Cardiac and biosignal monitoring data as FHIR Observations | Documentation coming soon |

## Common Medical Integrations

Medplum provides templates and playbooks for common medical integrations.

| Name | Type | Description | Documentation |
| --- | --- | --- | --- |
| **Clinical and EHR Data** |
| HL7 V2 | EHR | Connect to ADT ORU or other HL7 Feeds | [On premise agent](/content/docs/agent/index.html) |
| FHIR (g)(10) | EHR | FHIR API for other EHRs | [Example bot FHIR API connectivity](https://github.com/medplum/medplum/tree/main/examples/medplum-demo-bots/src/epic)<br>[CLI connector](/content/docs/cli/external-fhir-servers/index.html) |
| SFTP | EHR | Synchronize data | [Example bot](/content/docs/bots/file-uploads#sftp-uploads/index.html) |
| SMART-on-FHIR | EHR | SMART app launch from Medplum or another EHR | [SMART App Launch](/content/docs/integration/smart-app-launch/index.html) |
| CDS Hooks | EHR | Contextual CDS service discovery and invocation | [CDS Hooks](/content/docs/integration/cds-hooks/index.html) |
| FHIRcast | Radiology | Event driven workflow for workstations | [Documentation](/content/docs/fhircast/index.html) |
| **Payor and Compliance** |
| FHIR CMS 9115 | Payor | FHIR Provider directory for Payor compliance | [Documentation](/content/docs/administration/provider-directory/index.html) |
| BulkFHIR | EHR/Payor | Export FHIR Data for use by partners | [BulkFHIR documentation](/content/docs/api/fhir/operations/bulk-fhir/index.html) |
| **Identity and Authentication** |
| OAuth2 | Identity | Plug in any oAuth2 provider | [Documentation](/content/docs/auth/external-identity-providers/index.html) |
| Basic Auth | Identity | Support connections via Basic Auth for legacy systems | [Basic auth](/content/docs/sdk/core.medplumclient.setbasicauth) |
| **Binary and Media** |
| Video | Binary Files | Upload and transcode video | [Documentation](/content/docs/fhir-datastore/binary-data/index.html) |
| PDF | Binary Files | Upload and access PDF | [Documentation](/content/docs/fhir-datastore/binary-data/index.html) |
| Images | Binary Files | Upload and access image files | [Documentation](/content/docs/fhir-datastore/binary-data/index.html) |

## Custom Built Integrations

Medplum provides building blocks for custom integrations. **Any system that exposes an API (REST/FHIR), HL7, or SFTP interface can be connected to Medplum** - you are not limited to a fixed catalog of vendors. Because the integration logic is built with [Bots](/content/docs/bots/index.html) that run on your own project, you own and control it. This makes custom built integrations both flexible and portable.

| Name | Template Type | Description | Documentation |
| --- | --- | --- | --- |
| **Scheduling and Payments (Bot Webhooks)** |
| [Stripe](https://stripe.com/) | Bot Webhooks | Synchronize payments data | [Stripe bot](https://github.com/medplum/medplum/tree/main/examples/medplum-demo-bots/src/stripe-bots) |
| [Acuity Scheduling](https://www.acuityscheduling.com/) | Bot Webhooks | Enable third party scheduling | [Consuming webhooks](/content/docs/bots/consuming-webhooks/index.html) |
| [Cal.com](https://cal.com/) | Bot Webhooks | Enable third party scheduling | [Consuming webhooks](/content/docs/bots/consuming-webhooks/index.html) |
| **Clinical (API)** |
| Medications | API | Prescribe and check medications | [Medication related integration](https://drive.google.com/drive/folders/1tkkKREaeCj8UOZErTHm28_y7jPfYn4Tb) |
| [NPPES NPI Registry](https://npiregistry.cms.hhs.gov/api-page) | Bot API | Look up National Provider Identifier (NPI) records from the public CMS registry | [NPPES Lookup Bot](https://github.com/medplum/medplum/tree/main/examples/medplum-demo-bots/src/nppes-lookup.ts) |
| **Documents and Forms (Bot PDF)** |
| [CMS 1500](https://www.cms.gov/medicare/cms-forms/cms-forms/downloads/cms1500.pdf) | Bot PDF | Create PDF for CMS 1500 | [PDF Bot](https://github.com/medplum/medplum/blob/main/examples/medplum-demo-bots/src/create-pdf.ts) |
| Superbill | Bot PDF | Create PDF for Superbill | [PDF Bot](https://github.com/medplum/medplum/blob/main/examples/medplum-demo-bots/src/create-pdf.ts) |
| **Consent and E-signature (Bot Webhooks)** |
| [DocuSign](https://www.docusign.com/) | Bot Webhooks | Send documents for signature and store completed agreements | [Consuming webhooks](/content/docs/bots/consuming-webhooks/index.html) |
| [Dropbox Sign](https://sign.dropbox.com/) | Bot Webhooks | Send documents for signature and store completed agreements | [Consuming webhooks](/content/docs/bots/consuming-webhooks/index.html) |

## Integration Building Blocks and Testing

Complex integrations are built by composing [bots](/content/docs/bots/index.html), [subscriptions](/content/docs/subscriptions/index.html), [authentication and authorization](/content/docs/auth/index.html) and the [TypeScript SDK](/content/docs/sdk/index.html).

- [Running on localhost](/content/docs/contributing/run-the-stack/index.html) is useful for testing integrations
- [CLI](/content/docs/cli/external-fhir-servers/index.html) is commonly used to test connectivity to external FHIR Servers
- [Integration Features and Fixes](https://github.com/medplum/medplum/pulls?q=is%3Apr+label%3Aintegration) on GitHub show the code that powers many of the integrations.
- [Audit and Logging Features](https://github.com/medplum/medplum/pulls?q=is%3Apr+label%3Aaudit-logging) show several security and observability integrations.
- [Bot Pull Requests](https://github.com/medplum/medplum/issues?q=label%3Abots) can be good reference material for how integrations work.
- [Auth Pull Requests](https://github.com/medplum/medplum/pulls?q=is%3Apr+label%3Aauth) can also be good reference material for integration planning and learning.
