AI Activities
AI Activities let your workflows leverage large language models directly — without leaving the designer. Use them to generate text, classify content, extract structured data, and more. All AI activities require an AI backend or Azure OpenAI key configured in Settings.
Tier AvailabilityAI Activities require Standard or higher. AskCopilot and GenerateText are available on all paid tiers; AnalyseImage and ExtractData (structured) require Pro or Enterprise.
AskCopilot
Sends a prompt to the AI Copilot and returns the response as a string variable. Use this to make dynamic decisions inside your workflow.
| Parameter | Type | Required | Description |
|---|
| Prompt | String | Yes | The question or instruction for the AI |
| Context | String | No | Additional background information appended to the system prompt |
| Model | String | No | Override the default model (e.g., gpt-4o) |
| Max tokens | Int32 | No | Maximum length of the response (default: 512) |
| Output | String variable | Yes | Variable to store the AI's response |
| 1 | AskCopilot: |
| 2 | Prompt: "Classify this email as Urgent, Normal, or Low priority: {{emailBody}}" |
| 3 | Output: emailPriority |
| 4 | Log: "Priority: {{emailPriority}}" |
GenerateText
Generates free-form text from a template prompt. Ideal for drafting emails, summaries, or descriptions.
| Parameter | Type | Required | Description |
|---|
| Template | String | Yes | Prompt template — use {{variableName}} to embed workflow variables |
| Tone | Formal / Friendly / Technical / Concise | No | Stylistic hint passed to the model (default: Formal) |
| Language | String | No | Output language code, e.g. en, de, fr (default: en) |
| Max tokens | Int32 | No | Maximum output length (default: 1024) |
| Output | String variable | Yes | Generated text |
ClassifyText
Classifies a string into one of a predefined set of categories. Returns the matched category label.
| Parameter | Type | Required | Description |
|---|
| Input text | String | Yes | Text to classify |
| Categories | String (comma-separated) | Yes | Allowed output labels, e.g. Complaint,Enquiry,Compliment |
| Output (label) | String variable | Yes | The predicted category |
| Output (confidence) | Double variable | No | Confidence score between 0 and 1 |
| 1 | ClassifyText: |
| 2 | InputText: "{{ticketBody}}" |
| 3 | Categories: "Billing,Technical,Account,Other" |
| 4 | OutputLabel: ticketCategory |
| 5 | OutputConfidence: confidence |
| 6 | If: ticketCategory == "Billing" |
| 7 | Then: Invoke: HandleBillingTicket.gbw |
SummarizeText
Produces a short summary of a long document or string.
| Parameter | Type | Required | Description |
|---|
| Input text | String | Yes | The text to summarise (up to ~16 000 characters) |
| Max sentences | Int32 | No | Target length in sentences (default: 3) |
| Output | String variable | Yes | The generated summary |
ExtractData
Extracts structured fields from unstructured text (e.g., invoices, emails, forms) and returns a DataTable or JSON string.
| Parameter | Type | Required | Description |
|---|
| Input text | String | Yes | Raw text containing the data to extract |
| Schema | String (JSON) | Yes | JSON object describing field names and types, e.g. {"{ \"invoiceNo\": \"string\", \"total\": \"number\" }"} |
| Output (JSON) | String variable | No | Extracted data as a JSON string |
| Output (DataTable) | DataTable variable | No | Extracted data as a single-row DataTable |
| 1 | ExtractData: |
| 2 | InputText: "{{invoiceText}}" |
| 3 | Schema: '{"invoiceNumber":"string","date":"string","total":"number","vendor":"string"}' |
| 4 | OutputJson: extractedJson |
| 5 | Log: "Invoice #{{extractedJson.invoiceNumber}} — Total: {{extractedJson.total}}" |
TranslateText
Translates text from one language to another using the configured AI backend.
| Parameter | Type | Required | Description |
|---|
| Input text | String | Yes | Text to translate |
| Target language | String | Yes | ISO 639-1 code, e.g. es, fr, de, ja |
| Source language | String | No | If omitted, the model auto-detects the source language |
| Output | String variable | Yes | Translated text |
Token Usage & CostsEach AI Activity call consumes tokens from your configured AI provider. Avoid calling AI Activities inside tight loops — batch your data and call once where possible. Monitor usage in the Orchestrator Analytics page under AI Token Usage.