This pre-deploy error appears when attempting to deploy a Zendesk element which contains a username, which doesn't exist in the target environment.
What triggers this error?
When deploying to Zendesk, you may get an error that says "Element references users which don’t exist in target environment", and the affected element won't be deployed because of this error.
This message shows up when Salto is trying to deploy Zendesk elements such as macros, automations or Zendesk Guide articles which contain a reference to one or more users, but some of these users do not exist in the target environment. This means that Salto can't automatically deploy the element as-is, and you'll have to solve the problem in order to deploy it.
How can I solve this?
To solve this issue, you have 3 options:
Manually add this user to your target Zendesk environment. After doing that, try deploying again for Salto to identify the newly added user.
Manually edit the element's NACL file, and change the missing username to one which exists in the target environment. You can edit the NACL during a deployment, in the pre-deployment overview stage.
Add the DefaultMissingUserFallback option to your target Salto environment's configuration file.
When using environment deployments, your environment configuration can be accessed from the environment "Settings" tab:
The DefaultMissingUserFallback, under the "deploy" section, should be set to "##DEPLOYER##" or to a specific user email address:
If set to "##DEPLOYER##", Salto will replace missing users with the Deployer's username. You will get a pre-deploy warning to remind you when that happens with a "usernames will be overridden" message.
If set to a specific username, Salto will replace missing users with the username you provided. You will get a "usernames will be overridden" pre-deploy warning to remind you when that happens.
Here's an sample configuration file which includes option i. above:zendesk {
fetch = {
include = [
{
type = ".*"
},
]
exclude = [
{
type = "organization"
},
{
type = "oauth_global_client"
},
]
}
deploy = {
defaultMissingUserFallback = "##DEPLOYER##"
}
}