Rule triggers
A trigger decides when a sync rule fires. Choosing the right one is what separates “sync everything all the time” from precise, intentional automation.
Contact changes
| Trigger | Fires when | Use it for |
|---|---|---|
| Created or updated | A contact is added or changed | The general default — keep a tool always up to date |
| Created (new only) | A contact is added for the first time | “Only sync new leads”, welcome flows — never re-processes on later edits |
| Updated (existing only) | An existing contact changes | Re-sync-on-change flows |
The created/updated split is what makes “only sync new leads” possible: a Created rule fires once, on first capture, and never again — so a form re-submit or a field edit won’t re-trigger it.
Suppression
| Trigger | Fires when |
|---|---|
| Unsubscribed | A provider reports the contact unsubscribed |
| Bounced | A provider reports the email hard-bounced |
| Marked as spam | A provider reports a spam complaint |
These let you build compliance flows — e.g. when a contact unsubscribes anywhere, remove them from a list and suppress them in every other ESP. They’re more flexible than the global suppression toggle because each rule can have its own conditions and destinations. See Suppression & compliance.
Lists
| Trigger | Fires when |
|---|---|
| Added to a list | The contact joins a list — manually, via import, from a source, or from another rule |
You can scope this trigger to a specific list (“when a contact joins the VIP list → push to your Mailjet VIP audience”) or leave it as any list. OpenContact prevents loops if one rule’s list-add would trigger another.
How matching works
A concrete event also matches the general default: a Created event fires both your Created rules and your Created-or-updated rules. Every other trigger matches only its own type. This means your existing “created or updated” rules keep working exactly as before while you add more precise ones alongside them.
Still stuck?
Send us your project ID and what you saw. Contact support.