
WBS Connect for Dataverse turns a WordPress site into a front end for your own Microsoft Dataverse (or Dynamics 365) environment. Records from any Dataverse table render as card grids and detail pages via shortcodes, and site forms create records directly in Dataverse. The data stays in Dataverse; only the presentation layer lives in WordPress.
Features
- Collections. Publish any Dataverse table by naming the table, the columns and an optional status filter. No code required; developers can also register collections via a filter.
- Grid and detail on one page.
[wbsdvc_collection]renders the card grid, and the same page renders the detail view when a record is selected, so links stay short. - Search, filters, sort and paging. Offer visitors a search box, filter dropdowns and sort choices per collection, and page through long tables with Previous and Next links that keep the current state. Column labels come from the table’s display names in Dataverse.
- Block editor. Dataverse Collection, Dataverse Record and Dataverse Form blocks wrap the shortcodes with a dropdown of your configured collections and forms and a live preview.
- Images and files. Show a Dataverse Image column on cards and detail pages and offer File columns as downloads, served through your own site so nothing points at Dataverse directly.
- Clean detail URLs. Point a collection at a slug column and detail links use readable slugs (
?dvc=my-record) instead of raw record ids. Id links keep working as a fallback. - Write-back forms. Build a form as a list of typed fields (text, email, phone, multi-line, number, money, date, date and time, choice, multi-select choice, yes/no, lookup, hidden). Values are validated and converted on the server, table metadata fills in labels, options and required levels, and submissions create records in Dataverse, optionally related to the record the form was shown on. Every submission is nonce-verified, honeypot-checked and rate limited; Cloudflare Turnstile can be switched on per form.
- Edit mode. An update-mode form prefills from the record the page shows and saves changes back to it, limited to records visible through the bound collection.
- Webhooks. Post a signed JSON message to URLs of your choice when a form creates a record and when the Dataverse connection fails or recovers, for Power Automate flows or Teams alerts.
- Server-side authentication. The plugin signs in with an Entra ID app registration (client-credentials flow) and a Dataverse application user with a least-privilege role. Credentials never reach the browser;
wp-config.phpconstants are the recommended home for them. - Caching and fail-open. Reads are cached with a configurable TTL. When Dataverse is unreachable, pages show a friendly notice instead of failing; the site never goes blank.
- Display-ready values. Choices, money, dates and lookups arrive formatted by Dataverse itself, in the environment’s locale.
- Themeable. All output runs through templates a theme can override, so markup, classes and SEO belong to the site owner.
Documentation
Setup walkthrough, every collection and form setting, shortcode and block attributes, webhooks, health alerts, the hook reference and a guide for moving from other Dataverse plugins: https://woods.consulting/docs-wbs-connect/
Requirements
- PHP 8.0 or newer, WordPress 6.0 or newer.
- Access to a working Microsoft Dataverse or Dynamics 365 environment is required. Without one the plugin has no function. Free developer environments are available from Microsoft: https://learn.microsoft.com/power-platform/developer/plan
External services
This plugin connects to two external services, both operated by Microsoft and both belonging to you, the site owner, plus one optional third-party service you switch on per form. Data flows only between your WordPress host and your own Microsoft tenant’s endpoints; nothing is sent to WOODS Business Solutions or any other third party, and the plugin contains no telemetry.
- Microsoft Entra ID token endpoint (
login.microsoftonline.com). The plugin requests OAuth2 access tokens here using the tenant id, client id and client secret you configure. This happens whenever a cached token has expired. -
Your Microsoft Dataverse environment (the
*.dynamics.comURL you configure, for examplehttps://yourorg.crm4.dynamics.com). The plugin reads the records you chose to publish and creates the records your visitors submit through configured forms (typically a name, email address, phone number and message). This happens on page views of pages using the shortcodes (subject to caching) and on form submissions. -
Cloudflare Turnstile (optional). When you switch on the Turnstile toggle for a form and enter a site key and secret key, that form loads the Turnstile widget script from
challenges.cloudflare.comin the visitor’s browser and, on submit, your site sends the challenge token together with the visitor’s IP address to Cloudflare’s siteverify endpoint to confirm the challenge passed. Forms without the toggle never contact Cloudflare. Terms: https://www.cloudflare.com/website-terms/, privacy: https://www.cloudflare.com/privacypolicy/
Webhooks you configure yourself post to the URLs you enter and nowhere else.
The Microsoft services are governed by Microsoft’s terms and privacy statement:
- Terms: https://www.microsoft.com/licensing/terms
- Privacy: https://privacy.microsoft.com/privacystatement
WOODS Business Solutions is an independent company and is not affiliated with, endorsed by or sponsored by Microsoft. Dataverse, Dynamics 365 and Microsoft are trademarks of the Microsoft group of companies, used here solely to describe compatibility.
Screenshots
![Collection grid rendered by [wbsdvc_collection].](https://ps.w.org/wbs-connect-for-dataverse/assets/screenshot-1.png?rev=3620392)
Collection grid rendered by [wbsdvc_collection].

Record detail view with an attached write-back form.

Connection settings with wp-config constant lock and connection test.

Collections management.

Form (write-back) management.