The quality of your workflow's output depends largely on the quality of the prompts you write. Here are some guidelines:
Be specific and task-focused
Each step should have one clear job. Avoid multi-purpose prompts that ask the AI to do many different things at once.
❌ Avoid | ✅ Better |
"Review this contract." | "Review this contract and list any clauses that limit liability to less than the contract value. Format the output as a bulleted list." |
"Summarise the matter." | "Summarise this matter in 2–3 sentences covering the matter type, the business user, and the current status." |
Use the Instructions field for formatting and tone
Put your content task in the Prompt field and use the Instructions field to specify how the AI should format or present its response. For example:
"Always respond in plain English suitable for a non-legal audience."
"Format your response as a JSON object with the keys: parties, effectiveDate, expiryDate."
"Keep responses to no more than 150 words."
Reference context explicitly
The AI only knows what you tell it at each step. If your Chat node needs information from a previous step (such as a contract document or matter details), make sure your prompt explicitly references that context.
For event-based workflows triggered by a new matter or contract, start the prompt by telling the AI to fetch the new record first. For example: "When a new matter is created, get that matter's details." or "When a new contract is created, get that contract's details."
Iterate and test
Use the Executions tab to review how your prompts performed in real runs. If the AI's output isn't what you expected, refine the prompt and re-publish. Small prompt adjustments can make a significant difference to output quality.
See also: Write better prompts for Workspace Intelligence — the same prompt-writing principles apply to workflows.
Real-world example: Contract review intake workflow
This example shows how to structure a complex, multi-step workflow that reads and analyzes a contract, extracts key data, identifies issues, and generates multiple outputs for different audiences. The workflow is designed to handle missing data gracefully — it continues to completion even if some extraction steps return no results.
Workflow trigger: When a contract is created or uploaded to a matter
Step 1: Extract Contract Data (AI Task)
Prompt:
When a new contract is created, get that contract's details.
Read the contract document and extract:
1. Parties to the agreement (names and roles)
2. Effective date and end/expiry date
3. Contract type or category (e.g. Service Agreement, NDA, Supply Agreement)
4. Total contract value (if stated)
5. Key payment terms (e.g. monthly, milestone-based)
6. Renewal or termination conditions
7. Any insurance or indemnity requirements
Return the extracted information as a JSON object with keys: parties (array), effectiveDate, expiryDate, contractType, contractValue, paymentTerms, renewalTerms, insuranceRequirements.
If any section has no data, set it to null.
Instructions:
Extract dates in YYYY-MM-DD format. For values, use exact amounts with currency (e.g. "USD 50,000"). Return valid JSON only. Do not invent information not present in the contract.
Step 2: Identify Risks & Key Clauses (AI Task)
Prompt:
Review the contract and identify:
1. Any unusual or unfavourable clauses (liability caps, indemnity obligations, IP ownership)
2. Missing or silent clauses (insurance, dispute resolution, governing law)
3. Ambiguous language that could cause disputes
4. Compliance risks (data protection, regulatory obligations)
5. Termination or exit terms that may be unfavourable
For each risk, provide: the clause/section, the risk description, and recommended action (e.g. "Negotiate", "Accept", "Seek legal counsel").
Return as a JSON array of risk objects. If no material risks are found, return an empty array [].
Instructions:
Focus only on genuine legal or commercial risks, not minor formatting issues. Be specific about which clause and what the concern is. Return valid JSON.
Step 3: Extract Matter Fields (AI Task)
Prompt:
Based on the contract details, identify which of these matter fields should be updated:
- Matter type (match to the contract type extracted in Step 1)
- Contract value or budget
- Key deadline (expiry or renewal date)
- Counterparty or external stakeholder (primary party other than us)
- Current status (e.g. "Awaiting Signature", "Active", "Under Review")
Return a JSON object with only the fields that should be updated, with their proposed values. If a field should not be updated, omit it from the object.
Instructions:
Only include fields with clear values extracted from the contract. Return valid JSON. Dates should be YYYY-MM-DD format.
Step 4: Create Review Tasks (AI Task)
Prompt:
Based on the risks identified in Step 2 and the contract terms from Step 1, create a task for each action that needs to be taken. For each task, provide:
- Task title (clear, actionable description)
- Priority (High, Medium, Low)
- Due date (e.g. within 3 days for execution, 2 weeks for negotiation)
- Description (reason why this task exists, what decision/action is needed)
Return as a JSON array of task objects. If there are no action items, return an empty array [].
Instructions:
Task titles should be specific (e.g. "Negotiate liability cap in Section 8" not just "Review liability"). Assign realistic due dates (execution within 3 days, negotiation within 2 weeks). Return valid JSON.
Step 5: Counsel Review Summary (AI Task)
Prompt:
Write a professional summary for the reviewing attorney that they can use for quick intake. Include:
- Contract parties, value, and key dates
- Contract type and business purpose (in 1-2 sentences)
- Top 3 risks or concerns (if any)
- Recommended next steps (negotiate, accept, escalate)
- Any questions that should be clarified with the counterparty
Format it as a professional memo suitable for file.
Instructions:
Use a professional legal tone. Assume the reader is a busy attorney who needs the key points in under 2 minutes. Maximum 250 words. Use markdown formatting (headings, bullet points) for readability.
Step 6: Review Checklist (HTML) (AI Task)
Prompt:
Create a clean HTML review checklist that the contract team can use during intake. Include:
- Contract metadata (parties, dates, value)
- Checkbox list of key clauses to review (liability, IP, termination, insurance, etc.)
- Risk summary with severity (High/Medium/Low) colour coding
- Sign-off section for reviewer name and date
The HTML should be self-contained (inline CSS, no external stylesheets) and suitable for printing or email. Use professional styling with a simple colour scheme (greys and red for risks).
Instructions:
Include proper HTML5 structure. Use semantic HTML tags (table, input type="checkbox", strong, etc.). Inline all styles. Make it suitable for printing (A4 page). Use colour to highlight high-risk items (red), medium (orange), low (green). Do not include confidential information verbatim — use summaries.Publishing and versioning
AI Workflows use a draft/publish model to protect your live workflows from accidental changes.
Drafting and Versioning
State | What it means |
Draft | Edits are saved automatically but the workflow will not run (or will run the last published version for event/scheduled triggers). |
Published | The current version is live and will be used for all future executions. |
Deprecated | An older version that has been superseded by a newer published version. |
When you make any change in the editor, a yellow "Unpublished changes" indicator appears in the toolbar. Click Publish to make those changes live.
Versions panel
Click Versions in the right-side panel toolbar to see a history of all versions of this workflow. You can view what changed in each version and revert to a previous version if needed.


