Hi Averil,
You can build the dashboard in Portal using the CRM charts i.e. if you create charts in CRM then you can use these charts in portal using the guid value.
{% chart id:"chart-guid-without-braces" viewid:"view-guid-without-braces" %}
Check this link-
colinvermander.com/.../whats-new-in-dynamics-365-portals
Sample Web Template for Dashboard
==================================
<div class="dashboard container">
<div class="page-header">
<h1 aria-label="{{ snippets['Partner Dashboard Title'] | default: resx['Partner_Dashboard_Title'] | h }}">{% editable snippets "Partner Dashboard Title" default: resx["Partner_Dashboard_Title"] type: 'text' tag: 'span' %}</h1>
</div>
<div class="row">
<div class="col-md-6 small">
<!-- Application Type By Status -->
{% chart id:"F923B53A-8E92-E711-815D-E0071B659EC1" viewid:"C51EAC22-B925-409B-AE7B-5691E922B6C5" %}
</div>
<div class="col-md-6 small">
<!-- Cases by Status - Open -->
{% chart id:"458DF52A-AC99-E511-80DA-00155DC1B253" viewid:"BFE75DA-CE0E-E511-9461-00155D038C01" %}
</div>
<div class="col-md-12 show-chart-legend ">
<!-- Application Type -->
{% chart id:"2B7933F3-8B92-E711-815D-E0071B659EC1" viewid:"C51EACsss22-B915-409B-AE7B-5691E922B6C5" %}
</div>
<div class="col-md-12 small" data-entitygrid-layout="compact">
<!-- Application Pending Approval -->
{% include "entity_list" key:"Applications - Pending - List" %}
</div>
</div>
</div>
===================================
I do not have much experience with Power Bi. The below link i found recently to embed the reports in Power BI.
community.dynamics.com/.../embed-powerbi-reports-into-microsoft-portal
Hope this helps.