Email notification when record updated is not getting triggered

Nisar2
Mega Guru

Hi experts,

I've run into a weird problem. I've a notification setup as follows:

When to run:

find_real_file.png

 

Who will receive:

find_real_file.png

 

What will it contain:

find_real_file.png

 

 

Then I use a background script to update the record's substatus (which is happening as I check it in the form view)

But when I open the sys_email table and try to find any record of this email, I fail to see any rows. What could be causing it to fail?

Additionally, even the gs.info statement in the "Advanced condition" isn't showing up logs.

My initial assumption is that perhaps this notification is being run before the substatus is even updated/commited and hence the Substatus CHANGESTO condition is failing.

Interestingly, if I remove the CHANGESTO condition and keep only Case Type = Fault condition and then run the background script, the email is being triggered.

 

EDIT: NEW FINDINGS

It appears that the "When to run" condition isn't being honoured for "Updated" checkbox in some cases. Here's what I tried:

(a) Used only "Case Type = Fault" under conditions

(b) Kept the gs.info statement inside "Advanced condition"

(c) Ran the background script and put the substatus to empty

(d) Boom! The log statement was visible and the email was sent out

(e) Then I ran the background script and put the substatus to SIIAM interface failure

(f) No log statement got printed indicating that some condition failed

(g) Then I ran the background script and put the substatus to empty

(h) Boom! The log statement was visible again and the email was sent out

(i) Ran the background script and put the substatus to Processing (which is valid value)

(j) No log statement got printed indicating that some condition failed

(k) Ran the background script but did nothing on the substatus value and put a work note

(l) Boom! The log statement was visible and the email was sent out

 

So for some reason it seems the "when record gets updated" condition isn't working whenever I try to put the substatus to any other value except empty. Any thoughts as to why this might be happening?

1 ACCEPTED SOLUTION

Nisar2
Mega Guru

Caught the culprit. It was an "after" Business Rule that ran whenever substatus changes. In the script part, there was a setWorkflow(false) statement which was disabling the Notification engine.

To resolve it, I changed the order of the BR to 1001 as per https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0858407 and it started working now.

Thank you everyone for your suggestions. Turns out it was the dreaded setWorkflow statement that causing the issue.

View solution in original post

12 REPLIES 12

Saurav11
Kilo Patron
Kilo Patron

Hello,

Can you please paste the background script?

Are you using autoSysFields(false) or setWorkflow(false)?

Thanks.

Please mark answer correct/helpful based on Impact.

Nope, not using any of those in the background script. It's a simple query() -> gr.setValue('u_substate', 'xxxxx'); gr.update() statement.

Nisar2
Mega Guru

Caught the culprit. It was an "after" Business Rule that ran whenever substatus changes. In the script part, there was a setWorkflow(false) statement which was disabling the Notification engine.

To resolve it, I changed the order of the BR to 1001 as per https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0858407 and it started working now.

Thank you everyone for your suggestions. Turns out it was the dreaded setWorkflow statement that causing the issue.