Until recently, the correct email was being sent out when someone registered. Recently (I don't know exactly when since I don't get a copy of them), the wrong one started going out. I can't figure out why.

The email template being sent is Events - Registration Confirmation and Receipt (on-line).

It used to be that the text under this was sent out if you registered:

    {if $event.confirm_email_text AND (not $isOnWaitlist AND not $isRequireApproval)}

Now instead of it sending out that, it's sending out what is under the else that is under that.

What could have caused this? The events do not have a waitlist, nor do they require approval. Occasionally we do have ones that do have either/both of those, but none of the current events do.


EDIT: Sorry, forgot to add that this is CiviCRM 4.7.22 and Drupal. I don't know of any PHP updates, but those things sometimes happen via the hosting company without our knowledge. The last CiviCRM updates should have been done prior to the last time I tested the email process a couple weeks back or so.

  • Hi Jenni, it helps if you add the version of CiviCRM you are using. And did you do a recent upgrade of CiviCRM, PHP or the database? Dec 13, 2017 at 22:00
  • doesn't help you now but using the Transactional Email extension can be useful in such situations as you get to see what went out - github.com/fuzionnz/nz.co.fuzion.transactional
    – petednz - fuzion
    Dec 13, 2017 at 22:25

2 Answers 2


I have just a suggestion for debugging:

  1. Enable debugging at civicrm/admin/setting/debug.
  2. Add the smarty token {debug output="html"} to the workflow message template.
  3. Now a dump of all the smarty variables and their values are shown in the email. Better to this on a test instance because you do not want your participants to see this.
  4. Examine the values of $event.confirm_email_text, $isOnWaitlist and $isRequireApproval. Maybe this gives some more information.
  • I'll try that later. It isn't pulling in the waitlist or requireapproval text, as the text under those doesn't show. There's the text I quoted above, then an else, then the waitlist, then the requireapproval. It's pulling the "else". Dec 14, 2017 at 21:03

In my experience, registration (receipt etc.) emails can be very finicky, one small character "{" out of place and things can go south quickly.

Have you've customized your email language? If so, you can revert to the default email message - don't forget to keep a copy of your customizations - and run a test registration to see if the error still exists.

  • We did, but it was working for a couple weeks at least after that. I ran tests after the last changes I made and everything was working. Dec 16, 2017 at 4:29
  • Is it a new event registration that the email receipt language is not working properly on or all events?
    – RayWright
    Dec 18, 2017 at 15:01
  • It's all of them. They're all using the else instead of what they were using previously. Dec 19, 2017 at 0:16
  • No other changes to the events themselves? Do the events have confirmation language set in the online registration section?
    – RayWright
    Dec 19, 2017 at 14:24
  • Nope, there were no changes since then - some of these were created well before then. The confirmation language is the same it's always been. I've gotten pulled off to a couple other things, so I just copied the text into the "else" for now so that at least the emails are sending. I've got to refresh the database on the dev site so that I can test out some things there to see what I can find out. Dec 20, 2017 at 3:27

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.