Actions
Synthetic Events
When you set up Actions in Atlas, most of them trigger based on events that happen in your Discord server. While Discord tells us about many events directly (like when a message is sent), some events aren't provided by Discord. For these cases, Atlas uses something we call "synthetic events" - events that Atlas creates by watching for changes in your server.
Let's use an example: When someone gets a new role in your server, Discord doesn't send a specific "role added" event. Instead, it tells us "this member was updated" and shows us their new roles. Atlas then:
- Looks at the member's previous roles (from our cache)
- Compares them with their new roles
- If there's a difference, triggers your "Guild Member Role Add" action
While synthetic events are helpful, they do have some limitations:
- They rely on Atlas having up-to-date information in its cache
- If a member hasn't been active recently, Atlas might not have their previous information to compare against
- Some events might be delayed or missed if Atlas doesn't have the right permissions
Events and Special Cases
The following Action triggers use synthetic events:
- Guild Boost Add
- Guild Boost Remove
- Voice Channel Join
- Voice Channel Leave
- Guild Member Add¹
- Guild Member Role Add²
- Guild Member Role Remove²
¹ If someone joins who needs to complete Membership Screening, Atlas ignores the join event and instead waits for an update event where their pending status changes. If the user takes too long, it can cause Guild Member Add actions to never fire for some users.
² These events use a hybrid approach: If Atlas has "View Audit Log" permissions, it uses Audit Log events to see exactly what roles were added or removed. Without these permissions, it falls back to using synthetic events by comparing cached data.
For the most reliable experience, make sure Atlas has "View Audit Log" permissions in your server, which avoids some of the issues with synthetic events.