AutoBridge

Runbook: Testing Automations Safely

Last updated: March 9, 2026


Purpose

This runbook describes how to test new or modified automations in Howard County's permitting system without impacting live applications. It covers creating test records, verifying automation execution, handling known platform issues, and cleaning up after testing.

Never test automations directly against production permit records. Always use dedicated test records with clearly identifiable names and addresses.


Prerequisites

Before testing an automation:

  • You have access to Automation Builder (Admin role or Automation Manager permission)
  • A test permit record exists (or you can create one) for your target permit type
  • You understand the trigger conditions you intend to test
  • The automation is saved and published (toggle ON to activate)
  • You have access to the Run History panel in Automation Builder

Understanding Trigger Types

GovAssist automations use different triggers that fire under different conditions:

Trigger TypeWhen It FiresUse Case
on_record_creationWhen a new record is created via UI formSimple "on create" workflows
when_record_matches_conditionWhen record is created OR updated AND matches conditionsMost routing automations (recommended)
on_record_updationWhen any field on the record changesStatus-change reactions
when_form_is_submittedWhen a specific form is submittedForm-specific workflows

API vs UI: Records created or updated via the Entity Manager REST API do not fire automation triggers. Only UI form submissions trigger automations. Always test by submitting forms in the GovAssist UI.


Testing Workflow

Step 1: Create a Test Record

1

Choose a test naming convention

Use a consistent prefix so test records are easily identifiable:

  • Address: 999 TEST ST or 123 AUTOMATION TEST DR
  • Applicant name: Test Applicant - [Your Name]
  • Notes: Add [TEST] or [QA] prefix to any notes
2

Submit via UI form

Navigate to the appropriate form (e.g., Building Permit application) and submit with test data. The submission must go through the UI form. Direct API calls will not trigger automations.

3

Note the Record ID

After submission, copy the Record ID from the URL or record detail page. You'll need this to verify automation execution.


Step 2: Verify Automation Executed

1

Open Automation Builder

Navigate to Automation Builder from the main navigation.

2

Select your automation

Find and click on the automation you're testing.

3

Open Run History

Click the History icon (clock) in the top-right to open the sidebar. Select the Run history tab.

4

Find your test execution

Look for a run matching your test record's timestamp. Run History shows:

  • Status: COMPLETED, RUNNING, or FAILED
  • Record ID: The record that triggered the automation
  • Timestamp: When the execution started
  • Node details: Expand to see each action's result
5

Verify expected results

Check that:

  • ✅ Trigger conditions evaluated correctly
  • ✅ Expected actions completed (e.g., child records created, fields updated)
  • ✅ No unexpected errors in node execution

Step 3: Verify Dedup Guard (Self-Deactivating Pattern)

Most HoCo automations use a dedup guard pattern to prevent duplicate actions. After testing:

1

Edit the test record

Make a minor change to the test permit record (e.g., update a comment field) and save.

2

Check Run History again

The automation should NOT fire a second time. If when_record_matches_condition trigger was used with a dedup guard condition, subsequent edits should not create duplicate child records.

3

If testing re-triggering

To test the automation firing again, you must reset the dedup guard field:

  1. Open the test permit record
  2. Find the status field used as the dedup guard (e.g., Acceptance Status)
  3. Clear it (set to empty/none)
  4. Save the record
  5. The next matching update should re-trigger the automation

Resetting dedup guards on production records can cause duplicate workflows. Only do this on test records.


Testing FORK/JOIN Automations

FORK automations create multiple child records simultaneously (e.g., 6 Review Tasks from one Building Permit). Special considerations apply:

Verify All Child Records Created

After triggering a FORK automation:

  1. Check that all expected child records exist (e.g., 6 Review Tasks for "New SFD")
  2. Verify each child record has the correct parent association
  3. Verify each child has the appropriate status/review type set

Allow Time for Completion

FORK automations may take 5-30 seconds to complete all branches. If you check immediately after triggering, some branches may still be running.

Check Association Integrity

Verify parent associations are intact on all child records. If associations are missing, this indicates a platform issue. Report to the development team.


Testing Email Actions

Automations with send_email actions require extra caution:

There is no "Test Mode" for email actions. When an automation fires, emails are sent to real recipients. Always verify email addresses before activating automations with email actions.

Safe Email Testing Approaches

ApproachHowRisk Level
Internal recipients onlyUse test records with internal email addresses onlyLow
Deactivate email stepTemporarily remove or disable the Send Email nodeLow
QA inboxCreate records with qa-automations@howardcountymd.gov as the applicant emailLow
Live testTest with a real permit involving a real applicantHigh: only after all other testing passes

Verify Email Content

After an automation sends an email:

  1. Check the QA inbox (if using QA addresses)
  2. Verify subject line renders correctly (no raw merge fields like {{permit_number}})
  3. Verify body content and links are correct
  4. Verify attachments (if any) are included

Known Issues & Workarounds

⚠️ Issue: UI Save May Break API-Created Automations

Symptom: An automation created via API stops triggering after being opened and saved in the GovAssist UI.

Workaround:

  • Avoid editing API-created automations in the UI
  • If you must edit, verify the automation still triggers after saving
  • If broken, the automation may need to be recreated via API

Status: Under investigation by development team.


⚠️ Issue: Dedup Guard Field Must Be Non-Null

Symptom: Automation's update_record action crashes with error: 'NoneType' object has no attribute 'get'

Cause: The status field being updated has validations: null in its entity configuration.

Workaround: Ensure all status dropdown fields used in update_record actions have proper validations set at the entity level. Report to development team if you encounter this.


⚠️ Issue: watching_fields Not Enforced

Symptom: on_record_updation trigger fires on every update, not just when the watched field changes.

Cause: Platform does not currently enforce the watching_fields configuration.

Workaround: Use when_record_matches_condition triggers with explicit conditions instead of on_record_updation with watching_fields.


Cleanup After Testing

After successful testing:

1

Document results

Record what was tested, results observed, and any issues found. Add a comment to the ClickUp task or relevant documentation.

2

Clean up test records

Either:

  • Delete test permit records and their child records (Review Tasks, etc.)
  • Or mark them clearly as [TEST - DO NOT USE] in a notes field
3

Reset for future tests

If keeping test records for future testing, reset their status fields to the baseline state so they can be reused.


Rollback Procedure

If an automation causes unexpected results after activation:

1

Deactivate immediately

In Automation Builder, toggle the automation OFF. This stops any new executions but does not undo completed actions.

2

Identify affected records

Check Run History, filter by the automation and the date of activation. Note all records that were processed.

3

Manually correct

For each affected record:

  • Revert incorrect status changes
  • Delete incorrectly created child records
  • Send correction notifications if needed
  • Document each correction in the permit's internal notes
4

Fix and retest

Edit the automation to correct the issue. Follow the testing workflow above before reactivating.


Checklist: Before Going Live

  • Test record created with clear naming convention
  • Automation triggered successfully (Run History shows COMPLETED)
  • Expected actions verified (child records, status updates)
  • Dedup guard verified (no duplicates on re-edit)
  • Email recipients verified (internal/QA addresses only in test)
  • Automation named descriptively (e.g., 1 Res Bldg - Create Acceptance)
  • Automation description filled in
  • Run History reviewed for any warnings
  • Another admin has reviewed the automation logic
  • Test records cleaned up or clearly marked

Related Documentation


Questions? Contact your System Administrator or the AutoBridge configuration team.