Skip to main content
Automations let you create workflows that run automatically when specific events occur. Instead of manually processing every message or updating records by hand, you can define rules that ShingleAI executes for you.

What Are Automations?

An automation is a workflow with three parts:
  1. Trigger - The event that starts the automation
  2. Conditions - Optional rules that must be true for the automation to run
  3. Actions - What happens when the automation runs

Example Automations

Here are some common automation use cases:
TriggerConditionAction
New email receivedFrom specific domainAdd sender to contacts
New email receivedSubject contains “urgent”Send notification
Contact createdHas company nameCreate business record
New email receivedFrom unknown senderLabel as “New lead”

Triggers

Triggers define when an automation starts. Available triggers include:
TriggerDescription
Message receivedA new incoming message arrives
Message sentAn outgoing message is sent
Contact createdA new contact is added
Contact updatedAn existing contact is modified
Customer createdA new customer record is created
More triggers are being added. Check the Automations page in your dashboard for the current list.

Conditions

Conditions let you filter when an automation runs. Without conditions, the automation runs every time the trigger fires.

Condition Types

TypeExample
Sender/recipientFrom a specific email or domain
ContentSubject or body contains text
LabelsMessage has specific label
Contact fieldsContact has specific company

Combining Conditions

You can combine multiple conditions:
  • All must match (AND) - The automation runs only if every condition is true
  • Any must match (OR) - The automation runs if at least one condition is true

Actions

Actions define what happens when an automation runs. Available actions include:
ActionDescription
Create contactAdd a new contact with specified fields
Update contactModify an existing contact
Add labelApply a label to a message
Send notificationAlert you or a team member
Run codeExecute custom JavaScript
AI instructionHave an AI agent process the message

Custom Code Actions

For advanced use cases, you can write JavaScript code that runs when the automation triggers:
// Example: Extract data from message and update contact
const senderEmail = message.sender.email;
const contact = await findContact(senderEmail);

if (contact) {
    await updateContact(contact.id, {
        lastContacted: new Date()
    });
}
Custom code runs in a sandboxed environment with access to ShingleAI APIs. See the API Reference for available methods.

AI Instructions

Instead of writing code, you can provide natural language instructions for an AI agent:
When a new email arrives from a .edu domain:
1. Extract the person's name and university
2. Create a contact with this information
3. Add the label "Academic"
The AI interprets these instructions and takes appropriate actions.

Creating an Automation

1

Open Automations

Navigate to Automations in the sidebar.
2

Create new

Click Create Automation.
3

Choose trigger

Select what event should start the automation.
4

Add conditions

Optionally add conditions to filter when the automation runs.
5

Define actions

Choose what should happen when the automation runs.
6

Save and enable

Give your automation a name and enable it.

Automation Status

Automations can be in different states:
StatusDescription
ActiveRunning and processing events
PausedTemporarily disabled, can be resumed
CompletedFinished (for automations with execution limits)
ExpiredPast its expiration date

Monitoring Automations

Track how your automations perform:

Execution History

Each automation shows its recent executions:
  • When it ran
  • What triggered it
  • Whether it succeeded or failed
  • Any errors that occurred

Execution Limits

You can set limits on automations:
  • Max executions - Stop after running N times
  • Expiration date - Disable after a specific date
This is useful for temporary campaigns or one-time workflows.

Best Practices

Start simple. Create basic automations first, then add complexity as needed.
Test with conditions. Use narrow conditions initially to limit the impact while you verify the automation works correctly.
Monitor executions. Check the execution history regularly to catch errors early.
Use descriptive names. Name your automations clearly so you remember what they do.