# POST /forms/send

**Resource:** [Forms](./forms.md)  
**Scopes:** `forms:send`  
**Write operation:** yes

Send a form to a recipient via email. Costs 3 credits. At least one of deal_id, contact_id, or customer_id is required to link the submission to a CRM entity. CRM Variable Injection fires on submission when any linkage is set -- deal.* wirings are skipped if no deal_id is provided, but contact.* and account.* wirings fire against the submission-level contact/customer. Notification cascade: notify_emails (this call) -> template notifyEmails -> workspace form_completion_notify_emails -> sender fallback.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `template_id` | body | uuid | yes | Form template ID |
| `recipient_email` | body | string | yes | Recipient email address |
| `recipient_name` | body | string | yes | Recipient full name |
| `deal_id` | body | uuid | no | Link to an opportunity. Preferred when the form is opportunity-scoped. Enables all CRM variable wirings including deal.* fields. |
| `contact_id` | body | uuid | no | Link to a contact. Use for standalone client-profile forms where no opportunity exists. contact.* and account.* wirings still fire. |
| `customer_id` | body | uuid | no | Link to a customer (account). account.* wirings fire even without a deal_id. |
| `personal_message` | body | string | no | Personal message included in the email |
| `expires_in_days` | body | number | no | Days before the form link expires |
| `notify_emails` | body | string[] | no | Email addresses to notify when this form is completed. Overrides template-level notifyEmails for this specific submission. Falls back to template notifyEmails, then workspace form_completion_notify_emails, then the sending user. |

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`