Bot Deploy
Medplum Bots can be deployed using the $deploy
operation.
If you're not familiar with Medplum Bots, you may want to review the Bot Basics documentation first.
Invoke $deploy
Operation
To use the $deploy
operation, you will need to make a POST
request with the Bot's id
. Additionally, the $deploy
operation takes two body parameters:
filename
: The name of the file the bot is stored in. If left blank, it will default toindex.js
.code
: The bot's code that will be executed when it is run.
- Typescript
- CLI
- cURL
await medplum.post(medplum.fhirUrl('Bot', '[id]', '$deploy').toString(), {
filename: 'hello-patient.js',
// eslint-disable-next-line no-template-curly-in-string
code: "import { BotEvent, MedplumClient } from '@medplum/core';\nimport { Patient } from '@medplum/fhirtypes';\n\nexport async function handler(medplum: MedplumClient, event: BotEvent): Promise<any> {\n const patient = event.input as Patient;\n const firstName = patient.name?.[0]?.given?.[0];\n const lastName = patient.name?.[0]?.family;\n console.log(`Hello ${firstName} ${lastName}!`);\n return true;\n}\n",
});
medplum post 'Bot/[id]/$deploy' '{ "filename": "hello-patient.js", "code": "import { BotEvent, MedplumClient } from '@medplum/core';\nimport { Patient } from '@medplum/fhirtypes';\n\nexport async function handler(medplum: MedplumClient, event: BotEvent): Promise<any> {\n const patient = event.input as Patient;\n const firstName = patient.name?.[0]?.given?.[0];\n const lastName = patient.name?.[0]?.family;\n console.log(`Hello ${firstName} ${lastName}!`);\n return true;\n}\n" }'
curl 'https://api.medplum.com/fhir/R4/Bot/[id]/$deploy' \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MY_ACCESS_TOKEN" \
-d '{"filename":"hello-patient.js","code":"import { BotEvent, MedplumClient } from '@medplum/core';\nimport { Patient } from '@medplum/fhirtypes';\n\nexport async function handler(medplum: MedplumClient, event: BotEvent): Promise<any> {\n const patient = event.input as Patient;\n const firstName = patient.name?.[0]?.given?.[0];\n const lastName = patient.name?.[0]?.family;\n console.log(`Hello ${firstName} ${lastName}!`);\n return true;\n}\n"}'
Related Documentation
To learn more about more about Bots and deploying them, see the Bots In Production docs.