Automation Builder
The Automation Builder is a visual, no-code workflow tool that lets you create event-driven processes across GovAssist. Automations run automatically when conditions are met — no developer involvement required.
Overview
| Feature | Description |
|---|---|
| Visual Flow Editor | Drag-and-drop automation design |
| Trigger Types | 10+ event types to start workflows |
| Action Library | Record operations, email, AI, and more |
| Conditional Branching | IF/ELSE logic with nested conditions |
| Loop Support | Repeat actions for batch processing |
| Run History | Execution logs with success/failure tracking |
| Folder Organization | Group automations by category |
Before You Start
Ensure the following are in place before building automations:
- User has Automation Builder module permissions
- Source entities exist for record-based triggers
- Forms are created if using form submission triggers
- Email templates are configured if using send-email actions
How Automations Work
Every automation follows this structure:
[Trigger] → [Action 1] → [Action 2] → ... → [End]
|
[Branch Logic]
/ \
[Yes] [No]
Initial Nodes
When you create a new automation, the canvas starts with three nodes:
| Node | Purpose |
|---|---|
| Trigger Node | The event that starts the workflow |
| Action Node | The first operation to perform |
| End Node | Marks workflow completion |
Run History Statuses
| Status | Description |
|---|---|
| All | Show all runs |
| Success | Completed without errors |
| Failed | Encountered an error during execution |
Trigger Types
Navigate to Automation Builder → New Automation → Select Trigger to choose how your automation starts.
| Trigger | Description |
|---|---|
| Form Submitted | When a user submits a specific form |
| Record Created | When a new record is added to an entity |
| Record Updated | When an existing record is modified |
| Record Deleted | When a record is removed |
| Record Matches Condition | When a record meets defined rules |
| Process Evaluation Completes | When an AI evaluation finishes |
| Scheduled Event | On a time-based schedule |
| Webhook Received | When an external webhook is received |
| SharePoint Event | When a SharePoint event occurs |
| Incoming Call | When a phone call is received |
Schedule Trigger Configuration
For time-based automations, configure the following:
| Field | Description |
|---|---|
| Interval Type | Frequency: Minutes, Hours, Days, Weeks, Months, or One-Time |
| Interval Value | How often to repeat |
| Week Days | Specific days (for weekly schedules) |
| Month Days | Specific dates (for monthly schedules) |
| Start Date | When to begin |
| Execution Time | Time of day to run |
| Time Zone | Timezone for scheduling |
Action Types
Navigate to Automation Flow → Add Action → Select Action to add steps to your workflow.
| Action | Description |
|---|---|
| Create Record | Create a new record in an entity |
| Update Record | Modify an existing record |
| Delete Record | Remove a record |
| Find Records | Search for records matching criteria |
| Send Email | Send an email notification |
| Autofill with AI | Use AI to populate fields automatically |
| AI-Driven Action | AI content generation with custom prompts |
| Extract from Document | Pull data from uploaded documents |
| Extract from Website | Scrape data from web pages |
| Formula | Calculate values using field references |
| IF/ELSE Condition | Branch the workflow based on logic |
| Repeat | Loop through a set of actions |
| Wait | Pause until a condition is met |
AI-Driven Action Configuration
| Field | Description |
|---|---|
| Entity | Entity for context |
| Model | AI model: GPT-4o, GPT-4.1, GPT-4o mini, o3 |
| AI Action Type | ai_criteria_action (evaluate) or custom (prompt-based) |
| Target Field | Field to write AI output into |
| Prompt | Instructions for the AI |
| Temperature | Randomness 0-1 (default: 0.2) |
Condition Builder
Conditions control when branches fire and when triggers activate.
Operators
| Operator | Description |
|---|---|
| is / is not | Exact match or exclusion |
| greater than / less than | Numeric comparisons |
| in / not in | Value within a list |
| contains | String contains (case-sensitive) |
| contains (case-insensitive) | String contains, ignoring case |
| between | Value falls in a range |
| is null / is not null | Field is empty or populated |
| min length / max length | String length constraints |
Conjunctions
| Conjunction | Behavior |
|---|---|
| And | All conditions must be true |
| Or | Any condition must be true |
Branch Logic
Branches route workflow execution based on conditions.
| Branch Type | Description |
|---|---|
| IF | Primary condition branch |
| ELSE IF | Additional condition branches |
| ELSE | Fallback when no conditions match |
Branch Limits
Each automation supports up to 10 branches. At least one IF branch is required. ELSE branches act as the default fallback path.
Dynamic Fields
Fields that support dynamic value insertion (via the + button):
| Field Type | Supports Dynamic Values |
|---|---|
| Text | Yes |
| Text Area | Yes |
| Rich Text | Yes |
| Number | Yes |
| Yes | |
| URL | Yes |
| File | Yes |
Formula Syntax
Formulas use {FieldName} syntax to reference record values.
Trigger character: { (open brace)
Example: {Amount} * {Quantity} * 0.1
Permitting Workflow Examples
Application Submission
Trigger: Form Submitted Use case: When an applicant submits a permit application
[Form Submitted]
→ [Create Record: Permit Entity]
→ [Update Status: "Submitted"]
→ [Send Email: Applicant — Application Received]
→ [Send Email: Reviewer — New Application]
→ [End]
| Step | Action | Configuration |
|---|---|---|
| 1 | Trigger | Form: Permit Application |
| 2 | Create Record | Entity: Permits, map form fields |
| 3 | Update Record | Status = "Submitted" |
| 4 | Send Email | Template: Application Received |
| 5 | Send Email | Template: New Application, to Reviewer |
Multi-Department Review Routing
Trigger: Record Created Use case: Route new permit to appropriate review departments
[Record Created: Permit]
→ [AI Action: Determine Required Reviews]
→ [IF Zoning Required] → [Update: Zoning Status = "Pending"]
→ [IF Building Required] → [Update: Building Status = "Pending"]
→ [IF Health Required] → [Update: Health Status = "Pending"]
→ [Send Email: Assignment Notifications]
→ [End]
Expiration Warning (Scheduled)
Trigger: Scheduled Event Use case: Daily check for permits expiring in 30 days
[Schedule Trigger: Daily at 8:00 AM]
→ [Find Records: Permits expiring in 30 days]
→ [Repeat for each record]
→ [Send Email: Expiration Warning]
→ [Update Record: Warning Sent = true]
→ [End]
Schedule settings:
| Field | Value |
|---|---|
| Interval Type | Days |
| Interval Value | 1 |
| Execution Time | 08:00 |
| Time Zone | America/New_York |
AI-Powered Determination
Trigger: Process Evaluation Completes Use case: After AI evaluates a permit application
[Process Evaluation Completes]
→ [AI Action: Evaluate Compliance]
→ [IF Determination = "Approved"]
→ [Update Status: "AI Approved"]
→ [Create Record in Approvals Entity]
→ [ELSE IF Determination = "Denied"]
→ [Update Status: "AI Denied"]
→ [Send Email: Denial Notification]
→ [ELSE]
→ [Update Status: "Manual Review Required"]
→ [Send Email to Reviewer]
→ [End]
Testing and Publishing
Build Your Automation
Configure the trigger, add actions, and set up any branches or conditions.
Test the Automation
Click Test in the automation editor. Provide sample trigger data and review step-by-step execution.
Publish
When testing passes, publish the automation to make it live. Unpublished automations will not fire.
Monitor Run History
Go to Automation → Run History to view execution logs filtered by All, Success, or Failed.
Troubleshooting
Trigger Not Firing
Common Cause
The automation must be published to fire. Draft automations are inactive.
Check the following:
- Automation is published (not draft)
- Trigger conditions are correctly configured
- Entity or Form IDs are valid
- User has permissions on the source entity
Action Fails with "Record Not Found"
- Verify the Record ID reference is valid
- Confirm the record exists in the entity
- Check that you're using the correct field for record identification
Email Not Sending
- Confirm the email template exists
- Verify the recipient field is populated
- Ensure the email service is configured
- Check that recipient addresses are valid
Branch Conditions Not Evaluating
- Field names must match exactly (case-sensitive)
- Use operators appropriate for the field type
- Verify values are in the correct format
- Double-check AND/OR logic