First of all, what is Liquid?

Liquid is an open source templating language. This adds various super powers to HTML… now we can use if statements to conditionally show/hide things, use modular templates and include in other templates, loop for repeating regions like search results, and much, much more.

Part of what I love so much about Liquid is that you can achieve a lot with very little code – and the code is easy to read, even for non-programmers like me!

I’ll save you the full-blown history lesson but in short, liquid was originally developed by Shopify, then they very kindly open sourced it and DotLiquid was born, building in powerful extras for Common Data Service / Dataverse.

Warning: Gotcha!

Like me, you may be tempted to go and read all about liquid from the Shopify documentation. Little harm in doing so BUT you’d miss the most powerful features as far as Dynamics / Power Apps Portals are concerned… entities and fetchxml. These allow us to easily read data from Dynamics and Model Driven apps.
The real power it provides for Power Apps Portals is a free-form way to read data from Dynamics and model-driven apps – outside of entity lists, entity forms and web forms. You can even bring your existing Advanced Find skills along for the ride!

So maybe like when I was starting out with liquid, you’ve already mastered the portal config options and can create powerful web apps integrated with Dynamics or a Model Driven App in no time. What’s the benefit of learning liquid?

Like in nature, liquid can take any form… whether that’s an inbox, a picture gallery, an audio playlist, dashboards, slideshows or whatever more exciting mash up you can imagine!

In short, liquid opens up opportunities to break the mould when it comes to layouts, lets us incorporate multimedia, break free of list and form layouts, and allows us to combine many entities on the same page in any way we see fit

Do a lot with very little

And for those of you not confident with coding, liquid isn’t full-on like a programming language. It’s small but fully featured and I’m going to show you how you can achieve lots with only six key skills… if you wanted to rebuild my Spotify clone, you’d find yourself leveraging these same skills over and over in novel ways.
To support my Scottish Summit presentation, I’ve written a deep-dive blog post on each of these – see the links below, you’ll be surprised just how much bang for your buck you get with learning each of these! Once you can retrieve data and loop through it on screen for example, you’ll see this fits so many patterns and use cases that there’s very little you can’t do with it

Liquid plays nicely with out-of-the-box portal config options too

That’s not to say it’s either config options like entity lists, entity forms, web forms or liquid… there’s a lot of scope to combine the two. Personalise, customise and extend out of the box templates with liquid.
Yes you can create custom web templates from scratch with liquid, but you can also make use of liquid in all the following places if you need to extend / tailor / personalise the out-of-the-box user experience:

  • Web Templates
  • Web Pages
  • Content Snippets
  • Entity Lists
  • Entity Forms
  • Web Forms
  • Web Files

Note – If you’ve ever wanted to integrate a JavaScript plugin or jQuery plug-ins in your portal but didn’t know how to provide the data, liquid is the answer 🙂

So, what are those key skills?

Sorry, that’s as much as I got completed as of now. Please let me know whether that’s helped your understanding and give me a shout in the comments with anything else you’d like to know about learning Liquid for Power Apps Portals

In the meantime, here are the exact tutorials I learned from to get started with Liquid… in no particular order:

 

Once you’re up and running with liquid and need some reference material for the finer detail, here are some extremely helpful reference materials from the Microsoft Docs site:

Skill Purpose Link(s)
Entities
Assign
Fetch XML
For
If
Note Attachments

 

Franco Musso

You may also like

Leave a reply

Your email address will not be published. Required fields are marked *