Skip to main content

Overview

Automations are the workflow engine of Firstwork. They let you define event-driven processes that automatically execute actions when specific conditions are met. From sending welcome emails to advancing candidates through stages, automations eliminate manual work and ensure consistency.

Anatomy of an Automation

Every automation has three components:
  1. Trigger — The event that starts the automation
  2. Rule (optional) — A condition that must be satisfied
  3. Actions — One or more operations to perform

Triggers

Trigger TypeDescriptionUse Case
OnChangeFires when a field value changesApplication status changes, form field updated
ScheduleFires on a time-based schedule (cron)Daily compliance checks, weekly reports
FormElementSubmissionFires when a specific form field is submittedReal-time validation, dependent field updates
ExternalAPIFires when an external API call is receivedWebhook from ATS, partner system notification
WebhookFires from an external webhook triggerCustom integrations, third-party events
RecollectionFires during a data re-collection eventPeriodic document re-verification

Trigger Configuration

Each trigger can be scoped to:
  • Specific hiring flows
  • Specific stages within a flow
  • Specific forms or form elements
  • Specific contract types or statuses

Actions

Automations can execute one or more actions in sequence:

Communication Actions

ActionDescription
Send EmailSend templated emails via SendGrid
Send SMSSend text messages via Twilio/Plivo/Exotel
Slack MessagePost messages to Slack channels

Data Actions

ActionDescription
Fill Form ElementUpdate a form field value
Update ApplicationChange application status or stage
Update ContractModify contract fields
Contract CreationCreate a new contract
Fill Form with RPAUse RPA to populate form data
Recollect DataTrigger data re-collection from candidates

Integration Actions

ActionDescription
WebhookMake HTTP requests to external services
Run OCRProcess documents with optical character recognition
Enroll CourseAssign training in the LMS
Veriff ActionTrigger identity verification
Fountain ActionsSync with Fountain ATS
App Integration ActionExecute third-party app integrations

Flow Control

ActionDescription
Send for Manual ReviewQueue for human review
Run AutomationChain to another automation
AI ActionExecute AI-powered logic

Input Variables

Automations support Input Variables that allow you to parameterize workflows:
  • Map data from the triggering event to action inputs
  • Use Object Graph paths to dynamically resolve values
  • Set default values for optional inputs
Example:
Input: candidate_email = {{application.candidate.email}}
Input: stage_name = {{application.current_stage.name}}
Action: Send email to ${candidate_email} about ${stage_name}

Automation Execution

Execution Records

Every automation run creates an Automation Execution record:
FieldDescription
AutomationWhich automation ran
Trigger EventWhat triggered the execution
StatusSuccess, failure, or skipped
Start/End TimeExecution timestamps
Actions ExecutedList of actions and their results

Action Executions

Each action within an automation also creates an Action Execution record:
FieldDescription
ActionWhich action ran
StatusSuccess or failure
Input DataData passed to the action
Output DataResult of the action
ErrorError details if failed
DurationHow long the action took

Reliable Execution

Automations execute reliably in the background with:
  • Automatic retries on transient failures
  • Durable state — progress is preserved even during maintenance
  • Full execution history for debugging and auditing
  • Scalable processing — handles thousands of concurrent automations

Common Automation Patterns

Trigger: OnChange — Application created Action: Send email with application confirmation and next steps
Trigger: FormElementSubmission — All required fields submitted Rule: Compliance check passes Action: Update Application — Advance to next stage
Trigger: OnChange — Application enters “Background Check” stage Action: Webhook — Send candidate data to Sterling API
Trigger: Schedule — Daily at 9 AM Rule: Document expires within 30 days Action: Send email reminder to candidate
Trigger: OnChange — Application status changed to “Rejected” Action: Slack message to #hiring-team channel
Trigger: OnChange — Contract created with status ACTIVE Actions:
  1. Send welcome email
  2. Enroll in orientation course
  3. Assign onboarding forms
  4. Notify manager via Slack

Webhook Triggers

External systems can fire automations using webhook triggers. Each automation with a webhook trigger gets a unique URL that external services can call to start the workflow. This is useful for:
  • Receiving results from background check providers
  • Integrating with custom internal tools
  • Connecting to third-party services like Zapier or Make
See Webhooks and the API Reference for details.

Best Practices

Avoid infinite loops: Be careful when automations trigger other automations. Use rules to prevent re-execution on data that an automation itself modified.
  • Start simple — Begin with single-action automations and add complexity as needed
  • Use descriptive names — Make it clear what each automation does and when it fires
  • Monitor executions — Regularly review execution logs for failures
  • Test in staging — Always test automations in a staging environment first
  • Use rules wisely — Add conditions to prevent unnecessary action executions