Automations

Rules that watch a Query Hub view and send an email, a Slack or Teams message, a webhook call or a ServiceNow incident when rows start matching or a count crosses a line.

An automation watches your data for you. You choose a Query Hub view, narrow it with filters, and say what should happen when something new matches: send an email, post to Slack or Microsoft Teams, call a webhook, or open a ServiceNow incident.

Where an alert covers the issues Eido raises itself, an automation covers anything you can express as a query. “Tell the service desk when an app install fails on a director’s laptop” and “tell me when there are more than five active malware detections” are both automations.

Open the page from Admin, then Automations. Only an instance-level administrator can open it. An action can send device and user details outside Eido, so the page is kept to the people who run your Eido. Roles explains the kinds of administrator.

Automations lists each rule with its mode, whether it is enabled, and when it last ran and last fired.
Automations lists each rule with its mode, whether it is enabled, and when it last ran and last fired.

How an automation is put together#

Every automation has three parts.

PartWhat it isWhere you set it
QueryA Data View and any filters. This is what the automation watches.Trigger tab
TriggerWhen to act: for each new matching row, or when the number of matching rows crosses a value.Trigger tab
ActionsOne or more notifications, run in order.Actions tab

Alerts or automations?#

AlertsAutomations
WatchesEido’s device and certificate issuesAny Query Hub view, with your own filters
Tells you when it clearsYesNo
Can repeat a reminderNoYes
Several destinations in one ruleNoYes
You write the messageOnly for ServiceNowYes, for every action
Who can set it upAny administratorInstance-level administrators

Reading the list#

Each automation is a card, in alphabetical order.

On the cardMeaning
Individual Items or Summary ThresholdThe trigger mode.
Enabled or DisabledWhether it is running.
Last triggeredWhen it last fired its actions, or never.
Last evaluatedWhen it last checked your data, or never.
Disable / EnableStops or starts it.
HistoryOpens its past runs.
EditOpens the builder.
DeleteDeletes it, after a confirmation.

Build an automation#

  1. Start

    Press New Automation. Give it a Name, which is required, and optionally a Description.

  2. Choose the mode

    On the Trigger tab, pick Individual Items or Summary Threshold.

  3. Choose the data

    Pick a Data View. The list can be searched.

  4. Narrow it

    Press Add Filter for each condition. With no filters, the automation watches every row in the view.

  5. Finish the trigger

    For Summary Threshold, set the comparison and the Value. For Individual Items, choose whether to repeat a reminder.

  6. Add actions

    On the Actions tab, press Add Action, choose its type and fill it in. Add as many as you need.

  7. Save

    Leave Enable this automation as soon as it is created on to start it straight away.

Save is available once the automation has a name, a data view, at least one action, a threshold value if it needs one, and valid recipients on every email action.

The Trigger tab: the mode, the data view, the filters, and the repeat reminder.
The Trigger tab: the mode, the data view, the filters, and the repeat reminder.

The trigger#

Individual Items#

Use this to act on each thing that goes wrong: this device, this install, this detection.

The automation fires once for each row when that row starts matching. While the row keeps matching, it stays quiet. If the row stops matching and later matches again, that is a new occurrence and it fires again.

Only some views can be watched row by row, because Eido has to be able to tell one row from another between runs. In this mode the Data View list shows only the views that can. If the view you want is missing, use Summary Threshold, which works on every view.

Repeat Reminder

SettingBehaviour
OnceFires when the row starts matching and not again while it stays that way. This is the default.
Every N hours or daysAlso fires again each time that long has passed while the row is still matching.

Use Every for things that should not be forgotten, such as a device that has been non-compliant for a week.

Summary Threshold#

Use this to act on a total: too many of something, or too few.

Choose a comparison under Matching row count is, and a Value.

ComparisonFires when the number of matching rows
Less than (<)Drops below the value.
Less than or equal (<=)Drops to the value or below.
Greater than (>)Rises above the value.
Greater than or equal (>=)Rises to the value or above.
Equals (==)Becomes exactly the value.

The automation fires once when the count crosses the line, not on every check while it stays crossed. When the count goes back to the right side of the line, the automation is ready again, and the next crossing fires.

The threshold always compares the number of matching rows. To act on a condition, put the condition in the filters and count what is left. For example, filter Active Malware Detail to the detections you care about and set Greater than (>) with a value of 5.

Filters#

Filters work as they do in Query Hub. See Filters, grouping and charts. Changing the Data View clears the filters, because they belonged to the old view’s columns.

Actions#

Actions run in the order shown, top to bottom. If one fails, the others still run.

Each action card has a number, its type, an Enabled switch, arrows to move it up or down, and a bin icon. Switch Enabled off to keep an action’s settings while leaving it out of the run. Changing an action’s type clears its settings.

The Actions tab, with the Variables panel listing what can be placed in a message.
The Actions tab, with the Variables panel listing what can be placed in a message.

Email#

SettingWhat it is
Recipients (comma separated)One or more addresses. At least one is required, and each must be a valid address.
SubjectThe subject line. Variables are allowed.
Body (HTML)The message, as HTML. Variables are allowed.

Each recipient is sent their own copy.

Slack#

SettingWhat it is
Webhook URLThe incoming webhook address for the channel.
MessageThe text to post. Variables are allowed.

Teams#

SettingWhat it is
Webhook URLThe webhook address for the Teams channel.
MessageThe text to post. It arrives as a card. Variables are allowed.

Webhook#

Calls an address of your choosing, for anything that accepts an HTTP request.

SettingWhat it is
URLWhere to send the request.
MethodPOST, PUT, PATCH or GET. POST unless you change it.
Content TypeThe type of the body. application/json unless you change it.
Auth HeaderOptional. Sent exactly as typed, as the value of the Authorization header, for example Bearer followed by a token.
BodyThe request body. Variables are allowed.

ServiceNow#

Opens an incident.

SettingRequiredWhat it is
ServiceNow URLYesThe address of your instance’s incident table. The box shows the expected shape.
Username and PasswordYesA ServiceNow account that may create incidents. A saved password is shown masked. Leave it to keep it.
Caller EmailYesThe incident’s caller. A fixed address, or a variable such as {{primaryUserEmail}} to raise it on behalf of the device’s user.
Short DescriptionYesVariables are allowed.
DescriptionYesVariables are allowed.
Assignment GroupYesThe group the incident goes to.
Assign To Email (optional)A person to assign it to.
Impact (optional) and Urgency (optional)ServiceNow’s own values, for example 2.

This action stands alone. It does not use the ServiceNow connections under Integrations.

Variables#

A variable is a name in double curly brackets, such as {{deviceName}}. When the automation fires, Eido replaces it with the value from the row that matched.

The Variables panel beside the Actions tab lists every variable you can use for the view and mode you have chosen. Search it, press the copy button beside a variable, and paste it into the box where you want it.

ModeVariables
Individual ItemsEvery column of the data view, including columns that are hidden by default, plus {{automationName}} and {{rowKey}}, an identifier Eido makes for the row.
Summary Threshold{{matchedRowCount}}, {{thresholdActualValue}}, {{thresholdValue}}, {{viewName}} and {{automationName}}.

Variables work in an email’s subject and body, a Slack or Teams message, a webhook’s body, and a ServiceNow incident’s caller email, short description and description. They do not work in addresses or recipients.

A variable that Eido does not recognise is left in the message as you typed it, which makes a misspelling easy to spot.

When an automation runs#

Automations are checked each time Eido finishes synchronising a tenant, which is about once an hour. They do not run on a clock, and there is no button to run one now.

The first check fires nothing#

The first time an automation is checked after it is created, edited or enabled, Eido only takes note of what matches at that moment. It sends nothing.

That is on purpose. Without it, switching on “tell me about non-compliant devices” would send a message for every device that is already non-compliant. From the second check onwards, only changes fire.

It also means:

  • A new automation cannot fire until its second check. Allow a couple of hours before you expect anything.
  • Editing an automation resets it. Rows that were already matching are not announced again.
  • A threshold automation enabled while the count is already over the line stays quiet until the count drops back and crosses again.

Use Test Run to see what matches right now.

With more than one tenant#

Each tenant is checked on its own, after its own synchronisation. For Individual Items this makes no difference to what you receive. For Summary Threshold it does: the count is the number of matching rows in that tenant. “Greater than 5” means more than five in one tenant, not five across all of them.

Limits#

Two limits stop an over-broad automation from flooding a channel.

LimitWhat happens
More than 200 rows to fire for one tenant in one checkThe first 200 fire. The run is marked Capped in History, and the rest fire on the following checks.
More than 10,000 rows match for one tenant in Individual Items modeThe automation does not run for that tenant. History records a failed run, with an error telling you to tighten the filter or use threshold mode.

Test Run#

Test Run shows what the automation matches at this moment. It sends nothing and changes nothing.

Save the automation first, then open it with Edit and press Test Run. The test uses the automation as it was last saved, so save any changes before you test them.

The result shows:

  • Matched rows: how many rows match, across all your tenants.
  • Threshold crossed: Yes or No, for a Summary Threshold automation.
  • A sample of up to 25 matching rows, with the view’s main columns.
  • A warning if the automation matches too many rows to run.

If nothing matches you see No rows currently match. That is the answer to most “why has it not fired?” questions.

History#

Press History on a card to open the automation’s Execution History: its 50 most recent runs.

ColumnMeaning
TriggeredWhen the run happened.
StatusSuccess: every action worked. PartialFailure: some worked and some failed. Failed: none worked, or the automation could not run.
MatchedHow many rows matched in that tenant.
FiredHow many of them the actions were run for. A threshold run counts as 1.
CappedYes if the 200 limit was reached.
Duration (ms)How long the run took.
ErrorWhy the automation could not run, if it could not.

Only runs where something happened are listed. A check that finds nothing new leaves no row here. It still updates Last evaluated on the card. With several tenants, each tenant’s run is its own row.

Press a run to see Action results below the grid.

ColumnMeaning
ActionThe action’s type.
StatusWhether that action succeeded or failed.
TargetWhere it went: the recipients of an email, or the host of a webhook, Slack, Teams or ServiceNow address.
DetailWhat came back: how many recipients were sent to, the response code from a webhook, the number of the ServiceNow incident, or the error.
TimeWhen the action ran.

In Individual Items mode there is one line for each action for each row that fired.

Change, pause or delete#

  • Edit opens the builder. Saving resets the automation, as described above.
  • Disable stops it being checked. Enable starts it again, and its first check fires nothing.
  • Delete asks you to confirm, then removes it.

Troubleshooting#

It has never fired#

Look at the card.

  • Last evaluated says never: it has not been checked yet. Either it is disabled, or no tenant has finished synchronising since it was created. Enable it, or wait for the next synchronisation.
  • Last evaluated has a time and Last triggered says never: it is being checked and nothing new has matched since its first check. Open it and press Test Run. If rows match there, they were already matching when the automation started, and it is waiting for something new.

It fired, but nothing arrived#

Open History, press the run and read Action results. A failed action shows why in Detail. An email action that succeeded and did not arrive is usually in a junk folder.

A run says Failed with a message about too many rows#

The automation matches more than 10,000 rows in a tenant. Add filters until it selects only what you want to hear about, or switch to Summary Threshold.

I got hundreds of messages at once#

A filter was too wide, and many rows started matching at the same check. Tighten the filters. If one message about the total would do, use Summary Threshold instead.

It fired again for something I already knew about#

Either Repeat Reminder is set to Every, or the row stopped matching and then matched again. A row that flips in and out of the filter fires each time it comes back.

The threshold is crossed in Test Run but it did not fire#

Test Run counts across all your tenants. The automation counts each tenant separately, so no single tenant may be over the line. If it was already over the line when you enabled it, it is waiting for the count to drop and cross again.

A message shows the variable name, not a value#

The variable is not one Eido recognises for this view. Copy it again from the Variables panel instead of typing it.

The data view I want is not in the list#

In Individual Items mode, only views that can be watched row by row are offered. Switch to Summary Threshold to see every view.

Eido will not save an action#

Check its address. It must begin with https and must not be a private or internal address. For an email action, every recipient must be a valid address.

Which region is your Eido account in?

Each region has its own sign-in, so this page opens in the region you choose.

Not sure? The Login to Eido button in your welcome email opens the right one. See finding your region.

Does your organisation have its own Eido address, such as yourcompany.eido.io? Use the help there instead, at yourcompany.eido.io/help.

Popular

Your first dayA guided tour of a newly connected tenant, from the Get Started page to your first dashboard, device, report and alert.User guideDevice detailsEverything Eido knows about one device, from its hardware and patches to every policy and app assigned to it.User guidePatch ComplianceWhich devices are behind on security patches, how far behind, and how Eido decides when that becomes a problem.User guideBuilding a queryChoosing a view, picking columns, sorting and paging the results, and what every view in Query Hub holds.Query HubThings to ask OdieExample requests for Odie, grouped by what you get back, from a quick count to a finished dashboard, a workbook or a report in your inbox.User guideApp MeteringSee which applications are really used, by whom and for how long.User guideAlertsSend an email, a Slack or Teams message, a webhook call or a ServiceNow incident when Eido raises or clears an issue.AdministrationConnecting IntuneLinking your first Intune tenant to Eido, including who has to approve it, the access level to choose, what Microsoft asks you to accept and what happens during the first sync.Set up and account