I recently used the steps in the blog post created by Roman Savran of UDS consulting to set up a CRM Portal to run Custom Actions. You can find this post here. Below are the two major things that I learned in the process.
FetchXml results in Liquid Templates are Cached
FetchXml results in liquid templates are cached. I had a lot of issues with plugins not firing when I expected them to because of this. It turns out that when testing, it is very important to change the cacheString parameter between requests.
Plugins Registered on the Execute message do not appear in the Plugin Trace Log unless there was an error.
At one point while working on this, I went down the path of the Portal potentially using a different message. This was due to not recognizing the above. To identify the message, I registered a plugin on the Execute message. CRM was set to write all plugin executions to the trace log. However, I only saw this plugin in the trace log whenever there was an error.
See my follow up post on security at the link below.
Running Custom Code in Dynamics CRM Portal – Part 2 – Security