Aesthetix CRM gives your workflows a set of built-in AI actions that read text, generate text, classify it, translate it, pull structured data out of it, or run a whole multi-step task on your behalf. You drop these actions into a workflow the same way you drop in a Send Email or Update Contact step. Each one produces an output you can reference in any later step, so the AI result can flow into an email, an SMS, a custom field, a task, or a branch.
This guide documents the workflow-action mechanics: what each action does, every field you configure, and how to reference the output downstream. Most of these are premium actions and may require add-on access or incur a per-execution charge. That is noted on each action below.
A practical accuracy note for medical aesthetics: keep AI actions on non-clinical, non-PHI text. Good fits are summarizing a lead inquiry, translating a marketing reply, classifying the sentiment of a review, or extracting a requested treatment name from a form. Do not route protected health information through these actions, and always review AI-generated output before it reaches a patient.
The setup pattern is the same for every action in this guide:
Go to Automations > Workflows.
Create a new workflow or open an existing one.
Add a relevant trigger (for example, Form Submitted, Contact Created, or Customer Replied).
Click the + icon (or the Please select action placeholder) at the point in the canvas where you want the AI step.
Search for the action by name, or browse the AI Actions category, and select it.
Give the action a clear Action Name so it is easy to identify later.
Configure the action's fields (covered per action below).
Click Save Action.
Once saved, the action's output becomes available as a custom value you can insert into any later step using the variable picker (the tag icon).
Premium action. May require add-on access.
The AI Agent action plans and carries out a multi-step task from plain-language instructions and the tools you make available to it. Instead of building each step manually (find a contact, generate a booking link, format a date, send a follow-up), you configure one AI Agent action and it decides what to do, which tools to use, and what inputs to provide while it runs. Use it when a workflow needs flexible decision-making, dynamic tool usage, or several actions completed in sequence.
Action Name: A custom name for the step. Default is AI Agent. Renaming it for the use case keeps the workflow readable.
Template: Choose a pre-built template that prefills the Instructions and Tools fields, or choose Build Your Own to start from scratch. Some templates require a specific trigger; if that trigger is not present in the workflow, the template appears unavailable until you add it. Templates available include: Build Your Own, Form Lead Follow Up, No Show Appointment Recovery, Facebook Lead Nurturing, Stale Deal Nudge Agent, Lead Research & Enrichment, New Appointment: Enrich & Confirm, Quiz Lead Scoring & Routing, Call Transcript Summary & Action Items, Task Creation from Won Deals, Instagram Comment-to-DM, Facebook Comment-to-DM, and Lead Pipeline Tracker. Applying a template does not lock you in; you can edit the instructions, change the model, add or remove tools, and adjust advanced options afterward.
Instructions: Defines what the agent does, how it reasons, and how it uses the tools you provide. This is the most important part of the setup. Strong instructions usually include a role statement, context about the trigger data available, a step-by-step process, decision logic written as if/then rules, messaging guidelines, and constraints for what the agent should avoid. The editor supports rich text: headings, bold, bullet and numbered lists, code blocks, and block quotes.
Enhance Prompt: Restructures loosely written instructions into a more detailed, organized prompt with clearer steps and edge-case handling. You can undo the enhancement if you do not like the result.
Model: Selects the AI model that powers the agent. Use a general-purpose model for most tasks, a higher "thinking" tier for complex logic, and a lightweight model when speed matters more than depth.
Tools: The actions the agent is allowed to perform. Click + Add Tool to open the tool picker, which is organized by category and searchable by name. Each selected tool appears in the panel and is configured individually. For each tool you control how field values are filled:
Let AI decide all field values: ON lets the agent generate every field value at runtime from your instructions and the workflow data.
Let AI decide all field values: OFF lets you set some values yourself while the agent fills any you leave blank.
Each field also has its own toggle, so you can mix AI-generated and manually set values within a single tool.
Conversation Memory: Off by default. When enabled, the agent keeps a rolling summary of past runs for the same contact on that step, so it can adapt across repeated visits. Turn it on for recurring or multi-touch workflows (periodic follow-up); leave it off for one-time workflows (a single form follow-up).
Output Format: Controls whether the agent returns data that later steps can use.
None: Performs actions but returns no structured output for downstream steps.
Text: Returns a free-text response. Selecting this reveals an Output Description field where you describe what the response should contain.
JSON: Returns structured data based on a schema you define. Add properties with a name, type, and optional description so the output is easy to reference later.
Inputs come from the workflow trigger and any custom values you reference in the instructions. The output depends on the Output Format you choose: nothing (None), a single text value (Text), or named fields (JSON). With Text or JSON selected, the result is available as a custom value in later steps, so you can drop the agent's answer into an email, SMS, note, or branch condition.
A new prospective patient submits a consultation form. One AI Agent action, using the Form Lead Follow Up template, reads the form, drafts a personalized reply that references the treatment they asked about, generates a booking link, and creates a follow-up task for the front desk, all in a single step.
You can add up to 10 tools per agent. Internal helper tools such as Date Calculator and Math Operations do not count toward that limit.
AI Agent works with any workflow trigger. Templates may recommend a specific trigger only because their instructions are written for that context.
After a run, open the Execution Logs tab in the workflow builder and select the AI Agent execution to review the trace: the agent input, each model call, and each tool execution with its run time and success or failure status. You can expand any step to see input and output data, in table or raw JSON view. Use this to validate behavior and troubleshoot unexpected results.
For deep AI Agent configuration and the standalone agent builder, see the AI Employee collection.
Premium action. Billed per use based on tokens consumed.
The GPT action (labeled GPT powered by OpenAI) sends a prompt to an OpenAI model and returns the generated text. It is the general-purpose "write or transform this text" action: draft a reply, summarize a conversation, generate email or SMS copy, analyze sentiment, or run any custom instruction. The output can be used directly in a later Email or SMS step, stored in a custom field, or sent to your team.

Model: Choose the OpenAI model. The default is GPT-5 Mini. Other options include GPT-5, GPT-5.1, GPT-5 Nano, GPT-4o, GPT-4 Turbo, and GPT-4o Mini. Use a lighter model (Mini or Nano) for high-volume, simpler tasks and a larger model for long-form reasoning or higher-stakes copy. You can pick a different model per step within the same workflow, and you can change the model later without rebuilding anything.



Prompt: The instruction you send to the model (for example, "Generate a friendly reply to this patient message"). Insert custom values with the tag icon to build dynamic, personalized prompts.


Temperature (Advanced options): The sampling temperature controls randomness, on a scale from 0.1 to 1. Higher values (around 0.8) produce more varied, creative output; lower values (around 0.2) produce more focused, predictable output. Tune it to balance creativity against consistency.

The GPT action can remember past interactions so its responses stay consistent and personalized. Enable history, then choose History for from the dropdown. There are five history types:
This Sub Account: Remembers GPT conversation across all workflows in the account that use this history type. (In Aesthetix CRM this is your account-wide memory.)
This Workflow: Remembers GPT conversation within the workflow.
Per Execution: Remembers GPT conversation within a single workflow execution.
This Step: Remembers GPT conversation for this specific action across multiple executions.
Custom: Lets you define a custom history key reusable within the same workflow or across multiple workflows.
History advanced settings:
System Instructions: Persistent rules the GPT action should follow to shape tone, behavior, and output style.
Exclude instructions from history: Keeps the System Instructions out of the stored history.
Exclude responses from history: Stops this action's responses from being saved to history. Useful when the response is a sentiment label or analytics value rather than conversational text.
Notes on history: when history is enabled, a GPT-4 model is selected by default; history works only with the Custom action type; and history is kept independently for each contact.
Input is your prompt plus any custom values you insert. Output is the generated text, referenced downstream as {{chatgpt.1.response}} (the number matches the step). From there you can:
Use it directly in an Email or SMS step.
Store it in a custom field.
Log it internally or send it to your team by Slack or webhook.

A patient replies to an SMS. A GPT action drafts a warm, on-brand response that references their name and the service they asked about, and a following SMS step sends it after a team member reviews it.
Output quality depends on the underlying model; always review and validate generated text before it reaches a patient.
Test the workflow with a sample contact to see the output before publishing.
For the AI bot that holds live two-way conversations (rather than a one-shot GPT step), see the AI Employee collection.
Premium action.
The AI Translate action translates any text from a source language to a target language. Pair it with an incoming message or a piece of content, and the translated result flows into a later Email, SMS, or internal notification so contacts receive messages in their preferred language.

Action Name: A descriptive name (for example, "Translate Welcome Email to Spanish").
From Language: The source language the original text is written in (for example, English).
To Language: The target language to translate into (for example, French).
Input Text: The content to translate. Two options:
Static Value: Type the text directly into the field.
Custom Variables: Use the tag icon to insert dynamic data from the contact's profile or a previous step.
Click Save Action when configured.

Input is the source text (static or dynamic) plus the From and To languages. Output is the translated text, available as a custom value such as {{workflow_ai_translate_content.2.response}} (the number matches the step), which you insert into any later step.


A prospective patient signs up through a form and selects French as their preferred language. A Translate action converts your standard English welcome message to French, and a Send Email step delivers it, so the new French-speaking contact gets a correctly translated welcome automatically.
Review machine translations of any customer-facing copy before sending, especially for marketing or promotional messages where tone matters.
Premium action. Charged per execution.
The AI Summarize action condenses long content into a concise summary while preserving the key information. You set the target length and the input text, and the action identifies the main points, removes redundancy, restructures to fit your length, and keeps the result readable.

Action Name: A descriptive name (for example, "Summarize Customer Review").
Max Length: The target length of the summary. Specify it as a number of words ("50 words"), characters ("280 characters"), sentences ("3 sentences"), or paragraphs ("1 paragraph").
Input Text: The text to summarize, as a Static Value typed directly, or a Dynamic Variable selected with the custom value picker.
Click Save to finish.

Input is the source text and a target length. Output is the summarized text, available as a custom value for later steps.


That output can be used to send a summary by SMS or email, store it in a custom field, display it in a notification, or pass it to another action.

A prospective patient submits a long inquiry through a consultation form. A Summarize action condenses it to 160 characters, and a confirmation SMS to the front desk includes the short version so staff get the gist at a glance. Other fits: condensing pipeline notes into a one-paragraph email to a treatment coordinator, or shortening a long review into 50 words for a team channel.
You can combine multiple text sources with custom values before summarizing.
You can chain summarize actions to progressively shorten content (first to 500 words, then to 100 in a second action).
The AI decides what is most important; to exclude specific information, preprocess the text with other actions first.
Accuracy is high for key information, but always test with sample data before going live.
Premium action. Charged per execution.
The AI Intent Detection action analyzes text and classifies its overall sentiment as Positive, Negative, or None, then automatically creates a branch for each result. It is a simpler, more accurate replacement for building sentiment routing with nested If/Else conditions. Use it to personalize follow-ups, escalate unhappy responses, and route automatically based on how a contact feels.
Positive: expresses satisfaction, agreement, or favorable sentiment.
Negative: conveys dissatisfaction, complaint, or negative sentiment.
None: neutral or unclear sentiment.

Action Name: A descriptive name (for example, "Analyze Customer Sentiment").
Input Text: The text to analyze. You can use static text, a dynamic variable such as {{message.body}}, or any custom field that stores text.
Click Save Action when configured.

Once saved, three branches (Positive, Negative, None) are created automatically. Add the follow-up actions you want under each branch.

Input is the text to evaluate. The output is the routing itself: the contact flows down the Positive, Negative, or None branch, and the actions you place under each branch run accordingly. If the text contains mixed sentiment, the dominant sentiment wins; if none is clear, the contact routes to None.
A patient completes a post-visit feedback form. Intent Detection reads the response and routes it: Positive sends a thank-you and a review request, Negative creates a support task and notifies your team, and None sends a short follow-up question for clarification.
You can use multiple Intent Detection actions in one workflow to analyze different inputs or build multi-step routing.
Test in workflow test mode with sample inputs before publishing.
The action returns the classification only; detailed reasoning or confidence scores are not currently provided.
If routing is unexpected, confirm the correct variable is selected in Input Text, ensure the workflow is published, and review the Execution Logs for routing details.
Premium action. Charged per execution.
The AI Decision Maker action reads a contact's data and your plain-English instructions, then picks the single best-fitting branch and routes the contact down it. Where AI Intent Detection is limited to sentiment (Positive, Negative, None), Decision Maker chooses from custom, named outcomes you define, so you can route on engagement, lead score, company size, behavior, or any combination without stacking nested If/Else conditions. You describe how contacts should be sorted in natural language and the AI handles the evaluation, adapting automatically as contact data changes.
Instructions: Describe in plain English how contacts should be routed. Reference dynamic contact variables with the variable picker (the tag icon), for example {{contact.engagement_score}}, {{contact.tags}}, or a custom field. Include enough context for the AI to evaluate accurately.
Additional Context: Supporting information that improves routing accuracy, such as business rules or segmentation definitions (for example, "New patients have no prior appointments; returning patients have at least one completed visit"). Optional but recommended when your branch definitions rely on terms the AI would not otherwise know.
Action Name: A descriptive name for the step (for example, "Route by Treatment Interest"), useful for keeping branching-heavy workflows organized.
Branches (outcomes the AI chooses from):
Default Branch: Included automatically as a fallback for any contact that does not match another branch. Its name is locked and it cannot be renamed or deleted, so contacts never get stuck in the workflow.
Custom branches: Add your own outcomes with the + New Branch button. Give each a clear branch name and a description of when it applies (for example, "High Priority Consult," "Email Nurturing," "Re-engagement"). The AI selects one branch per contact based on your instructions and the contact's data.
Click Save Action when configured.
Input is the contact's data: contact details such as email and phone, custom fields such as lead scores or company size, tags, form or survey submissions, and outputs from earlier workflow steps. The output is the single branch the AI selects. The contact flows down that branch, and the follow-up actions you place under it run accordingly. Place a complete sequence under each branch, including the Default Branch, so every routing path is handled.
A prospective patient describes what they are looking for in a consultation form. A Decision Maker action reads the message and chooses a route, for example "Injectables Interest," "Laser Interest," or "General Inquiry," sending each contact down the branch with the right follow-up sequence. Anything that does not clearly fit falls to the Default Branch for a general welcome message. Other fits: prioritizing new high-intent leads for a faster call-back, or sorting inbound inquiries by location.
The AI only routes as well as the data and context you give it; thin contact records or vague branch descriptions lead to weaker decisions, so add detail in Additional Context.
The Default Branch cannot be modified or deleted; design your custom branches around it.
Because routing adapts to contact data automatically, you avoid rebuilding rules every time your segmentation changes, and you remove the manual errors that come with stacked conditions.
Test in workflow test mode with representative contacts before publishing, then review the Execution Logs tab after a run to see which branch each contact entered.
Premium action. Charged per execution.
The AI Extract Data action pulls structured fields out of any unstructured text, such as an email body, a webhook payload, an SMS message, a form response, or the output of a previous AI action. You define the fields you want (for example, name, email, phone, requested treatment), and the AI parses the input and returns those fields as structured variables for use in later steps. This removes the need to parse free-form text manually or build complex conditional logic.
Field | Description |
|---|---|
Action Name | A custom name for the action. Defaults to "AI extract data." |
Extract From (required) | The unstructured text input to parse. Select a custom value, such as an email body, webhook payload, SMS content, or the output of a previous action. |
Additional Context | Optional supplementary context that helps the AI extract more accurately, for example "This is a lead notification email; phone numbers may appear in different formats." Supports custom values. |
Templates | Pre-built field sets for common patterns: Contact info, Lead details, Order info, and Event. Selecting one auto-populates the data fields, which you can then modify, add to, or remove. |
Data Fields | The structured fields to extract. Each field has a Name (the variable key), a Type (Text, Email, Phone, Number, or Date), and an optional Description to guide the AI. |
Configuration steps:
Add the Action: Click the + icon, search for AI extract data, and select it.
Set the Input Source: In Extract From, use the custom value picker to select the text to parse (an email body, a webhook field, an SMS message, or a previous AI action's output).
Add Context (optional): In Additional Context, describe the source format to improve accuracy. This field supports custom values.

Define Data Fields: In the Data section, either:
Use a Template: Click Contact info, Lead details, Order info, or Event to auto-populate common fields, then adjust.
Define Custom Fields: Click + Add data and, for each field, provide a Name (the variable key, for example full_name), a Type (Text, Email, Phone, Number, or Date), and an optional Description (a hint such as "Phone number with area code, e.g. +1 (555) 234-5678" that improves accuracy).

Save the Action: Click Save action. The extracted fields become available as variables in all later steps.
Contact Info auto-populates standard contact fields:
Name | Type | Description |
|---|---|---|
full_name | Text | The person's full name, e.g. Sarah Johnson |
Email address, e.g. [email protected] | ||
phone | Phone | Phone number with area code, e.g. +1 (555) 234-5678 |

Order Info auto-populates order and transaction fields:
Name | Type | Description |
|---|---|---|
order_id | Text | Order or transaction ID, e.g. ORD-2026-48291 |
items | Text | Items or services ordered, e.g. 3x Widget Pro, 1x Stand |
total_amount | Number | Total monetary amount, e.g. 2450.00 |
order_date | Date | Date the order was placed |

Lead details and Event templates are also available.
Input is any text-based value in the workflow plus the field schema you define. Each field you define becomes a variable available in the custom value picker of every later action.


For example, a field named full_name (Text) can populate the name in a later Update Contact action, or personalize a Send Email step. If the AI cannot find a value for a field, that field's variable is left empty, so guard against empty values with If/Else branches before using them in critical steps.
A lead notification email lands in your inbox with the prospect's name, phone, and requested treatment buried in free-form text. An Extract Data action (Extract From: email body; Context: describing the source; Template: Contact info plus a custom requested_treatment field) parses it, and an Update Contact action maps the extracted name, phone, and treatment interest onto the contact record automatically.
Five data types are supported: Text, Email, Phone, Number, and Date. Choosing the right type helps the AI identify and format the value correctly.
Templates are optional; you can start from one or define your own fields entirely.
More specific Descriptions and Additional Context produce more accurate extractions, especially for non-standard inputs.
The premium badge appears at the top of the action panel when configuring it.
This guide covers the standalone AI actions you place directly inside a workflow. Some AI capabilities run inside an AI bot rather than as a workflow action, and those are documented in the AI Employee collection:
Conversation AI bot actions (the bot that holds live two-way chats across channels)
Voice AI actions (the bot that answers and places calls)
Agent Studio and the Invoke Agent action (the standalone visual agent builder)
For deep configuration of the AI Agent and GPT actions covered above, the AI Employee collection has additional detail.
Where does an AI action's output go? Every AI action produces a custom value you can reference in later steps with the tag icon. You can send it in an email or SMS, store it in a custom field, log it internally, or pass it to another action or branch.
Which AI actions are premium? All of the actions in this guide are premium. Several (Summarize, Intent Detection, Extract Data, and the AI Agent and GPT actions) carry add-on access requirements or a per-execution or token-based charge. Premium workflow billing rules apply.
Can I use these AI actions with protected health information? No. Keep AI actions on non-clinical, non-PHI text, such as a lead inquiry, a marketing reply, a public review, or a requested treatment name from a form. Always review AI-generated output before it reaches a patient.
What is the difference between AI Intent Detection and AI Decision Maker? Intent Detection classifies sentiment into three fixed branches (Positive, Negative, None). Decision Maker is meant for custom, named outcomes you define, so the AI can choose among routes you specify. Verify Decision Maker's exact options against the live builder.
Can I use more than one AI action in a single workflow? Yes. You can chain AI actions (for example, GPT to draft, then Summarize to shorten, then Intent Detection to route) and reference each step's output in the steps that follow.
Can I test an AI action before publishing? Yes. Use workflow test mode with a sample contact or sample input to see the output and confirm routing before you publish.
How do I see what an AI action actually did? Open the Execution Logs tab in the workflow builder and select the execution. For the AI Agent action you can review the full trace, including model calls and tool executions with inputs, outputs, and timing.
Where are the Conversation AI bot, Voice AI, and Agent Studio documented? In the AI Employee collection. Those run inside an AI bot rather than as standalone workflow actions, so they live with the AI Employee documentation.
If an AI action is not producing or routing the way you expect, confirm the correct variable is selected for the input, make sure the workflow is published, and review the Execution Logs for details. If you need help designing an AI-driven workflow for your practice, reach out to support or submit a Custom Build Request.