Juniper Mist Integration
In this guide we will cover:
- What is the Juniper Mist Integration?
- Connecting to Juniper Mist
- Sites
- Assets
- The Halo Integrator
- Alerting
Note: This Integration is available from v2.248+.
What is the Juniper Mist Integration?
The Juniper Mist Integration allows Sites and Assets to be imported from Juniper Mist into Halo. Alerts can also be configured to automatically create Tickets in Halo each time an alert is triggered in Juniper Mist, allowing agents to manage alerts from within Halo.
Connecting to Juniper Mist
In Configuration > Integrations > Asset Management and Alerting, hover over Juniper Mist and press the plus (+) icon to enable the Module.

Fig 1. Enabling the module
Once enabled, click into the module to begin configuring the Integration.
Next click into the "Juniper Mist Configuration" button.

Fig 2. Juniper Mist Configuration
Click "New" to create a new connection, or edit an existing connection by clicking into it.

Fig 3. Creating a new connection
Before creating your new connection you will need to create an API Token in Juniper Mist. In Juniper Mist, head to Organization > Settings.

Fig 4. Juniper Mist Settings
First locate your Organization ID, and copy this for later.

Fig 5. Organization ID
Next, scroll down to the API Token section, and select "Create Token".

Fig 6. Creating a Token
Set a name for your Token, and the desired Access Level, then click "Generate". Copy this as it will be required for your connection.

Fig 7. Generating a Token
Return to the Integration page in Halo, here you will need to set the Name, Organisation ID, Region, and API key for your connection.

Fig 8. Connecting to Juniper Mist
Click "Save", then use the "Test Configuration" button to confirm your credentials.

Fig 9. Testing Configuration
Sites
Once you have connected to Juniper Mist, head into the Sites tab. Here you will need to set the Site matching method, this determines how Halo and Juniper Mist Sites are matched to each other.

Fig 10. Site imports
Depending on the Site Matching Method you select, different options will show.
Import and map sites from Juniper Mist to sites in Halo
When the Site matching method is set to "Import and map sites from Juniper Mist to sites in Halo", you will have the option to add Site Mappings. To do this, click "+ Add" at the top of the Site Mappings table.

Fig 11. Site matching method
This will open a modal window where a Halo Site can be mapped to a Juniper Mist Site. This allows the Integration to know which Site in Juniper Mist relates to each Site in Halo.

Fig 12. Site Mappings
Once you have completed your Site Mappings, set a Customer for any new Sites to be created under in the "Customer for New Sites" dropdown. Is Sites are not mapped they will be created under the Customer specified here.
Site Rules
When the Site matching method is set to "Site Rules", you will have the option to add rules to determine which Site an Asset is assigned to based on a field. To do this, click "+ Add" at the top of the Site Rules table.

Fig 13. Site Rules
This will open a modal window where you will need to set the Halo Site to assign the Asset to, and criteria to determine when to assign to this Site. To add criteria, click the "+ Add" button at the top of the Criteria table.

Fig 14. Creating a rule
Select the field you would like to use for the rule, and set the value this should be set to in order for the Asset to be assigned to the Site. Then save your new rule.
Note: Criteria is based on Halo fields, so any fields set here will need to be mapped in the following "Assets" tab.
This method does not require the import of Sites after mapping.
General Configuration
Both methods then offer additional configuration options.
Default Site: This is the Site that Assets will be imported under if they have not been matched to a Site by the matching method.
Don't update the asset site for existing or matched assets: If enabled, any Assets that already exist in Halo will not have their Site changed (if different in Juniper Mist).
Upon saving, and if using the "Import and map sites from Juniper Mist to sites in Halo" Site matching method, the "Import Sites" button will show to manually import Sites. This button will be hidden if using the "Site Rules" method.

Fig 15. Importing Sites
Assets
Once Sites have been matched (and imported if using the Site mapping method), you can then import the Assets in the Assets tab.
The first field is the "Asset Matching Field", which will determine how Assets are matched to existing records when updating Assets. This should be an field that is unique per Asset.
You can then set Field Mappings in the table below by clicking "+ Add". These mappings determine which Halo fields information from Armis is pulled into. If the "Site Rules" matching method was used, ensure every field that is used as criteria is correctly mapped here to match that.

Fig 16. Field Mappings
If you do not have an existing field in Halo for this information to be stored in, you can select the option "Create a new Field during the next import" in the "Halo Field" dropdown. This will create a new field in Halo using the field name from Juniper Mist. If a field with this name already exists, it will instead be linked to the existing Field.

Fig 17. Creating a new Field during the import
Once you have set your Field Mappings, you will need to set a Default Group for new Asset Types. Juniper Mist Asset Types are matched to existing Halo Asset Types via their name. Any which do not match will be created under the group set here.

Fig 18. Asset Types
To determine the Asset Type of imported Assets, you will need to choose one of three methods from the "Determining an Asset's type" dropdown.
Use the same type for all Assets
When "Determining an Asset's Type" is set to "Use the same type for all Assets", all Assets imported into Halo from Juniper Mist will have the same specified Asset Type. This Asset Type is set using the "Default Asset Type" dropdown.

Fig 19. Use the same type for all Assets
Use a field to determine each Asset's type
When "Determining an Asset's Type" is set to "Use a field to determine each Asset's type, a set field will be used for determining an Asset's type. If an Asset cannot match via this field, it will be assigned to a set default Asset Type.

Fig 20. Use a field to determine each Asset's type
Determine Asset Type using rules
When "Determining an Asset's Type" is set to "Determine Asset Type using rules ", criteria can be mapped to Asset Types based on values in Halo Fields. If an Asset cannot match via this Field, it will be assigned to a set default Asset Type. To add a rule, click "+ Add". This will open a modal window where you will need to set the Halo Asset Type to assign the Asset to, and criteria to determine when to apply this Asset Type. To add criteria, click the "+ Add" button at the top of the Criteria table.

Fig 21. Determine Asset Type using rules
This will open a modal window where you will need to set the Halo Asset Type to assign the Asset to, and criteria to determine when to apply this Asset Type. To add criteria, click the "+ Add" button at the top of the Criteria table.

Fig 22. Adding rules
Miscellaneous Asset Import Settings
Finally you can set the miscellaneous Asset Import settings.
Don't create new Assets: If enabled, Assets will not be created, only updated.
Status of New Assets: Newly created Assets will be given this Status.
Don't update the Asset type for existing or matched Assets: Existing Assets will keep their current Halo Asset Type, and will not be updated by the import.
Click "Save", and to import the Assets, click the "Import Assets" button at the bottom of the tab.
The Halo Integrator
Once Sites and Assets are configured, you can enable the Halo Integrator to automatically sync Assets and Sites on a schedule.
Note: It is recommended to ensure you are happy with the configuration by manually importing before enabling automatic syncs via the Integrator.
Head into the Halo Integrator tab, and check "Enable the Halo Integrator for the Juniper Mist integration". Now select the entities you wish to automatically sync.

Fig 23. The Halo Integrator
If you would like Assets that are deleted in Juniper Mist to be made inactive when then sync to Halo, click "Deactivate Assets in Halo when they are deleted from Juniper Mist (Halo Integrator only)".
Alerting
If you would like to receive Alerts from Juniper Mist in Halo, head to the Alerts tab, and select "Enable Alerts". Once selected, you can set the Ticket Type and User for the Alerts to be created under.

Fig 24. Enabling Alerts
Next you will need to set a Webhook Secret, and copy this. Then copy the Webhook URL provided at the top of the page. This will be formatted as https://YOURHALOURL.COM/api/notify/junipermist.
Now head to Juniper Mist, Organization > Settings. In the Webhooks section click "Add Webhook", and enter the URL and secret you copied earlier.

Fig 25. Creating a webhook
Add this webhook and return to Halo.
Head back to the main page of the Integration (Configuration > Integrations > Juniper Mist). Here you can configure additional webhook settings.
Note: This is the page you will see when you first click into the module, not under the Juniper Mist Configuration Button.
Fig 26. Wehook Settings
If "Use incoming webhook service" is enabled in Configuration > Advanced Settings, you will have the option to set the Incoming Webhook Processing Method, this will control how the webhooks recieved from Juniper Mist are processed by Halo.
Use the default webhook processing functionality: This is the default option. Each incoming webhook will be processed immediately, and failed webhooks will not be retried.
Use the incoming webhook service with immediate processing: This means the webhook service is in use for the integration. Each incoming webhook will be processed immediately, and any failed webhooks will then be automatically retried a further 2 times via the task scheduling service. This is the recommended option.
Use the incoming webhook service with delayed processing: The same as "Use the incoming webhook service with immediate processing", but webhooks are not processed immediately when they are received. Instead, they are automatically queued and picked up by the task scheduling service. This option is only necessary if option 2 is failing to process webhooks after 3 attempts due to rate limits, i.e. the webhook result is returning 429 too many requests.
Logic has been added to the task scheduler to retrieve webhook resource data in batches. This greatly reduces the number of requests made to the third-party API, thus reducing the chance of hitting third-party rate limits. This logic is always used for "Use the incoming webhook service with delayed processing", and is used before retrying webhooks when using "Use the incoming webhook service with delayed processing".
In order to control how the Tickets created from Alerts in Juniper Mist are prioritised in Halo, you can map priorities. To do this, click "+ Add" at the top of the Priority Mappings table. This will open a modal window where you can match a Juniper Mist Priority to a Priority in Halo. This means when a Ticket is raised from the webhook, the priority of the Alert in Juniper Mist will be reflected in Halo.
Fig 27. Priority Mappings