Find this workflow
This workflow is available as a template in Workflow Automation.
Log in and open Workflow Automation.
Select Templates from the left-hand menu.
Search for
ACP- you will see the ACP templates listed.Click Use this template on the Unfinished Documentation Reminder Workflow to create your own editable copy.
Note: Clicking Use this template creates a new workflow based on the template. You can then modify and configure it without affecting the original template.
Before you activate
This workflow does not use workflow parameters, so there is nothing to add before activating it. Check these two items instead:
ACP instance: the Application_Subscription node has a specific ACP instance selected. Confirm it is your instance.
Feed recipients: the evo_feed_notification node has no recipients set in the template. Set the recipients before activating so the right people receive the feed item.
How the workflow runs
This workflow runs every 30 minutes and checks visits that have been completed or updated in the previous 30 minutes. For each of these visits, an AI Agent assesses whether the visit note contains specific, verifiable information. If it does not, the workflow sends a Non-Compliant Visit Note Detected item to the Evo Web Feed with a link to the visit.
The workflow runs on a schedule only, and the template has no manual trigger. It does not record which visits have already been flagged. A visit that is updated again after being flagged is assessed again and may be flagged again.
The note-quality criteria are written into the system prompt of the AI Agent node. To change them, open the AI Agent node in the workflow builder.
Node reference
1. Schedule Trigger
Type: Trigger
Starts the workflow every 30 minutes in the Europe/London timezone. No parameters are required.
2. timeframe
Type: Code - JavaScript
Calculates the time 30 minutes before the current run. The result is an ISO 8601 date string used as the lower limit when visits are queried.
Technical detail
const now = new Date(); const thirtyMinutesAgo = new Date(now.getTime() - (30 * 60 * 1000)); result = thirtyMinutesAgo.toISOString();
3. Application_Subscription
Type: Connector - Care Planning API
Retrieves the ACP application subscriptions. The output provides the subscription ID used to query each instance, and the ACP server URL used to build the visit link.
Technical detail
Endpoint:
GET /applicationSubscriptionsInstance: set in the node configuration. Confirm this is your ACP instance.
4. Loop Through Subscriptions
Type: Loop - For Each Item
Runs the nodes that follow once for each subscription returned by Application_Subscription. The loop has a maximum of 100 iterations.
Technical detail
Loop Mode: For Each Item
Input Array:
{{ $node["Application_Subscription"].output.data }}Max Iterations: 100
5. Care Planning Connector
Type: Connector - Care Planning API
Retrieves completed visits for the current subscription that were updated within the time window set by the timeframe node.
Technical detail
Endpoint:
GET /visitInstance: the subscription from the current loop iteration
Limit: 1000, sorted by ID ascending
MQL filter:
status=Completed,updatedDateTime>={{ $node["timeframe"].output.data[0] }}6. If
Type: Flow control - If
Checks whether the Care Planning Connector returned zero visits. If it did, that branch ends and nothing is assessed. Otherwise, the workflow continues to the AI Agent.
Technical detail
Condition:
{{ $node["Care Planning Connector"].output.data.size }}Equals0
7. AI Agent
Type: AI Agent
Reviews the visit notes returned by the Care Planning Connector. It judges only whether each note is complete and specific. It does not judge clinical accuracy, spelling, grammar or quality of care, and it does not rewrite notes.
A note is flagged when it is empty, is a bare acknowledgement such as "done" or "ok", or only states that the visit happened. A note is accepted when it records at least one specific detail, including an observation about the service user, a task performed, or a statement about complaints or issues, including the absence of them.
Technical detail
Model: claude-haiku-4-5
Max tokens: 4096
Max iterations: 10
Response style: concise
8. build_json
Type: Output Parser (connected to the AI Agent)
Checks that the AI Agent's output matches the expected JSON structure. If validation fails, the run stops with an error.
Technical detail
Expected output: an array of objects, each with
tenantTaskId,customer,visitDateTimeanddeficiencyStrict validation: on
Auto-fix: on
On validation failure: error
9. parse_json
Type: Code - JavaScript
Passes the AI Agent's result to the next stage. If the AI Agent returns an empty list, no visits are passed on.
Technical detail
const aiOutput = {{ $node["AI Agent"].output.content }}; if (aiOutput.content === "[]") { result = []; } else { result = [aiOutput]; }10. Loop Through Visits
Type: Loop - For Each Item
Runs the feed notification once for each flagged visit.
Technical detail
Loop Mode: For Each Item
Input Array:
{{ $node["parse_json"].output.data[0] }}Max Iterations: 100
11. evo_feed_notification
Type: Evo Web Feed - Send Feed Item
Sends a Non-Compliant Visit Note Detected item to the Evo Web Feed for each flagged visit. The item shows the service user, the tenant task ID, the visit date and the deficiency. It includes a Visit Details link that opens the visit in Access Care Planning.
Technical detail
Operation: Send Feed Item
Correlation ID:
{{ $evo.execution.id }}(set at run time)Title:
Non-Compliant Visit Note DetectedFeed Type: Information (no user action required)
Include Links: true - Link text:
Visit DetailsLink URL:
{{ $node["Loop Through Subscriptions"].output.item.acpServerUrl }}/viewlink/task?tenant_task_id={{ $node["Loop Through Visits"].output.item.tenantTaskId }}Include Copilot Prompts, Actions and MFE: false
Workflow summary
Stage | Nodes | What happens |
Trigger | 1 | Workflow starts every 30 minutes |
Time window | 2 | Sets the lookback to 30 minutes before the run |
Data fetch | 3-5 | Gets the ACP subscriptions, then the completed visits updated in the window for each one |
Check | 6 | Ends the branch when no visits are returned |
Note assessment | 7-9 | The AI Agent assesses each note, and the output is validated and passed on |
Notify | 10-11 | Sends one Evo Web Feed item for each flagged visit |
