JSM
Automating Jira Cloud User Sync to Assets: Best Practices & Strategies
Learn how to automate Jira Cloud user provisioning into Assets User objects, ensuring seamless, real-time sync without manual work.

Introduction
Keeping your Assets directory up to date with every Atlassian account is essential for accurate tracking and reporting. By using Jira system webhooks together with Assets automation rules, you can automatically create or update User objects in real time whenever someone is added or modified in Jira Cloud.
1. Set Up a System Webhook for User Events
- Go to Jira Administration > System > Webhooks.
- Click Create webhook and enter:
- Name: User Creation Webhook
- URL: (Leave blank for now)
- Events: User created
- JQL Filter: (optional; leave empty to catch all creations)
This webhook will notify your automation rule when a new user is added.
2. Create an Incoming Webhook Automation Rule
- Navigate to Project Automation (or Global Automation Rules) → Create rule.
- Choose the Incoming Webhook trigger.
- Copy the generated Webhook URL and Secret token—you’ll use this in step 3.
- Under Actions, add Create Assets object and map fields:
- Object Type: Your User object type
- Jira User:
{{webhookData.user.accountId}} - Email:
{{webhookData.user.emailAddress}} - Display Name:
{{webhookData.user.displayName}}
3. Link the Webhook to Jira
- Return to your User Creation Webhook in Jira Administration.
- Paste the Incoming Webhook URL, including the
?secret-token=<token>suffix, into the URL field. - Save the webhook.
Now, every time a user is created in Jira, Jira will call your automation rule immediately.
4. Prevent Duplicate User Objects
- In your automation rule, after the webhook trigger, add a Lookup objects action.
- Use this AQL query:
objectType = "User" AND "Jira User" = "{{webhookData.user.accountId}}"
- Add a condition:
- First value:
{{lookupObjects.size}} - Condition: equals
- Second value:
0 - If true: proceed to Create object
- Else: proceed to Edit object
- First value:
5. Create or Update the Assets User Object
- If no existing object (
lookupObjects.size = 0):
- Add Create object.
- Map:
- Jira User:
{{webhookData.user.accountId}}- Email:{{webhookData.user.emailAddress}}- Display Name:{{webhookData.user.displayName}}
- If an object exists (
lookupObjects.size > 0):
- Add Edit object.
- Set Object ID:
{{lookupObjects.id}} - Map fields to update (Email, Display Name, Status, etc.)
6. Test Your Setup with Postman
- Method: POST
- URL: Your Incoming Webhook URL with
?secret-token=<token> - Headers:
X-Automation-Webhook-Token: <secret-token>Content-Type: application/json
- Body (raw JSON):
{
"user": {
"accountId": "sample-account-id",
"emailAddress": "user@example.com",
"displayName": "Sample User"
}
}
- Send the request. You should receive 200 OK.
- Check Automation Audit Log for execution details.
7. Best Practices & Real-World Tips
- Batch Limits: Keep AQL lookups under 50 results per rule to avoid throttling.
- Error Notifications: Use “Send web request” to alert Slack or email on failures.
- Example: A services firm onboarded 300 contractors in one week and achieved full sync within 30 minutes of each signup.
Ready to implement this Jira Cloud user synchronization automation end-to-end? Contact me today for a seamless setup and expert guidance on Atlassian Assets integrations!
For more Atlassian insights and expert strategies, subscribe to my newsletter for weekly updates.