# AI Templates

Reusable AI-driven message templates. Templates render personalized content for a given contact and sender profile, optionally calling an LLM to generate the body.

 - [GET /flows/api/ai-templates](https://api.grinfi.io/openapi/ai-templates/listaitemplates.md): List all AI templates (reusable AI-driven message snippets) for the team.
 - [POST /flows/api/ai-templates](https://api.grinfi.io/openapi/ai-templates/createaitemplate.md): Create a reusable message template. Templates are referenced from flow nodes by their `uuid` (the `template_uuid` field on `linkedin_send_message`, `email_send_message`, etc.). **`is_public` is requir
 - [GET /flows/api/ai-templates/{uuid}](https://api.grinfi.io/openapi/ai-templates/getaitemplate.md): Retrieve a single AI template by UUID, including its prompt and LLM config.
 - [PUT /flows/api/ai-templates/{uuid}](https://api.grinfi.io/openapi/ai-templates/updateaitemplate.md): Update fields on an existing AI template.
 - [DELETE /flows/api/ai-templates/{uuid}](https://api.grinfi.io/openapi/ai-templates/deleteaitemplate.md): Delete an AI template. Returns `204`; the deletion takes effect (the template disappears from the web app). **Known issue:** deletion appears to be a soft-delete that the API read path does not filter
 - [POST /flows/api/ai-templates/render](https://api.grinfi.io/openapi/ai-templates/renderaitemplate.md): Render a template for a specific contact and sender profile. The simplest usage is to pass an existing template `uuid` along with `lead_uuid` and `sender_profile_uuid` — the saved template configurati
