Introduction
You don’t need a massive budget or a team of developers to build a Customer Relationship Management (CRM) system. With Microsoft Power Platform, you can create a tailored CRM solution for your organization in just a weekend—no code required. Whether you’re tracking donors, clients, volunteers, or stakeholders, this guide walks you through the process using Power Apps, Dataverse, and Power Automate.
Tools You’ll Use
- Power Apps (Canvas App)
- Dataverse (or SharePoint Lists if you’re on a tight budget)
- Power Automate (for workflows)
- Optional: Power BI for reporting
Step-by-Step Guide
1. Define Your Core Entities
Think about what you need to track: Contacts, Organizations, Interactions, Opportunities?
Create a quick list of fields (e.g., Name, Email, Status, Last Contacted)
2. Set Up Your Dataverse Tables
- Go to Power Apps > Tables > New Table
- Create your entities and fields (e.g., Contact table with columns for name, email, and relationship status)
3. Build a Canvas App
- Use the Power Apps Canvas App from blank
- Connect it to your Dataverse tables
- Add screens for:
- Home/Dashboard
- Contact list (Gallery)
- Contact details/edit form
- Add new contact
4. Automate with Power Automate
- Example flow: “When a new contact is added, send a welcome email”
- Add flows for reminders to follow up, or flag inactive contacts
Check out this blog for an example power automate flow creation
5. Test and Share
- Share the app with your team
6. Use Security Roles in Dataverse to Manage Access
Once your CRM is ready, you’ll want to control who can view, edit, or manage different parts of the system. That’s where Dataverse security roles come in.
Here’s how to set them up:
1. Go to the Power Platform Admin Center
- Visit https://admin.powerplatform.microsoft.com
- Select the environment where your CRM lives
2. Open Security Roles
- Navigate to Environments > [Your Environment] > Settings
- Under Users + Permissions, click Security roles
3. Create a New Role
- Click + New role
- Name it something like CRM_ReadOnly, CRM_Admin, or CRM_Contributor
- Click Create
4. Set Table Permissions
- In the role editor, go to the Core Records or Custom Entities tab
- For each table (e.g., Contacts, Interactions), set permissions:
- Read = Organization (for full visibility)
- Create/Edit/Delete = User or None, depending on the role
Example: A read-only user would have Read = Organization, and all other permissions set to None
5. Assign the Role to Users
- Go to Users + Permissions > Users
- Select the user(s) you want to assign the role to
- Click Manage roles, check your new role, and click Save
6. Test It Out
- Have the user log in and confirm they can only access what they’re supposed to
Pro Tips:
- You can assign multiple roles to a user—permissions are cumulative
- Use Teams in Dataverse to manage access for groups
- For sensitive fields (like donation amounts), use Field-level security
- Use Business Rules in Dataverse to add logic without code (e.g., auto-fill fields)
- Theme the app to match your org’s branding
- Version it: Save iterations as you go, especially before big changes
Final Thoughts
This type of solution is ideal for teams that have outgrown spreadsheets but don’t want the cost or complexity of traditional CRM tools. With the Power Platform, you’re in control of the features, experience, and data—and you can iterate fast.