I've got a simple rule sending a notification email to site admin on the event 'A user has been subscribed'.

I'm however getting 2 emails on a signup. Any idea why and how to fix so the admin only gets notified once on each signup?

SimpleNews Version: 7.x-1.1 Core Version: 7.39

  • Any feedback about my answer? Commented Feb 8, 2018 at 13:25

2 Answers 2


@Kristoffer Rom, I've just tested and I've got the same duplication.
So, I suggest you create such notification rule based on:

  • "After saving new user account" event.
  • "Send mail" action from "System" actions group.
  • Thanks @jvb. However I don't think that's specific enough as users can be created some other ways on our site, for example on commerce checkout. Any other ideas? Commented Dec 8, 2015 at 16:22
  • @Kristoffer Rom, "After saving new user account" event fires regardless of when and where user is signed in. I use the same rule more than 3 years. I can't imagine when this event couldn't fire.
    – jvb
    Commented Dec 9, 2015 at 6:46
  • I understand, but I want to be able to distinct between various types of signups. Do I make sense @jvb? Commented Dec 9, 2015 at 12:05

Understanding what's happening

Your question seems like a variation of the question 'Why is my rule that reacts on event "After updating an existing user account" firing twice?'. The accepted answer in that question might help to understand your issue (what's causing it) also, ie:

some other module code is calling a user_save on hook_user_update triggering the rules event a second time.

If I was to debug this, I'd disable all contributed modules (except "Rules" and "Entity API") to check if it's indeed a contributed module (I don't expect it to be core). And then re-enable the contributed modules one by one until the issue comes back. As soon as it comes back, you pinpointed the contributed module causing the issue, and you can start working on a possible remedy for that.

Workaround 1

That question also has another answer with a very interesting workaround, with an image which looks like so (a picture is worth more then 1000 words):

enter image description here

Workaround 2

Another workaround to prevent this issue from happening, is to improve your existing rule to make it similar to the rule included in my answer to "How to implement a Rules Condition like [account:last-login] = never?". More specifically:

  • Add a Rules Condition like: User does NOT (!!!) have a role with role id = "4".
  • Add a Rules Action like: Grant User the role with role id = "4".

So this improvement of your rule will check if the user does not yet have some (designated) role with role id = "4" (adapt to whatever role id that fits your case). If that's the case, then the user is granted that role. With this improvement to your existing rule, this is what will happen:

  • The 1st time your Rules Actions will still be performed (and grants the designated role).
  • the 2nd time not ALL of your Rules Conditions will be satisfied (since the designated role was granted before), and therefor your Rules Actions will no longer be performed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.