@awell-health/awell-extensions 1.0.54 → 1.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extensions/markdown.json +19 -19
- package/package.json +1 -1
@@ -1,78 +1,78 @@
|
|
1
1
|
{
|
2
2
|
"avaAi": {
|
3
|
-
"readme": "# Awell Virtual (AI) Assistant - Ava\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide an Open AI API key.\n\n## Custom Actions\n\n### Generate patient summary\n\nGenerates a human-readable summary about the patient based on the characteristics in the patient's profile.\n\nYou can specify which characteristics of the patient you would like to include by providing a comma-separated string with the below possible options:\n\n- first_name\n- last_name\n- street\n- city\n- country\n- state\n- zip\n- birth_date\n- email\n- mobile_phone\n- phone\n- national_registry_number\n- patient_code\n- preferred_language\n- sex\n\nIf no characteristics are passed, by default a summary will be generated that includes all characteristics.\n",
|
3
|
+
"readme": "---\ntitle: AvaAI\ndescription: Experimental extension to introduce AI actions in care flows.\n---\n# Awell Virtual (AI) Assistant - Ava\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide an Open AI API key.\n\n## Custom Actions\n\n### Generate patient summary\n\nGenerates a human-readable summary about the patient based on the characteristics in the patient's profile.\n\nYou can specify which characteristics of the patient you would like to include by providing a comma-separated string with the below possible options:\n\n- first_name\n- last_name\n- street\n- city\n- country\n- state\n- zip\n- birth_date\n- email\n- mobile_phone\n- phone\n- national_registry_number\n- patient_code\n- preferred_language\n- sex\n\nIf no characteristics are passed, by default a summary will be generated that includes all characteristics.\n",
|
4
4
|
"changelog": "# Ava changelog"
|
5
5
|
},
|
6
6
|
"awell": {
|
7
|
-
"readme": "# Awell API extension\n\n## Extension settings\n\nYou will need to provide the [API URL](https://developers.awellhealth.com/awell-orchestration/api-reference/overview/endpoints) and an [API key](https://developers.awellhealth.com/awell-orchestration/api-reference/overview/authorization).\n\n## Custom Actions\n\n### Start care flow\n\nStarts a new care flow for the patient enrolled in your current care flow.\n\n**Passing baseline info:**\nPlease read the documentation on [our developer hub](https://developers.awellhealth.com/awell-orchestration/api-reference/mutations/start-pathway) to learn more about how to pass baseline info.\n\n**Example of how to configure a value for the baseline info action field:**\n```json\n[\n {\n \"data_point_definition_id\": \"age\",\n \"value\": \"29\",\n },\n {\n \"data_point_definition_id\": \"dob\",\n \"value\": \"1993-11-30\",\n }\n]\n```\n\n### Stop care flow\n\nStops the care flow the patient is currently enrolled in. A reason is why you are stopping the care flow is mandatory.\n\n### Update patient\n\nAllows updating patient data for the patient currently enrolled in the care flow.\n\n### Is patient already enrolled in care flow\n\nChecks whether the patient is already enrolled in a care flow definition. The care flow the patient is currently enrolled in does not count and is excluded from the results.\n\n**Action fields:**\n\n- pathwayStatus: a comma-separated string of care flow statuses that will be used when looking for care flows the patient is already enrolled in. By default, we only look at active care flows. Options: \"active\", \"completed\", \"missing_baseline_info\", \"starting\", and \"stopped\".\n- careFlowDefinitionIds: a comma-separated string of care flow definition ids that will be used when looking for care flows the patient is already enrolled in. By default, we only search for care flows that match the current care flow definition id (i.e. is the patient already included in the current care flow?).\n\n**Data points:**\n\n- result: a boolean indicating whether the patient is already enrolled in another care flow that matches your criteria (status & care flow definition id)\n- nbrOfResults: the number of care flows found for the patient that match the criteria.\n- careFlowIds: a comma-separated string of care flow ids that matched your search criteria. It will be empty when the result is `false` because then there are no other care flow ids that match your criteria.\n\n### Search patients by patient code\n\nSearch whether, apart from the patient currently enrolled in the care flow, another patient with the same `patient_code` already exists.\n\n**Data points:**\n\n1. patientAlreadyExists: a boolean which will be true if minimum one patient with the patient code already exists.\n2. numberOfPatientsFound: the number of patients found with the same patient code.\n3. awellPatientIds: a comma-separated string of all Awell patient ids (except the current patient) that have the same patient code as the patient currently enrolled in the care flow. Will return an empty string when there are no other patients with the same patient code.\n",
|
7
|
+
"readme": "---\ntitle: Awell Workflow\ndescription: Enrich your care flows with powerful Awell actions.\n---\n# Awell API extension\n\n## Extension settings\n\nYou will need to provide the [API URL](https://developers.awellhealth.com/awell-orchestration/api-reference/overview/endpoints) and an [API key](https://developers.awellhealth.com/awell-orchestration/api-reference/overview/authorization).\n\n## Custom Actions\n\n### Start care flow\n\nStarts a new care flow for the patient enrolled in your current care flow.\n\n**Passing baseline info:**\nPlease read the documentation on [our developer hub](https://developers.awellhealth.com/awell-orchestration/api-reference/mutations/start-pathway) to learn more about how to pass baseline info.\n\n**Example of how to configure a value for the baseline info action field:**\n```json\n[\n {\n \"data_point_definition_id\": \"age\",\n \"value\": \"29\",\n },\n {\n \"data_point_definition_id\": \"dob\",\n \"value\": \"1993-11-30\",\n }\n]\n```\n\n### Stop care flow\n\nStops the care flow the patient is currently enrolled in. A reason is why you are stopping the care flow is mandatory.\n\n### Update patient\n\nAllows updating patient data for the patient currently enrolled in the care flow.\n\n### Is patient already enrolled in care flow\n\nChecks whether the patient is already enrolled in a care flow definition. The care flow the patient is currently enrolled in does not count and is excluded from the results.\n\n**Action fields:**\n\n- pathwayStatus: a comma-separated string of care flow statuses that will be used when looking for care flows the patient is already enrolled in. By default, we only look at active care flows. Options: \"active\", \"completed\", \"missing_baseline_info\", \"starting\", and \"stopped\".\n- careFlowDefinitionIds: a comma-separated string of care flow definition ids that will be used when looking for care flows the patient is already enrolled in. By default, we only search for care flows that match the current care flow definition id (i.e. is the patient already included in the current care flow?).\n\n**Data points:**\n\n- result: a boolean indicating whether the patient is already enrolled in another care flow that matches your criteria (status & care flow definition id)\n- nbrOfResults: the number of care flows found for the patient that match the criteria.\n- careFlowIds: a comma-separated string of care flow ids that matched your search criteria. It will be empty when the result is `false` because then there are no other care flow ids that match your criteria.\n\n### Search patients by patient code\n\nSearch whether, apart from the patient currently enrolled in the care flow, another patient with the same `patient_code` already exists.\n\n**Data points:**\n\n1. patientAlreadyExists: a boolean which will be true if minimum one patient with the patient code already exists.\n2. numberOfPatientsFound: the number of patients found with the same patient code.\n3. awellPatientIds: a comma-separated string of all Awell patient ids (except the current patient) that have the same patient code as the patient currently enrolled in the care flow. Will return an empty string when there are no other patients with the same patient code.\n",
|
8
8
|
"changelog": "# Awell changelog\n\n## April 19, 2023\n\nStop care flow action added.\nSearch patients by patient code action was added.\n\"Is patient enrolled in care flow\" action added.\n"
|
9
9
|
},
|
10
10
|
"calDotCom": {
|
11
|
-
"readme": "# Cal.com\n\n[Cal.com](https://cal.com/) is a modern and **open source** scheduling platform. With HIPAA, GDPR and SOC2 compliance, you can ensure that data is well-protected and that makes Cal.com a great fit for healthcare use cases.\n## Cal.com x Awell\n\nThis extension allows you to let a stakeholder (eg: a patient) book an appointment as part of a care flow and to retrieve the booking details of an appointment.\n\n## Extension settings\n\nIn order to set up this extension, **you will need to provide a Cal.com API key**. You can obtain an API key via the Cal.com portal (`Settings > Developer > API keys`).\n\n## Custom Actions\n\n### Book appointment action\n\nYou can add this action to your care flow to enable a stakeholder (eg: a patient) to book an appointment in a predefined calendar. This is a **stakeholder-actionable action** which means it requires an actual user to book an appointment. Also note that this is a blocking action and that the care flow will not progress - unless there are parallel tracks or transitions - until the action/activity is completed (i.e. an appointment was booked).\n\n**The actual booking of the appointment can happen in two ways:**\n\n1. With Awell Hosted Pages: when the \"Book appointment\" action is activated, we serve the booking widget to the stakeholder so they can book an appointment directly from within Awell Hosted Pages.\n2. If you are not leveraging Awell Hosted Pages but have built a custom integration then we expose you all the details via our API so you can either create a Cal.com booking widget yourself or redirect the user to the Cal.com platform. Additionally, we expose a mutation that allows you to complete the activity and pass in the required data.\n\nBelow you can find an overview of all Awell Apps and whether they support rendering of the booking widget.\n\n| App | Supported |\n|-------------------------------|-----------|\n| Awell Hosted Pages | Yes |\n| Your app (custom integration) | Yes |\n| Awell Care | No |\n| Awell MyCare | No |\n\n#### Data points\n\nAdding this action to your care flow will expose a new data point you can use in your care flow, the `bookingId`. When the care flow is orchestrated and the book appointment activity is completed, the id of the actual booking will be ingested as the value of that `bookingId` data point.\n\n### Get booking action\n\nThis action allows you to fetch the details of a booking based on the provided `bookingId`. This action will make the following data points available for you to use in your care flow:\n\n1. Event type ID\n2. Title\n3. Description\n4. Start time\n5. End time\n6. Status\n7. Cancel URL\n8. Reschedule URL\n\n## Pricing\n\n**This extension is free** but keep in mind that you might need a paid plan for Cal.com depending on your needs.\n\n## Limitations\n\n### Rescheduling\n\nWhen a previously made booking is rescheduled, there is no way yet to get the new/updated booking details into the care flow or have the care flow react on the updated booking.\n\nAlso note that when a booking is rescheduled, Cal.com doesn't update the original booking resource but creates a new one instead. As far as we know, there is no reference from the old booking to the new (rescheduled) booking.\n\n#### Example\n\nAn appointment has been booked with Cal.com and we have the below booking resource:\n\n```json\n{\n ...,\n \"bookingId\": \"1\",\n \"date\": \"Jan 1, 2023\"\n}\n```\n\nHowever, the patient reschedules the booking to Jan 10, 2023. When querying Cal.com's API (`GET v1/bookings/{bookingId}`), it will still return the old booking date instead of the new/rescheduled date.\n\n```json\n{\n ...,\n \"bookingId\": \"1\",\n \"date\": \"Jan 1, 2023\"\n}\n```\n",
|
11
|
+
"readme": "---\ntitle: Cal.com\ndescription: Cal.com is a modern and open source scheduling platform. With HIPAA, GDPR and SOC2 compliance, you can ensure that data is well-protected and that makes Cal.com a great fit for healthcare use cases.\n---\n# Cal.com\n\n[Cal.com](https://cal.com/) is a modern and **open source** scheduling platform. With HIPAA, GDPR and SOC2 compliance, you can ensure that data is well-protected and that makes Cal.com a great fit for healthcare use cases.\n## Cal.com x Awell\n\nThis extension allows you to let a stakeholder (eg: a patient) book an appointment as part of a care flow and to retrieve the booking details of an appointment.\n\n## Extension settings\n\nIn order to set up this extension, **you will need to provide a Cal.com API key**. You can obtain an API key via the Cal.com portal (`Settings > Developer > API keys`).\n\n## Custom Actions\n\n### Book appointment action\n\nYou can add this action to your care flow to enable a stakeholder (eg: a patient) to book an appointment in a predefined calendar. This is a **stakeholder-actionable action** which means it requires an actual user to book an appointment. Also note that this is a blocking action and that the care flow will not progress - unless there are parallel tracks or transitions - until the action/activity is completed (i.e. an appointment was booked).\n\n**The actual booking of the appointment can happen in two ways:**\n\n1. With Awell Hosted Pages: when the \"Book appointment\" action is activated, we serve the booking widget to the stakeholder so they can book an appointment directly from within Awell Hosted Pages.\n2. If you are not leveraging Awell Hosted Pages but have built a custom integration then we expose you all the details via our API so you can either create a Cal.com booking widget yourself or redirect the user to the Cal.com platform. Additionally, we expose a mutation that allows you to complete the activity and pass in the required data.\n\nBelow you can find an overview of all Awell Apps and whether they support rendering of the booking widget.\n\n| App | Supported |\n|-------------------------------|-----------|\n| Awell Hosted Pages | Yes |\n| Your app (custom integration) | Yes |\n| Awell Care | No |\n| Awell MyCare | No |\n\n#### Data points\n\nAdding this action to your care flow will expose a new data point you can use in your care flow, the `bookingId`. When the care flow is orchestrated and the book appointment activity is completed, the id of the actual booking will be ingested as the value of that `bookingId` data point.\n\n### Get booking action\n\nThis action allows you to fetch the details of a booking based on the provided `bookingId`. This action will make the following data points available for you to use in your care flow:\n\n1. Event type ID\n2. Title\n3. Description\n4. Start time\n5. End time\n6. Status\n7. Cancel URL\n8. Reschedule URL\n\n## Pricing\n\n**This extension is free** but keep in mind that you might need a paid plan for Cal.com depending on your needs.\n\n## Limitations\n\n### Rescheduling\n\nWhen a previously made booking is rescheduled, there is no way yet to get the new/updated booking details into the care flow or have the care flow react on the updated booking.\n\nAlso note that when a booking is rescheduled, Cal.com doesn't update the original booking resource but creates a new one instead. As far as we know, there is no reference from the old booking to the new (rescheduled) booking.\n\n#### Example\n\nAn appointment has been booked with Cal.com and we have the below booking resource:\n\n```json\n{\n ...,\n \"bookingId\": \"1\",\n \"date\": \"Jan 1, 2023\"\n}\n```\n\nHowever, the patient reschedules the booking to Jan 10, 2023. When querying Cal.com's API (`GET v1/bookings/{bookingId}`), it will still return the old booking date instead of the new/rescheduled date.\n\n```json\n{\n ...,\n \"bookingId\": \"1\",\n \"date\": \"Jan 1, 2023\"\n}\n```\n",
|
12
12
|
"changelog": "# Cal.com changelog\n\n## July 4, 2023\n\n- Get booking action: add validation that bookingId and apiKey are not empty\n- Get booking action: add validation of response data to make sure we have data points\n\n## April 27, 2023\n\n- Get booking action: `startTime` and `endTime` data points are now of value type `date` instead of `string`.\n"
|
13
13
|
},
|
14
14
|
"cloudinary": {
|
15
|
-
"readme": "# Cloudinary\n\nCloudinary is a cloud-based image and video management platform that provides a comprehensive set of tools for storing, managing, and delivering digital media assets. It enables users to upload, manipulate, optimize, and deliver media files to any device or website quickly and easily.\n\nThe platform offers features such as image and video transformation, automatic image optimization, and responsive image delivery. Cloudinary also provides tools for organizing media assets, including tags, folders, and metadata.\n\n## Custom Actions\n\n### Upload files\n\nThis action allows a given stakeholder to upload one or many files (all file types allowed). Additionally, you can specify in what folder you would like to upload the assets.\n\n**Prerequisites:**\n\n1. You have a Cloudinary account\n2. You have created an upload preset that allows for unsigned uploads\n\n**Limitations:**\n\n- You cannot manage or browse uploaded file(s) in Awell. You can only do that in Cloudinary. To make searching files as easy as possible, you can assign tags to uploaded files and each uploaded file automatically has metadata attached (pathway id and activity id)\n- Only support for unsigned uploads\n- As a user, you cannot delete files you already uploaded\n",
|
15
|
+
"readme": "---\ntitle: Cal.com\ndescription: Cloudinary is a cloud-based image and video management platform that provides a comprehensive set of tools for storing, managing, and delivering digital media assets. \n---\n# Cloudinary\n\nCloudinary is a cloud-based image and video management platform that provides a comprehensive set of tools for storing, managing, and delivering digital media assets. It enables users to upload, manipulate, optimize, and deliver media files to any device or website quickly and easily.\n\nThe platform offers features such as image and video transformation, automatic image optimization, and responsive image delivery. Cloudinary also provides tools for organizing media assets, including tags, folders, and metadata.\n\n## Custom Actions\n\n### Upload files\n\nThis action allows a given stakeholder to upload one or many files (all file types allowed). Additionally, you can specify in what folder you would like to upload the assets.\n\n**Prerequisites:**\n\n1. You have a Cloudinary account\n2. You have created an upload preset that allows for unsigned uploads\n\n**Limitations:**\n\n- You cannot manage or browse uploaded file(s) in Awell. You can only do that in Cloudinary. To make searching files as easy as possible, you can assign tags to uploaded files and each uploaded file automatically has metadata attached (pathway id and activity id)\n- Only support for unsigned uploads\n- As a user, you cannot delete files you already uploaded\n",
|
16
16
|
"changelog": "# Cloudinary changelog"
|
17
17
|
},
|
18
18
|
"cmDotCom": {
|
19
|
-
"readme": "# CM.com\n\nCM.com is a global communication and digital services provider based in the Netherlands. It offers a wide range of services and solutions in the areas of messaging, payments, voice, and customer experience.\n\nCM.com enables businesses to communicate with their customers through various channels such as SMS, email, push notifications, social media messaging, and more.\n\n## Extension settings\n\nIn order to set up this extension, you will need:\n\n1. A **Product Token** - visit https://gateway.cmtelecom.com/ to retrieve your product token.\n2. A **From/sender name** - the maximum length is 11 alphanumerical characters or 16 digit\n\n## Custom Actions\n\n### Send SMS\n\nSend an SMS with CM.com to a recipient of your liking.\n",
|
19
|
+
"readme": "---\ntitle: cm.com\ndescription: CM.com is a global communication and digital services provider based in the Netherlands.\n---\n# CM.com\n\nCM.com is a global communication and digital services provider based in the Netherlands. It offers a wide range of services and solutions in the areas of messaging, payments, voice, and customer experience.\n\nCM.com enables businesses to communicate with their customers through various channels such as SMS, email, push notifications, social media messaging, and more.\n\n## Extension settings\n\nIn order to set up this extension, you will need:\n\n1. A **Product Token** - visit https://gateway.cmtelecom.com/ to retrieve your product token.\n2. A **From/sender name** - the maximum length is 11 alphanumerical characters or 16 digit\n\n## Custom Actions\n\n### Send SMS\n\nSend an SMS with CM.com to a recipient of your liking.\n",
|
20
20
|
"changelog": "# CM.com changelog\n"
|
21
21
|
},
|
22
22
|
"docuSign": {
|
23
|
-
"readme": "# DocuSign\n\nMake your business faster, simpler and more cost-efficient with electronic agreements. Agree with confidence, with intuitive signing experiences across virtually any device.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide the following settings:\n\n1. **Integration key (client ID)** - An integration key identifies your integration and links to its configuration values. This can be obtained in your developer account from the **Apps and Keys** page\n2. **API Account ID** - A GUID value that identifies your account. This can be obtained in your developer account from the **Apps and Keys** page\n3. **Impersonated User ID (UserID)** - This is a GUID identifying the DocuSign user that you will be impersonating with the access token. Your own User ID can be found at the top of the **Apps and Keys** page.\n4. **RSA private key (in Base64 format)** - This is for the integration key you obtained above and can also be created on the **Apps and Keys** page (DocuSign also allows uploading your own keys). You only need the private key, and it can only be copied once. Make sure to retain it for your records. Provide it in Base64 format - if you copy the key as is, it will not be valid as newlines and formatting won't be persisted.\n5. **Base API URL** - Base API URL for API calls matching your environment on DocuSign. Defaults to: https://demo.docusign.net. Can be obtained from **Account Base URI** section of the **Apps and Keys** page or the `base_uri` property in the response of a call to the `/oauth/userinfo`.\n 1. `DEV` environment: https://demo.docusign.net (default)\n 2. `PRODUCTION` environment: **https://`{server}`.docusign.net**, where `{server}` is the data center location of your production account (for example, **CA**, **NA2**, or **EU**)\n6. **Return URL template** - Return URL for your application to which DocuSign will redirect the user after signing the document. Set when you self host your application. You can use {sessionId}, {pathwayId}, {activityId} and {stakeholderId} variables to construct the URL, where variables will be replaced with actual values. Defaults to: \"https://goto.development.awell.health/?sessionId={sessionId}\". Remember that this URL MUST match the one you registered for your app in DocuSign settings. [See docs](https://developers.docusign.com/platform/configure-app/#redirect-uri) for more details.\n\nAlso, before working with **DocuSign** you should receive consent of the user to impersonate them with the API calls (even for your own account). Check the details on how to do that [on DocuSign docs](https://developers.docusign.com/platform/auth/consent/obtaining-individual-consent/). It's a ONE TIME operation and is required for API calls to work for specific client-scope-uri combination. Required params explained below:\n\n- `YOUR_REQUESTED_SCOPES`: This extension uses JWT Grant, so in place of `YOUR_REQUESTED_SCOPES` you MUST put at least `signature%20impersonation`.\n - sample consent URL: https://account-d.docusign.com/oauth/auth?response_type=code&scope=signature%20impersonation%20click.manage%20click.send&client_id=XYZ-123&redirect_uri=https://test.com\n\n## Custom Actions\n\n### Embedded signing\n\nEmbedded Signing gives users the ability to sign documents directly from Awell Hosted Pages using DocuSign's embedded signing feature. First an embedded signature request with a template is created and then a signing URL is generated for the signature request. Via the signing URL, we can let the user sign the request from within Awell.\n\nEmbedded signing behaves as a blocking action where the action is only completed when the signature request is effectively signed.\n\n**In order to add embedded signing, you need to add 2 actions to you care flow:**\n\n1. First, add the \"Create embedded signature request with template\" action. This action will create an embedded signature request based on a template and return a **sign URL**.\n2. Second, add the \"Embedded signing\" action. In this action you will have to configure the **sign URL** you got from the first action.\n\n**Please note that the signing URL generated in the first step is only valid for 5 minutes and is one-time only.** This means that from as soon as the first action is activated, the user has 5 minutes to complete the signing request. Loading a session by the user also means that sign url is loaded and refreshing the page will cause the link to expire. When the sign URL has expired, the document cannot be signed anymore and and the process would have to be repeated.\n",
|
23
|
+
"readme": "---\ntitle: DocuSign\ndescription: Make your business faster, simpler and more cost-efficient with electronic agreements. Agree with confidence, with intuitive signing experiences across virtually any device.\n---\n# DocuSign\n\nMake your business faster, simpler and more cost-efficient with electronic agreements. Agree with confidence, with intuitive signing experiences across virtually any device.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide the following settings:\n\n1. **Integration key (client ID)** - An integration key identifies your integration and links to its configuration values. This can be obtained in your developer account from the **Apps and Keys** page\n2. **API Account ID** - A GUID value that identifies your account. This can be obtained in your developer account from the **Apps and Keys** page\n3. **Impersonated User ID (UserID)** - This is a GUID identifying the DocuSign user that you will be impersonating with the access token. Your own User ID can be found at the top of the **Apps and Keys** page.\n4. **RSA private key (in Base64 format)** - This is for the integration key you obtained above and can also be created on the **Apps and Keys** page (DocuSign also allows uploading your own keys). You only need the private key, and it can only be copied once. Make sure to retain it for your records. Provide it in Base64 format - if you copy the key as is, it will not be valid as newlines and formatting won't be persisted.\n5. **Base API URL** - Base API URL for API calls matching your environment on DocuSign. Defaults to: https://demo.docusign.net. Can be obtained from **Account Base URI** section of the **Apps and Keys** page or the `base_uri` property in the response of a call to the `/oauth/userinfo`.\n 1. `DEV` environment: https://demo.docusign.net (default)\n 2. `PRODUCTION` environment: **https://`{server}`.docusign.net**, where `{server}` is the data center location of your production account (for example, **CA**, **NA2**, or **EU**)\n6. **Return URL template** - Return URL for your application to which DocuSign will redirect the user after signing the document. Set when you self host your application. You can use {sessionId}, {pathwayId}, {activityId} and {stakeholderId} variables to construct the URL, where variables will be replaced with actual values. Defaults to: \"https://goto.development.awell.health/?sessionId={sessionId}\". Remember that this URL MUST match the one you registered for your app in DocuSign settings. [See docs](https://developers.docusign.com/platform/configure-app/#redirect-uri) for more details.\n\nAlso, before working with **DocuSign** you should receive consent of the user to impersonate them with the API calls (even for your own account). Check the details on how to do that [on DocuSign docs](https://developers.docusign.com/platform/auth/consent/obtaining-individual-consent/). It's a ONE TIME operation and is required for API calls to work for specific client-scope-uri combination. Required params explained below:\n\n- `YOUR_REQUESTED_SCOPES`: This extension uses JWT Grant, so in place of `YOUR_REQUESTED_SCOPES` you MUST put at least `signature%20impersonation`.\n - sample consent URL: https://account-d.docusign.com/oauth/auth?response_type=code&scope=signature%20impersonation%20click.manage%20click.send&client_id=XYZ-123&redirect_uri=https://test.com\n\n## Custom Actions\n\n### Embedded signing\n\nEmbedded Signing gives users the ability to sign documents directly from Awell Hosted Pages using DocuSign's embedded signing feature. First an embedded signature request with a template is created and then a signing URL is generated for the signature request. Via the signing URL, we can let the user sign the request from within Awell.\n\nEmbedded signing behaves as a blocking action where the action is only completed when the signature request is effectively signed.\n\n**In order to add embedded signing, you need to add 2 actions to you care flow:**\n\n1. First, add the \"Create embedded signature request with template\" action. This action will create an embedded signature request based on a template and return a **sign URL**.\n2. Second, add the \"Embedded signing\" action. In this action you will have to configure the **sign URL** you got from the first action.\n\n**Please note that the signing URL generated in the first step is only valid for 5 minutes and is one-time only.** This means that from as soon as the first action is activated, the user has 5 minutes to complete the signing request. Loading a session by the user also means that sign url is loaded and refreshing the page will cause the link to expire. When the sign URL has expired, the document cannot be signed anymore and and the process would have to be repeated.\n",
|
24
24
|
"changelog": "# DocuSign changelog\n"
|
25
25
|
},
|
26
26
|
"dropboxSign": {
|
27
|
-
"readme": "# Dropbox Sign\n\nDropbox Sign (formerly HelloSign) is the easiest way to send, receive and manage legally binding electronic signatures.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide the following settings:\n\n1. API Key\n2. Client ID - the id of the API app created in Dropbox Sign. Only required if want to use embedded signature requests.\n3. Test mode - whether you want to execute all API calls to DropboxSign in test mode. When test mode is enabled, signature requests will not be legally binding. When disabled, keep in mind that you must upgrade to a paid DropboxSign API plan to create signature requests via the extension.\n\n## Custom Actions\n\n### Embedded signing\n\nEmbedded Signing gives users the ability to sign documents directly from Awell Hosted Pages using Dropbox Sign's embedded signing feature. First an embedded signature request with a template is created and then a signing URL is generated for the signature request. Via the signing URL, we can let the user sign the request from within Awell.\n\nEmbedded signing behaves as a blocking action where the action is only completed when the signature request is effectively signed.\n\n**In order to add embedded signing, you need to add 2 actions to you care flow:**\n\n1. First, add the \"Create embedded signature request with template\" action. This action will create an embedded signature request based on a template and return a **sign URL**.\n2. Second, add the \"Embedded signing\" action. In this action you will have to configure the **sign URL** you got from the first action.\n\n**Please note that the signing URL generated in the first step is only valid for 1 hour.** This means that from as soon as the first action is activated, the user has 1 hour to complete the signing request. When the sign URL has expired, the document cannot be signed anymore and and the process would have to be repeated.\n\n### Send signature request with template\n\nCreates and sends a new SignatureRequest based off of a template specified with the template id parameter. The request will be send to specified signer via email. Please note that is a non-blocking action and that the care flow will automatically continue once the request is sent. It won't wait for the actual signing of the request.\n\nTo send signature requests via the DropboxSign API you must upgrade to a [paid API plan](https://app.hellosign.com/api/pricing).\n\n### Get signature request\n\nReturns the SignatureRequest specified by the signature request id parameter.\n\n### Send request reminder\n\nSends an email to the signer reminding them to sign the signature request. You cannot send a reminder within 1 hour of the last reminder that was sent. This includes manual AND automatic reminders.\n\n**Important:**\n\n- The email address specified to send the reminder to needs to be an email address of an actual signer linked to the signature request. If not, the action will fail.\n- This action can not be used with embedded signature requests.\n\n### Cancel signature request\n\nCancels an incomplete signature request. This action is not reversible.\n",
|
27
|
+
"readme": "---\ntitle: Dropbox Sign\ndescription: Dropbox Sign (formerly HelloSign) is the easiest way to send, receive and manage legally binding electronic signatures.\n---\n# Dropbox Sign\n\nDropbox Sign (formerly HelloSign) is the easiest way to send, receive and manage legally binding electronic signatures.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide the following settings:\n\n1. API Key\n2. Client ID - the id of the API app created in Dropbox Sign. Only required if want to use embedded signature requests.\n3. Test mode - whether you want to execute all API calls to DropboxSign in test mode. When test mode is enabled, signature requests will not be legally binding. When disabled, keep in mind that you must upgrade to a paid DropboxSign API plan to create signature requests via the extension.\n\n## Custom Actions\n\n### Embedded signing\n\nEmbedded Signing gives users the ability to sign documents directly from Awell Hosted Pages using Dropbox Sign's embedded signing feature. First an embedded signature request with a template is created and then a signing URL is generated for the signature request. Via the signing URL, we can let the user sign the request from within Awell.\n\nEmbedded signing behaves as a blocking action where the action is only completed when the signature request is effectively signed.\n\n**In order to add embedded signing, you need to add 2 actions to you care flow:**\n\n1. First, add the \"Create embedded signature request with template\" action. This action will create an embedded signature request based on a template and return a **sign URL**.\n2. Second, add the \"Embedded signing\" action. In this action you will have to configure the **sign URL** you got from the first action.\n\n**Please note that the signing URL generated in the first step is only valid for 1 hour.** This means that from as soon as the first action is activated, the user has 1 hour to complete the signing request. When the sign URL has expired, the document cannot be signed anymore and and the process would have to be repeated.\n\n### Send signature request with template\n\nCreates and sends a new SignatureRequest based off of a template specified with the template id parameter. The request will be send to specified signer via email. Please note that is a non-blocking action and that the care flow will automatically continue once the request is sent. It won't wait for the actual signing of the request.\n\nTo send signature requests via the DropboxSign API you must upgrade to a [paid API plan](https://app.hellosign.com/api/pricing).\n\n### Get signature request\n\nReturns the SignatureRequest specified by the signature request id parameter.\n\n### Send request reminder\n\nSends an email to the signer reminding them to sign the signature request. You cannot send a reminder within 1 hour of the last reminder that was sent. This includes manual AND automatic reminders.\n\n**Important:**\n\n- The email address specified to send the reminder to needs to be an email address of an actual signer linked to the signature request. If not, the action will fail.\n- This action can not be used with embedded signature requests.\n\n### Cancel signature request\n\nCancels an incomplete signature request. This action is not reversible.\n",
|
28
28
|
"changelog": "# Dropbox Sign changelog"
|
29
29
|
},
|
30
30
|
"elation": {
|
31
|
-
"readme": "# Elation\n\nElation is a cloud-based health record system designed for healthcare providers, clinics, and medical practices. It offers a range of features including patient scheduling, charting, e-prescribing, billing, and telemedicine. Overall, Elation is designed to streamline the workflow of medical practices, improve patient care, and increase efficiency.\n\n## Extension settings\n\nIn order to use this extension you will need to provide the extension with the following settings:\n\n- Base URL / endpoint URL of the API\n- Authorization URL\n- Client ID for OAuth2 Password authentication\n- Client Secret for OAuth2 Password authentication\n- API Username for OAuth2 Password authentication\n- API Password for OAuth2 Password authentication\n\n## Actions\n\nThe following actions are supported with Elation today:\n\n### Create Patient\n\nCreate a patient in the EHR. **Does not look for duplicates**\n\nRequired fields include:\n- First Name\n- Last Name\n- Date of Birth (YYYY-MM-DD)\n- Sex (Male, Female, Other, Unknown)\n- Primary Physician (the ID of the physician, which you will be able to retrieve using the [Find Physicians](https://docs.elationhealth.com/reference/find-physicians) API call, or by using the `Find Physician` action)\n- Caregiver Practice (the ID of the practice. Again, you can find using the same API call or action as listed above)\n\nThere are also a number of optional fields.\n\n**NOTE: We currently do not support nested objects, so the entire patient object supported by elation's API is not yet exposed**. Please reach out to us if you're looking to add a particular field or set of fields.\n\n### Get Patient\n\nUsing a patient identifier, get a patient object that has all datapoints listed above in `Create Patient`.\n\n**NOTE: Because we don't yet support nested objects and arrays in extensions, we expose specifically the `mobile_phone` field, which is a search for the patient's mobile phone specifically.**\n\n### Update Patient\n\nUpdate a patient using any fields available in create patient.\n\nOddly enough, the following fields are always required by Elation:\n- first_name\n- last_name\n- dob\n- sex\n- primary_physician\n- caregiver_practice\n\n\n\n### Create Appointment\n\nCreate a patient appointment in your EHR for a given practice and physician.\n\nCreating an appointment requires a few strings to be well-formulated:\n- `Scheduled date` must be a datetime string (ISO-8601). For example, January 1, 2023 at noon, Pacific Time (-8 hours) would be shown as such: `2023-01-01T12:00:00.000-08:00`\n- `Reason` must not be free text. This value comes from the following list of appointment types (`Follow-Up`, `Office Visit`, `Physical Exam`, etc.):\n\n- `Patient` is the patient ID.\n- `Physician` is the physician ID (see `Find Physician`)\n- `Practice` is the practice ID (again, see `Find Physician`)\n\nYou can also include a duration (default to 15 minutes, or whatever has been set in your EHR)\n\n### Get Appointment\n\nGet an appointment using an appointment ID. View all of the fields supported by the API.\n\n### Create Non-Visit Note\n\nThe non-visit note is a special kind of note that, as the name suggests, is not associated with a visit. These notes, in their simplest form, provide a chronological account of information about the patient.\n\n### Update Non-Visit Note\n\nUpdates the non-visit note identified by an ID. Only ID is required by default, however editing any of `text`, `author` or `category` requires `Bullet ID` and both `text` and `author` to be provided.\n\n### Delete Non-Visit Note\n\nDeletes the non-visit note identified by an ID.\n\n### Get Non-Visit Note\n\nGets the non-visit note identified by an ID. Fields are saved as data points:\n- `authorId`\n- `text`\n- `chartDate`\n- `documentDate`\n- `patientId`\n- `practiceId`\n- `tags` (comma-separated list)",
|
31
|
+
"readme": "---\ntitle: Elation\ndescription: Elation is a cloud-based health record system designed for healthcare providers, clinics, and medical practices.\n---\n# Elation\n\nElation is a cloud-based health record system designed for healthcare providers, clinics, and medical practices. It offers a range of features including patient scheduling, charting, e-prescribing, billing, and telemedicine. Overall, Elation is designed to streamline the workflow of medical practices, improve patient care, and increase efficiency.\n\n## Extension settings\n\nIn order to use this extension you will need to provide the extension with the following settings:\n\n- Base URL / endpoint URL of the API\n- Authorization URL\n- Client ID for OAuth2 Password authentication\n- Client Secret for OAuth2 Password authentication\n- API Username for OAuth2 Password authentication\n- API Password for OAuth2 Password authentication\n\n## Actions\n\nThe following actions are supported with Elation today:\n\n### Create Patient\n\nCreate a patient in the EHR. **Does not look for duplicates**\n\nRequired fields include:\n- First Name\n- Last Name\n- Date of Birth (YYYY-MM-DD)\n- Sex (Male, Female, Other, Unknown)\n- Primary Physician (the ID of the physician, which you will be able to retrieve using the [Find Physicians](https://docs.elationhealth.com/reference/find-physicians) API call, or by using the `Find Physician` action)\n- Caregiver Practice (the ID of the practice. Again, you can find using the same API call or action as listed above)\n\nThere are also a number of optional fields.\n\n**NOTE: We currently do not support nested objects, so the entire patient object supported by elation's API is not yet exposed**. Please reach out to us if you're looking to add a particular field or set of fields.\n\n### Get Patient\n\nUsing a patient identifier, get a patient object that has all datapoints listed above in `Create Patient`.\n\n**NOTE: Because we don't yet support nested objects and arrays in extensions, we expose specifically the `mobile_phone` field, which is a search for the patient's mobile phone specifically.**\n\n### Update Patient\n\nUpdate a patient using any fields available in create patient.\n\nOddly enough, the following fields are always required by Elation:\n- first_name\n- last_name\n- dob\n- sex\n- primary_physician\n- caregiver_practice\n\n\n\n### Create Appointment\n\nCreate a patient appointment in your EHR for a given practice and physician.\n\nCreating an appointment requires a few strings to be well-formulated:\n- `Scheduled date` must be a datetime string (ISO-8601). For example, January 1, 2023 at noon, Pacific Time (-8 hours) would be shown as such: `2023-01-01T12:00:00.000-08:00`\n- `Reason` must not be free text. This value comes from the following list of appointment types (`Follow-Up`, `Office Visit`, `Physical Exam`, etc.):\n\n- `Patient` is the patient ID.\n- `Physician` is the physician ID (see `Find Physician`)\n- `Practice` is the practice ID (again, see `Find Physician`)\n\nYou can also include a duration (default to 15 minutes, or whatever has been set in your EHR)\n\n### Get Appointment\n\nGet an appointment using an appointment ID. View all of the fields supported by the API.\n\n### Create Non-Visit Note\n\nThe non-visit note is a special kind of note that, as the name suggests, is not associated with a visit. These notes, in their simplest form, provide a chronological account of information about the patient.\n\n### Update Non-Visit Note\n\nUpdates the non-visit note identified by an ID. Only ID is required by default, however editing any of `text`, `author` or `category` requires `Bullet ID` and both `text` and `author` to be provided.\n\n### Delete Non-Visit Note\n\nDeletes the non-visit note identified by an ID.\n\n### Get Non-Visit Note\n\nGets the non-visit note identified by an ID. Fields are saved as data points:\n- `authorId`\n- `text`\n- `chartDate`\n- `documentDate`\n- `patientId`\n- `practiceId`\n- `tags` (comma-separated list)",
|
32
32
|
"changelog": "# Elation Changelog\n"
|
33
33
|
},
|
34
34
|
"formsort": {
|
35
|
-
"readme": "# Formsort\n\nFormsort is a fully-managed form-building platform. Team can use the online studio (a specialized content management system for forms) to create form content, modify styles, and configure integrations.\n\nFormsort hosts your fully-branded forms, either on one of your subdomains or embedded in a page on your site. When responders submit answers, Formsort sends the answers to a destination of your liking directly. Formsort doesn't store the responder's answers. \n\n## Flow settings\n\nIn order for the flows to work well with Awell care flows, make sure your flow settings are set as follows:\n\n- There should be no redirects\n- \"Start each session as a new responder\" should be checked\n- \"Enable URL navigation\" should be disabled\n- \"Enable restart once flow completed\" should be disabled\n- \"Enable close once flow completed\" should be disabled\n\n## Custom Actions\n\n### Complete flow\n\nLet a stakeholder complete a Formsort flow from within Awell Hosted Pages.\n\n**Limitations:**\nCurrently data from the flow is not ingested into Awell yet and cannot be used in your care flow as data points.\n",
|
35
|
+
"readme": "---\ntitle: Formsort\ndescription: Formsort is a fully-managed form-building platform.\n---\n# Formsort\n\nFormsort is a fully-managed form-building platform. Team can use the online studio (a specialized content management system for forms) to create form content, modify styles, and configure integrations.\n\nFormsort hosts your fully-branded forms, either on one of your subdomains or embedded in a page on your site. When responders submit answers, Formsort sends the answers to a destination of your liking directly. Formsort doesn't store the responder's answers. \n\n## Flow settings\n\nIn order for the flows to work well with Awell care flows, make sure your flow settings are set as follows:\n\n- There should be no redirects\n- \"Start each session as a new responder\" should be checked\n- \"Enable URL navigation\" should be disabled\n- \"Enable restart once flow completed\" should be disabled\n- \"Enable close once flow completed\" should be disabled\n\n## Custom Actions\n\n### Complete flow\n\nLet a stakeholder complete a Formsort flow from within Awell Hosted Pages.\n\n**Limitations:**\nCurrently data from the flow is not ingested into Awell yet and cannot be used in your care flow as data points.\n",
|
36
36
|
"changelog": "# Formsort changelog"
|
37
37
|
},
|
38
38
|
"healthie": {
|
39
|
-
"readme": "# What is Healthie?\n\nHealthie offers infrastructure for next generation digital health organizations that provide virtual-first care. Healthie’s API-first and fully brandable suite of solutions (Scheduling, EMR, Client Engagement) enables healthcare builders to launch and scale best-in-class experiences for their members. Healthie also offers a built-in marketplace of business and clinical integrations used by our organizations.\n\nTo learn more, visit [www.gethealthie.com](www.gethealthie.com).\n\n## Healthie x Awell\n\nWith this extension, organizations are able to build clinical workflows in Awell’s low-code platform and easily integrate them into Healthie. By doing so, Healthie’s customers can automate routine clinical tasks, synchronize data between systems and drive seamless coordination between care team and patients.\n\nBy combining Healthie’s web and mobile platform with our clinical workflows, clinicians will be able to provide the right care, at the right time for the right patient.\n\n# Extension settings\n\nIn order to set up this extension, **you will need to provide a Healthie API key and Api url**. You can obtain an API key via the Healthie portal (`Settings > Developer > API keys`). You can obtain API url in the [DOCUMENTATION](https://docs.gethealthie.com/docs/#environments) in `Environments` section.\n\nPlease note that the extension automatically prefixes the API key with `Basic ` so please provide your raw API key without `Basic ` in front.\n\n# Custom Actions\n\n## Send chat message action\n\nSends a chat message to a patient in name of the provided provider ID. Will create a new conversation if no active conversation between patient and provider exists or sends a message in an existing conversation if there is an active conversation between the two.\n\n## Create patient\n\nCreates a new patient according to the passed fields. After completion the `healthiePatientId` will be exposed as a data point in the care flow.\n\n## Update patient\n\nUpdates a specific patient (defined by the provided `id`) according to the passed fields.\n\n## Apply tag to patient\n\nAdds a tag (existing one, identified by an `id`) to a patient. Although the Healthie API call allows assigning multiple tags per API call, for simplicity of the logic this action can only take one tag as input. Assigning multiple tags is possible by adding multiple actions.\n\n## Remove tag from patient\n\nRemoves a tag (identified by an `id`) from a patient.\n\n## Create charting note\n\nCreates a charting note with the provided `note_content`.\n\n**Prerequisites and set-up:**\n1. The form specified by the `form_id` exists in Healthie.\n2. The form specified by the `form_id` is a charting form (click \"Convert to charting form\" in the form options).\n3. The form contains at least one question of type `textarea` (long text answer). The action will write the content of the charting note in the first question of that type it finds in the form.\n\n## Send form completion request\n\nSend a form completion request to the patient. You will need the Healthie patient ID and the ID of the form you would like the patient to complete.\n\nAlthough the Healthie API call allows sending form completion requests to multiple users per API call (see recipient_ids in their docs), we decided that every action only sends one form completion request. This heavily simplifies the logic and better fits our domain model (1-to-1 relationship between patient and pathway). If a user would like to send multiple form completion requests, they you can just add multiple actions.\n\n## Archive patient\n\nArchives a patient with a given `id`.\n\n## Create location\n\nCreates a location. ID of the created location is stored as `locationId` data point.\n\n## Close chat conversation\n\nCloses chat conversation with a given `id` as a provider with the given `provider_id`.\n\n## Delete appointment\n\nDeletes an appointment with a given `id`.\n\n## Cancel appointment\n\nCancels an appointment with a given `id`.\n",
|
39
|
+
"readme": "---\ntitle: Healthie\ndescription: Healthie offers infrastructure for next generation digital health organizations that provide virtual-first care.\n---\n# What is Healthie?\n\nHealthie offers infrastructure for next generation digital health organizations that provide virtual-first care. Healthie’s API-first and fully brandable suite of solutions (Scheduling, EMR, Client Engagement) enables healthcare builders to launch and scale best-in-class experiences for their members. Healthie also offers a built-in marketplace of business and clinical integrations used by our organizations.\n\nTo learn more, visit [www.gethealthie.com](www.gethealthie.com).\n\n## Healthie x Awell\n\nWith this extension, organizations are able to build clinical workflows in Awell’s low-code platform and easily integrate them into Healthie. By doing so, Healthie’s customers can automate routine clinical tasks, synchronize data between systems and drive seamless coordination between care team and patients.\n\nBy combining Healthie’s web and mobile platform with our clinical workflows, clinicians will be able to provide the right care, at the right time for the right patient.\n\n# Extension settings\n\nIn order to set up this extension, **you will need to provide a Healthie API key and Api url**. You can obtain an API key via the Healthie portal (`Settings > Developer > API keys`). You can obtain API url in the [DOCUMENTATION](https://docs.gethealthie.com/docs/#environments) in `Environments` section.\n\nPlease note that the extension automatically prefixes the API key with `Basic ` so please provide your raw API key without `Basic ` in front.\n\n# Custom Actions\n\n## Send chat message action\n\nSends a chat message to a patient in name of the provided provider ID. Will create a new conversation if no active conversation between patient and provider exists or sends a message in an existing conversation if there is an active conversation between the two.\n\n## Create patient\n\nCreates a new patient according to the passed fields. After completion the `healthiePatientId` will be exposed as a data point in the care flow.\n\n## Update patient\n\nUpdates a specific patient (defined by the provided `id`) according to the passed fields.\n\n## Apply tag to patient\n\nAdds a tag (existing one, identified by an `id`) to a patient. Although the Healthie API call allows assigning multiple tags per API call, for simplicity of the logic this action can only take one tag as input. Assigning multiple tags is possible by adding multiple actions.\n\n## Remove tag from patient\n\nRemoves a tag (identified by an `id`) from a patient.\n\n## Create charting note\n\nCreates a charting note with the provided `note_content`.\n\n**Prerequisites and set-up:**\n1. The form specified by the `form_id` exists in Healthie.\n2. The form specified by the `form_id` is a charting form (click \"Convert to charting form\" in the form options).\n3. The form contains at least one question of type `textarea` (long text answer). The action will write the content of the charting note in the first question of that type it finds in the form.\n\n## Send form completion request\n\nSend a form completion request to the patient. You will need the Healthie patient ID and the ID of the form you would like the patient to complete.\n\nAlthough the Healthie API call allows sending form completion requests to multiple users per API call (see recipient_ids in their docs), we decided that every action only sends one form completion request. This heavily simplifies the logic and better fits our domain model (1-to-1 relationship between patient and pathway). If a user would like to send multiple form completion requests, they you can just add multiple actions.\n\n## Archive patient\n\nArchives a patient with a given `id`.\n\n## Create location\n\nCreates a location. ID of the created location is stored as `locationId` data point.\n\n## Close chat conversation\n\nCloses chat conversation with a given `id` as a provider with the given `provider_id`.\n\n## Delete appointment\n\nDeletes an appointment with a given `id`.\n\n## Cancel appointment\n\nCancels an appointment with a given `id`.\n",
|
40
40
|
"changelog": "# Healthie changelog\n\n## May 2023\n\n- New webhooks added: `appliedTagCreated`, `appliedTagDeleted`, `appointmentDeleted`, `appointmentUpdated`, `formAnswerGroupCreated`, `formAnswerGroupDeleted`, `formAnswerGroupLocked`, `formAnswerGroupSigned`, `labOrderCreated`, `labOrderUpdated`, `messageCreated`, `messageDeleted`, `metricEntryCreated`, `metricEntryDeleted`, `metricEntryUpdated`, `patientUpdated`, `requestFormCompletionCreated`, `requestFormCompletionDeleted`, `requestFormCompletionUpdated`, `taskCreated`, `taskDeleted`, `taskUpdated`\n\n## April 2023\n\n- Create task action: now also adds support for reminders.\n"
|
41
41
|
},
|
42
42
|
"hello-world": {
|
43
|
-
"readme": "# Hello world extension",
|
43
|
+
"readme": "---\ntitle: Hello world\ndescription: This is an example extension.\n---\n# Hello world extension",
|
44
44
|
"changelog": "# Hello world changelog"
|
45
45
|
},
|
46
46
|
"mailchimp": {
|
47
|
-
"readme": "# Mailchimp\n\nMailchimp is an all-in-one marketing platform that helps businesses of all sizes to design, send, and manage email campaigns, automate marketing tasks, and build customer relationships. \n\nIt offers a user-friendly interface that allows users to create custom email templates, segment their audience, and track their email campaign's performance with real-time analytics.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide a:\n\n1. API key\n2. From name\n3. From email\n\n## Custom Actions\n\n### Send email\n\nAllows for sending a plain email to a recipient.\n\n### Send email with a template\n\nAllows for sending an email based on a template to a recipient. You can also insert variables so they are rendered in your template.\n",
|
47
|
+
"readme": "---\ntitle: Mailchimp\ndescription: Mailchimp is an all-in-one marketing platform that helps businesses of all sizes to design, send, and manage email campaigns, automate marketing tasks, and build customer relationships. \n---\n# Mailchimp\n\nMailchimp is an all-in-one marketing platform that helps businesses of all sizes to design, send, and manage email campaigns, automate marketing tasks, and build customer relationships. \n\nIt offers a user-friendly interface that allows users to create custom email templates, segment their audience, and track their email campaign's performance with real-time analytics.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide a:\n\n1. API key\n2. From name\n3. From email\n\n## Custom Actions\n\n### Send email\n\nAllows for sending a plain email to a recipient.\n\n### Send email with a template\n\nAllows for sending an email based on a template to a recipient. You can also insert variables so they are rendered in your template.\n",
|
48
48
|
"changelog": "# Mailchimp changelog"
|
49
49
|
},
|
50
50
|
"mailgun": {
|
51
|
-
"readme": "# Mailgun\n\nMailgun is a cloud-based email delivery service that allows businesses and developers to send, receive, and track email messages. It provides a powerful set of APIs that enable users to integrate email into their applications, automate email delivery, and improve deliverability rates. \n\nWith Mailgun, users can send transactional emails as well as marketing emails, newsletters, and other types of bulk email. The platform also offers real-time email analytics and tools to manage unsubscribes and bounces. Overall, Mailgun provides a reliable and scalable solution for businesses and developers to handle their email needs.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide a:\n\n1. Mailgun API key\n2. Mailgun domain\n3. From name\n4. From email\n\n## Custom Actions\n\n### Send email\n\nAllows for sending a plain email to a recipient.\n\n### Send email with a template\n\nAllows for sending an email based on a template to a recipient. You can also insert variables so they are rendered in your template.\n",
|
51
|
+
"readme": "---\ntitle: Mailgun\ndescription: Mailgun is a cloud-based email delivery service that allows businesses and developers to send, receive, and track email messages.\n---\n# Mailgun\n\nMailgun is a cloud-based email delivery service that allows businesses and developers to send, receive, and track email messages. It provides a powerful set of APIs that enable users to integrate email into their applications, automate email delivery, and improve deliverability rates. \n\nWith Mailgun, users can send transactional emails as well as marketing emails, newsletters, and other types of bulk email. The platform also offers real-time email analytics and tools to manage unsubscribes and bounces. Overall, Mailgun provides a reliable and scalable solution for businesses and developers to handle their email needs.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide a:\n\n1. Mailgun API key\n2. Mailgun domain\n3. From name\n4. From email\n\n## Custom Actions\n\n### Send email\n\nAllows for sending a plain email to a recipient.\n\n### Send email with a template\n\nAllows for sending an email based on a template to a recipient. You can also insert variables so they are rendered in your template.\n",
|
52
52
|
"changelog": "# Mailgun changelog"
|
53
53
|
},
|
54
54
|
"math": {
|
55
|
-
"readme": "# Math\n\nThis extension adds custom actions to your care flow for simple mathematical operations.\n\n## Custom Actions\n\n### Generate random number\n\nGenerates a random (whole) number that falls between the ranges of two numbers [min, max].\n\n### Calculate date difference\n\nCalculate the difference between two dates where \"date left\" is the minuend and \"date right\" the subtrahend.\n\n**You can choose the unit in which you would like to see the difference expressed:**\n\n1. Seconds: get the number of seconds between the given dates. Fractional seconds are truncated towards zero.\n2. Minutes: get the signed number of full (rounded towards 0) minutes between the given dates. Fractional minutes are truncated towards zero.\n3. Hours: get the number of hours between the given dates. Fractional hours are truncated towards zero.\n4. Days: get the number of full day periods between two dates. Fractional days are truncated towards zero.\n5. Weeks: get the number of full weeks between two dates. Fractional weeks are truncated towards zero.\n6. Months: get the number of full months between the given dates. Fractional months are truncated towards zero.\n7. Years: get the number of full years between the given dates.\n",
|
55
|
+
"readme": "---\ntitle: Math\ndescription: This extension adds custom actions to your care flow for simple mathematical operations.\n---\n# Math\n\nThis extension adds custom actions to your care flow for simple mathematical operations.\n\n## Custom Actions\n\n### Generate random number\n\nGenerates a random (whole) number that falls between the ranges of two numbers [min, max].\n\n### Calculate date difference\n\nCalculate the difference between two dates where \"date left\" is the minuend and \"date right\" the subtrahend.\n\n**You can choose the unit in which you would like to see the difference expressed:**\n\n1. Seconds: get the number of seconds between the given dates. Fractional seconds are truncated towards zero.\n2. Minutes: get the signed number of full (rounded towards 0) minutes between the given dates. Fractional minutes are truncated towards zero.\n3. Hours: get the number of hours between the given dates. Fractional hours are truncated towards zero.\n4. Days: get the number of full day periods between two dates. Fractional days are truncated towards zero.\n5. Weeks: get the number of full weeks between two dates. Fractional weeks are truncated towards zero.\n6. Months: get the number of full months between the given dates. Fractional months are truncated towards zero.\n7. Years: get the number of full years between the given dates.\n",
|
56
56
|
"changelog": "# Math changelog"
|
57
57
|
},
|
58
58
|
"messagebird": {
|
59
|
-
"readme": "# MessageBird\n\nMessageBird is a cloud-based SMS marketing platform designed to help businesses engage with customers across a variety of channels including WhatsApp, voice, live chat and more.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide a MessageBird [API key](https://developers.messagebird.com/quickstarts/voice-calling/test-credits-api-keys/#get-your-api-keys) and [report URL](https://support.messagebird.com/hc/en-us/articles/360001854898-Receiving-Delivery-Reports-DLRs-#:~:text=To%20configure%20the%20status%20report,need%20to%20be%20sent%20to.) (only required if you want to use WhatsApp messaging).\n\n## Custom Actions\n\n### Send SMS\n\nMessageBird's Programmable SMS API enables you to programmatically send SMS messages from within a care flow.\n\n[Read the official documentation](https://developers.messagebird.com/api/sms-messaging/#send-outbound-sms)\n\n### Send voice (text-to-speech) message\n\nMessageBird's Voice Messaging API enables you to transform text messages into voice messages to any country.\n\n[Read the official documentation](https://developers.messagebird.com/api/voice-messaging/#send-a-voice-message)\n\n### Send WhatsApp message\n\nSend a message to a recipient via WhatsApp. If an active conversation already exists for the recipient, the conversation will be resumed. In case there's no active conversation a new one is created.\n\n[Learn how to get started with MessageBird and WhatsApp](https://messagebird.com/omnichannel/whatsapp)",
|
59
|
+
"readme": "---\ntitle: MessageBird\ndescription: MessageBird is a cloud-based SMS marketing platform designed to help businesses engage with customers across a variety of channels including WhatsApp, voice, live chat and more.\n---\n# MessageBird\n\nMessageBird is a cloud-based SMS marketing platform designed to help businesses engage with customers across a variety of channels including WhatsApp, voice, live chat and more.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide a MessageBird [API key](https://developers.messagebird.com/quickstarts/voice-calling/test-credits-api-keys/#get-your-api-keys) and [report URL](https://support.messagebird.com/hc/en-us/articles/360001854898-Receiving-Delivery-Reports-DLRs-#:~:text=To%20configure%20the%20status%20report,need%20to%20be%20sent%20to.) (only required if you want to use WhatsApp messaging).\n\n## Custom Actions\n\n### Send SMS\n\nMessageBird's Programmable SMS API enables you to programmatically send SMS messages from within a care flow.\n\n[Read the official documentation](https://developers.messagebird.com/api/sms-messaging/#send-outbound-sms)\n\n### Send voice (text-to-speech) message\n\nMessageBird's Voice Messaging API enables you to transform text messages into voice messages to any country.\n\n[Read the official documentation](https://developers.messagebird.com/api/voice-messaging/#send-a-voice-message)\n\n### Send WhatsApp message\n\nSend a message to a recipient via WhatsApp. If an active conversation already exists for the recipient, the conversation will be resumed. In case there's no active conversation a new one is created.\n\n[Learn how to get started with MessageBird and WhatsApp](https://messagebird.com/omnichannel/whatsapp)",
|
60
60
|
"changelog": "# MessageBird changelog"
|
61
61
|
},
|
62
62
|
"metriport": {
|
63
|
-
"readme": "# Metriport\n\nMetriport is Plaid for healthcare data. We help digital health companies access and manage patient health and medical data, through an open-source and universal API.\n\nThrough a single integration, our API enables modern health companies to get the comprehensive patient data they need from both HIEs and EHRs, as well as popular wearable devices.\n\nAs a developer-first interoperability solution, Metriport is powering the next wave of innovative companies, accelerating a revolution in digital health.\n\nTo learn more visit [https://www.metriport.com/](https://www.metriport.com/)\n# Extension settings\n\nIn order to set up this extension, **you will need to provide a Metriport API key**. You can obtain an API key via the Metriport dashboard by selecting the `Developers tab`. To learn more on how to get started with Metriport visit our [quick start docs](https://docs.metriport.com/medical-api/getting-started/quickstart) for our Medical API. Also, to better understand how our API keys work check out the [API Keys section](https://docs.metriport.com/home/api-info/api-keys) of our docs as well.\n\n# Custom Actions\n\n**GENERAL NOTE: Make sure to create Organizations and Facilities in Metriport before using this extension. A Patient must be associated with a Facility by providing the facilityId when stated in the actions.**\n\n## Create Patient\n\nCreates a Patient in Metriport for the specified Facility where the Patient is receiving care.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/patient/create-patient) for more info.\n\n## Update Patient\n\nUpdates the specified Patient.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/patient/update-patient) for more info.\n\n## Get Patient\n\nRetrieves the specified Patient.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/patient/get-patient) for more info.\n\n## Remove Patient\n\nRemoves a Patient at Metriport and at HIEs the Patient is linked to.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/patient/delete-patient) for more info.\n\n## List Documents\n\nLists all Documents that can be retrieved for a Patient.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/document/list-documents) for more info.\n\n**NOTE: It also returns the status of querying Document references across HIEs, indicating whether there is an asynchronous query in progress (status processing) or not (status completed). If the query is in progress, you will also receive the total number of Documents to be queried as well as the ones that have already been completed.**\n\n## Query Documents\n\nTriggers a Document query for the specified Patient across HIEs.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/document/start-document-query) for more info.\n\n**NOTE: When executed, this endpoint triggers an asynchronous Document query with HIEs and immediately returns the status of Document query, processing .**\n\n## Get Document Url\n\nGets a presigned URL for downloading the specified Document.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/document/get-document) for more info.\n\n**NOTE: This endpoint returns a URL which you can use to download the specified Document using the file name provided from the List Documents endpoint.**\n\n## More Info\n\nFor more information on how to integrate with Metriport please visit our [Medical API docs](https://docs.metriport.com/medical-api/getting-started/quickstart)\n",
|
63
|
+
"readme": "---\ntitle: Metriport\ndescription: Metriport is Plaid for healthcare data.\n---\n# Metriport\n\nMetriport is Plaid for healthcare data. We help digital health companies access and manage patient health and medical data, through an open-source and universal API.\n\nThrough a single integration, our API enables modern health companies to get the comprehensive patient data they need from both HIEs and EHRs, as well as popular wearable devices.\n\nAs a developer-first interoperability solution, Metriport is powering the next wave of innovative companies, accelerating a revolution in digital health.\n\nTo learn more visit [https://www.metriport.com/](https://www.metriport.com/)\n# Extension settings\n\nIn order to set up this extension, **you will need to provide a Metriport API key**. You can obtain an API key via the Metriport dashboard by selecting the `Developers tab`. To learn more on how to get started with Metriport visit our [quick start docs](https://docs.metriport.com/medical-api/getting-started/quickstart) for our Medical API. Also, to better understand how our API keys work check out the [API Keys section](https://docs.metriport.com/home/api-info/api-keys) of our docs as well.\n\n# Custom Actions\n\n**GENERAL NOTE: Make sure to create Organizations and Facilities in Metriport before using this extension. A Patient must be associated with a Facility by providing the facilityId when stated in the actions.**\n\n## Create Patient\n\nCreates a Patient in Metriport for the specified Facility where the Patient is receiving care.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/patient/create-patient) for more info.\n\n## Update Patient\n\nUpdates the specified Patient.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/patient/update-patient) for more info.\n\n## Get Patient\n\nRetrieves the specified Patient.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/patient/get-patient) for more info.\n\n## Remove Patient\n\nRemoves a Patient at Metriport and at HIEs the Patient is linked to.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/patient/delete-patient) for more info.\n\n## List Documents\n\nLists all Documents that can be retrieved for a Patient.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/document/list-documents) for more info.\n\n**NOTE: It also returns the status of querying Document references across HIEs, indicating whether there is an asynchronous query in progress (status processing) or not (status completed). If the query is in progress, you will also receive the total number of Documents to be queried as well as the ones that have already been completed.**\n\n## Query Documents\n\nTriggers a Document query for the specified Patient across HIEs.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/document/start-document-query) for more info.\n\n**NOTE: When executed, this endpoint triggers an asynchronous Document query with HIEs and immediately returns the status of Document query, processing .**\n\n## Get Document Url\n\nGets a presigned URL for downloading the specified Document.\n\nVisit [endpoint docs](https://docs.metriport.com/medical-api/api-reference/document/get-document) for more info.\n\n**NOTE: This endpoint returns a URL which you can use to download the specified Document using the file name provided from the List Documents endpoint.**\n\n## More Info\n\nFor more information on how to integrate with Metriport please visit our [Medical API docs](https://docs.metriport.com/medical-api/getting-started/quickstart)\n",
|
64
64
|
"changelog": "# Metriport changelog"
|
65
65
|
},
|
66
66
|
"sendgrid-extension": {
|
67
|
-
"readme": "# Sendgrid\n\nSendGrid is a cloud-based email delivery platform that provides services for sending and managing email campaigns, transactional emails, and other types of messages.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide:\n\n1. An API key\n2. A from name\n3. A from email\n\n## Custom Actions\n\n### Send email\n\nAllows for sending a plain email to a recipient.\n\n### Send email with a template\n\nAllows for sending an email based on a template to a recipient. You can also insert variables so they are rendered in your template.\n\n### Add or update contact\n\nAllows adding or updating contacts. The contact to update will be determined only by the email field and any fields omitted from the request will remain as they were. A contact's ID cannot be used to update the contact.\n\nPlease note that custom fields need to have been already created if you wish to set their values for the contacts being upserted. To do this, please use the \"Create Custom Field Definition\" endpoint. They also can be created in **Marketing -> Custom Fields** section in Sendgrid.\n\n### Add and remove emails from suppression lists\n\nSuppression lists ([link on SendGrid's website](https://docs.sendgrid.com/api-reference/suppressions-suppressions/add-suppressions-to-a-suppression-group)) are unsubscribe groups. Use these actions to add an email address to any number of unsubscribe groups. You can apply a suppression add/remove to multiple groups by using comma-separated lists for the groups. Only a single email can be used. **This functionality is different from SendGrid's API, which allows multiple email addresses for a single group**.\n\n### Check an import status\n\nAllows user to check the status of contact import jobs when given a jobID. Statuses are either: `pending`, `completed`, `failed`, or `errored`.",
|
67
|
+
"readme": "---\ntitle: Sendgrid\ndescription: SendGrid is a cloud-based email delivery platform that provides services for sending and managing email campaigns, transactional emails, and other types of messages.\n---\n# Sendgrid\n\nSendGrid is a cloud-based email delivery platform that provides services for sending and managing email campaigns, transactional emails, and other types of messages.\n\n## Extension settings\n\nIn order to set up this extension, you will need to provide:\n\n1. An API key\n2. A from name\n3. A from email\n\n## Custom Actions\n\n### Send email\n\nAllows for sending a plain email to a recipient.\n\n### Send email with a template\n\nAllows for sending an email based on a template to a recipient. You can also insert variables so they are rendered in your template.\n\n### Add or update contact\n\nAllows adding or updating contacts. The contact to update will be determined only by the email field and any fields omitted from the request will remain as they were. A contact's ID cannot be used to update the contact.\n\nPlease note that custom fields need to have been already created if you wish to set their values for the contacts being upserted. To do this, please use the \"Create Custom Field Definition\" endpoint. They also can be created in **Marketing -> Custom Fields** section in Sendgrid.\n\n### Add and remove emails from suppression lists\n\nSuppression lists ([link on SendGrid's website](https://docs.sendgrid.com/api-reference/suppressions-suppressions/add-suppressions-to-a-suppression-group)) are unsubscribe groups. Use these actions to add an email address to any number of unsubscribe groups. You can apply a suppression add/remove to multiple groups by using comma-separated lists for the groups. Only a single email can be used. **This functionality is different from SendGrid's API, which allows multiple email addresses for a single group**.\n\n### Check an import status\n\nAllows user to check the status of contact import jobs when given a jobID. Statuses are either: `pending`, `completed`, `failed`, or `errored`.",
|
68
68
|
"changelog": "# Sendgrid changelog\n\n## July 7, 2023\n\nAdded \"Add Email to Suppression Lists\" and \"Remove Email from Suppression Lists\" actions.\n\n## July 15, 2023\n\nUpdated \"Add or Update Contact\" acction to create a datapoint of the Job ID.\n\nAdded \"Check Import Status\" action.\n\n## July 27, 2023\n\nAdds \"Finished At\" data point to the importStatus action."
|
69
69
|
},
|
70
70
|
"twilio": {
|
71
|
-
"readme": "# Twilio\n\nTwilio is a customer engagement platform used by hundreds of thousands of businesses and more than ten million developers worldwide to build unique, personalized experiences for their customers.\n\nThey are known for democratizing channels like voice, text, chat, video, and email through APIs, making it easy for every organization to build meaningful interactions with customers on the channels they prefer.\n\n## Extension settings\n\nIn order to set up this extension, you will need:\n\n1. A Twilio API key or auth token which can be found in the Twilio console.\n2. Your account SID which can be found in the Twilio console.\n3. A phone number to send the message from. This must be a Twilio phone number that you own.\n\n## Custom Actions\n\n### Send SMS\n\nSend an SMS with Twilio to a recipient of your liking.\n",
|
71
|
+
"readme": "---\ntitle: Twilio\ndescription: Twilio is a customer engagement platform used by hundreds of thousands of businesses and more than ten million developers worldwide to build unique, personalized experiences for their customers.\n---\n# Twilio\n\nTwilio is a customer engagement platform used by hundreds of thousands of businesses and more than ten million developers worldwide to build unique, personalized experiences for their customers.\n\nThey are known for democratizing channels like voice, text, chat, video, and email through APIs, making it easy for every organization to build meaningful interactions with customers on the channels they prefer.\n\n## Extension settings\n\nIn order to set up this extension, you will need:\n\n1. A Twilio API key or auth token which can be found in the Twilio console.\n2. Your account SID which can be found in the Twilio console.\n3. A phone number to send the message from. This must be a Twilio phone number that you own.\n\n## Custom Actions\n\n### Send SMS\n\nSend an SMS with Twilio to a recipient of your liking.\n",
|
72
72
|
"changelog": "# Twilio changelog\n\n## v2 2023-06-23\n\nFull description: https://github.com/awell-health/awell-extensions/issues/157\n\n1. \"Send SMS\" action\n 1. Change label from \"Send SMS\" to \"Send SMS (with from number)\"\n 2. Throw error when \"From\" number in both settings and in fields is not provided\n2. Add new action \"Send SMS (with Messaging Service)\"\n\n## v2\n\nCompared to v1 (pre-beta release), the extension only has one custom action \"Send SMS\" instead of two. The Custom Action allows for:\n\n1. Sending a text message to a recipient (phone number) stored in a data point, including patient profile data points.\n2. Sending a text message to a fixed recipient (phone number).\n"
|
73
73
|
},
|
74
74
|
"wellinks": {
|
75
|
-
"readme": "# Wellinks Extension\n\nThe purpose of this extension is to keep application logic out of the Pathways and Tracks. Some actions require interactions with the Healthie API, hence the need for the API URL and Key in the settings.\n\n## Extension Settings\n\nYou will need to provide the API URL and Key for the Wellinks Healthie instance.\n\n# Custom Actions\n\n## Check for Override\n\nChecks to see if the patient in Healthie has an active Override form.\n\n## Check for Scheduled Appointments\n\nChecks to see if the patient in Healthie has an appointment of a specific type scheduled in the future.\n\n## Check for Chat\n\nChecks that a Chat message (either to or from a patient and coach) has happened at least 24 hours after an appointment\n\n## Insert Member List Event\n\nAdds an Insert Member List Event to the Platform Database.\n\n",
|
75
|
+
"readme": "---\ntitle: Wellinks\ndescription: The purpose of this extension is to keep application logic out of the Pathways and Tracks. Some actions require interactions with the Healthie API, hence the need for the API URL and Key in the settings.\n---\n# Wellinks Extension\n\nThe purpose of this extension is to keep application logic out of the Pathways and Tracks. Some actions require interactions with the Healthie API, hence the need for the API URL and Key in the settings.\n\n## Extension Settings\n\nYou will need to provide the API URL and Key for the Wellinks Healthie instance.\n\n# Custom Actions\n\n## Check for Override\n\nChecks to see if the patient in Healthie has an active Override form.\n\n## Check for Scheduled Appointments\n\nChecks to see if the patient in Healthie has an appointment of a specific type scheduled in the future.\n\n## Check for Chat\n\nChecks that a Chat message (either to or from a patient and coach) has happened at least 24 hours after an appointment\n\n## Insert Member List Event\n\nAdds an Insert Member List Event to the Platform Database.\n\n",
|
76
76
|
"changelog": "# Wellinks Changelog\n\n## May 18th, 2023\n\nAdded the checkForOverride action.\n\n## May 19th, 2023\n\nAdded the checkForScheduledAppointment action.\n\n## May 25th, 2023\n\nAdded datapoints for actions\n\n\n## July 6th, 2023\n\nAdded new action to unenroll user from Sendgrid.\n\n## July 16th, 2023\n\nAdded a new action to insert a Member Event List to the Platform DB. This requires setting the platform API URL and API Key values for the extension."
|
77
77
|
}
|
78
78
|
}
|