0

I have a content type of RFP that has a term reference field named "RFP Categories". The users also have this same term reference. When I publish a node, I want to email all users who selected a category that is tagged in the node.

This SE post (Email users on node creation based on taxonomy reference) comes very close to the answer I am looking for, but I'm not quite able to follow it. I believe in their case they are setting the 'value' to a specific taxonomy term, whereas I need to fetch any use who has a term matching the node's terms.

My rule has the Fetch Entity by Property action seen below. Unfortunately, I cannot see (or maybe I'm failing to understand) how to link the "RFP Category" terms in the node to the terms in the user entities. It is broken somehow because when I publish an RFP node, I get a SQLSTATE error.

enter image description here

This is what my rule looks like so far.
enter image description here

1

I think the reason for this is that the 'Value' property is asking what you want to match in what you are looking for, basically in pseudo terms, what you've got above is:

  • Find the Entities of type: User

  • Where the Entity's property: RFP Category

  • Is equal to: The author of the node's Categories

This is where your selection falls down, because you're trying to search for a set of answers where the data matches an Array. If the node you create can only have 1 term entry (not multiple), I would use the action 'Add a Variable' and set it to the taxonomy term you've created on your node, something like

Add a Variable > Taxonomy Term > [node:RFP-Category] I'm guessing to your setup

This will create a new token for you which contains the Taxonomy term you're searching for. Then in your Entity query, you can use this as your value property

eg

  • Find the Entities of type: User

  • Where the Entity's property: RFP Category

  • Is equal to: [Your New Token]

If your RFP category has more than 1 or unlimited values, you will have to create a loop of the categories on the node first, then use 'Add a variable' and carry on with the same method

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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