---
title: "Send a practitioner credentialing outreach email"
method: POST
path: "/credentialing-outreaches"
tags: ["Credentialing Outreach Resource"]
---

# Send a practitioner credentialing outreach email

`POST /credentialing-outreaches`

Sends a credentialing outreach email for a practitioner workflow via SendGrid and persists an outreach record in the DAL. Call this after a practitioner credentialing workflow is active and you need to contact one or more recipients; for facility credentialing outreach, use the facility-specific outreach endpoint instead. The request body must include at least one recipient in `toEmails`. For a single-workflow outreach, supply `workflowId`. For a multi-workflow (multi-tenant) outreach, supply `workflowIds` (two or more entries) and `initiatingWorkflowId`, which must be a member of `workflowIds`; attachments are not permitted on multi-workflow requests. Multi-tenant outreach must be enabled via the OUTREACH_MULTI_TENANT_ENABLED feature flag; when disabled, a multi-workflow request returns 503. This operation is not idempotent - each call dispatches a new email via SendGrid and persists a new outreach record.

## Headers

- `tenant-id` string, required

## Request body

- SendCredentialingOutreachRequest — Request body for sending a credentialing outreach email
  - `workflowId` string — The workflow ID for the credentialing outreach. Required for single-workflow requests. When workflowIds is provided with more than one entry, this field is optional.
  - `workflowIds` string[] — List of workflow IDs for multi-tenant outreach. When more than one entry is provided, initiatingWorkflowId must also be set. Single-workflow requests should leave this null and use workflowId instead.
  - `initiatingWorkflowId` string — The workflow ID of the initiating org for multi-tenant outreach. Required when workflowIds contains more than one entry. Must be present in the workflowIds list. The initiating workflow's tenant outreach-settings template is applied to all bundled workflows.
  - `toEmails` string[], required — List of email addresses to send the outreach email to
  - `body` string, required — Email body content
  - `ccEmails` string[] — Optional list of CC email addresses
  - `bccEmails` string[] — Optional list of BCC email addresses
  - `outreachReasons` string[], required — List of reasons for the outreach
  - `outreachReasonsWithLabels` OutreachReasonWithLabel[] — List of outreach reasons with their display labels. When provided, labels are persisted with the outreach record.
    - `id` string — Unique identifier for the outreach reason
    - `label` string — Display label for the outreach reason
  - `subject` string, required — Email subject line
  - `attachments` AttachmentDTO[] — Optional list of email attachments
    - `filename` string, required
    - `content` string, binary, required
    - `contentType` string, required
  - `multiTenant` boolean

## Response `201`

Outreach email sent successfully. The response body shape depends on the request type: a single-workflow request (workflowId supplied) returns a bare string containing the created outreach record ID; a multi-workflow request (workflowIds with more than one entry) returns a MultiTenantOutreachResult object with an outreachId and a sends array describing the per-workflow send status.

## Other responses

- `400` — The request failed validation: toEmails is empty, both workflowId and workflowIds are missing, initiatingWorkflowId is missing or not a member of workflowIds for a multi-workflow request, or attachments were supplied on a multi-workflow request. The response body shape differs by cause: bean-validation failures (e.g. empty toEmails) return the ApiError shape; the workflowId/initiatingWorkflowId business-rule checks return a {code, message} object instead.
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `422` — The initiating tenant's outreach-settings template is missing or incomplete for the outreach type and credentialing cycle being sent; configure the template before retrying.
- `500` — Internal Server Error - An unexpected error occurred. The body is a plain string, not the ApiError shape.
- `503` — A multi-workflow request was made but the OUTREACH_MULTI_TENANT_ENABLED feature flag is disabled in this environment.

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/563848e0ecc0/schema)
