Skip to main content

Custom Access Request Page

Custom Plans

This feature is available in our custom plans. Please contact us to get access.

Introduction

Ever had users message you frantically because they can't access a dashboard? With custom 403 pages, you can turn that dead-end "Access Denied" screen into something actually useful.

Instead of users hitting a wall, you can:

  • Send them to a request form - Link to Google Forms, Jotform, whatever you use
  • Show who to contact - "Need the sales dashboard? Email [email protected]"
  • Give them next steps - Link to your wiki, ticket system, or training docs
  • Pre-fill their info - Their name, email, and the dashboard they need are already filled in

This helps streamline the access request process and reduce the number of adhoc Slack messages.

Common Use Cases

The "Request Access" Button

This is what most teams use. User can't see a dashboard? They click a button, fill out a form, done. You get notified and can approve it.

"Here's How to Get Access"

Some companies have specific processes - maybe you need to complete data training first, or submit a ticket through ServiceNow. Link directly to those resources so users can help themselves.

Quick Setup

  1. Go to Organization SettingsCustom 403 Page
  2. Grab one of the templates below (or write your own)
  3. Replace the example links with your actual form URLs
  4. Hit save

That's it. Next time someone hits a restricted dashboard, they'll see your custom message instead of a generic error.

Ready-to-Use Templates

Template 1: "Request Access" Button

403 template preview

Remember to replace the link in the Request Access button with the link to your form

<a href="link-to-your-form" target="_top" class="request-button">
Request Access
</a>

Template 2: Connecting to Form Services

Want to pre-fill the user's info in your form? Here's how to set that up with different services:

Google Forms

<!-- Create your form with these fields: Email, Name, Dashboard URL, Reason -->
<!-- Get the prefilled link from Forms > More > Get pre-filled link -->
<a href="https://forms.gle/YOUR_FORM_ID?entry.emailFieldId={{ USER_EMAIL }}&entry.nameFieldId={{ USER_NAME }}&entry.urlFieldId={{ CURRENT_URL }}"
target="_top"
style="background: #4285f4; color: white; padding: 10px 20px; text-decoration: none; border-radius: 4px;">
Request via Google Forms
</a>

Jotform

<!-- Jotform accepts URL parameters for field prefilling -->
<a href="https://form.jotform.com/YOUR_FORM_ID?email={{ USER_EMAIL }}&name={{ USER_NAME }}&dashboard={{ CURRENT_PATH }}"
target="_top"
style="background: #FF6100; color: white; padding: 10px 20px; text-decoration: none; border-radius: 4px;">
Request via Jotform
</a>

Microsoft Forms

<!-- For Office 365 users -->
<a href="https://forms.office.com/r/YOUR_FORM_ID?email={{ USER_EMAIL }}&name={{ USER_NAME }}"
target="_top"
style="background: #0078d4; color: white; padding: 10px 20px; text-decoration: none; border-radius: 4px;">
Request via Microsoft Forms
</a>

Typeform

<!-- Typeform uses # for hidden fields -->
<a href="https://yourcompany.typeform.com/to/YOUR_FORM_ID#email={{ USER_EMAIL }}&name={{ USER_NAME }}&dashboard={{ CURRENT_URL }}"
target="_top"
style="background: #262627; color: white; padding: 10px 20px; text-decoration: none; border-radius: 4px;">
Request via Typeform
</a>

Variables You Can Use

These automatically fill in with the user's actual info:

VariableDescriptionExample Output
{{ USER_NAME }}User's display name"Jane Smith"
{{ USER_EMAIL }}User's email"[email protected]"
{{ TENANT_NAME }}Your organization"Acme Corp"
{{ CURRENT_PATH }}Dashboard path"/dashboards/sales-metrics"
{{ CURRENT_URL }}Full URL attempted"https://app.holistics.io/dashboards/123"
{{ CURRENT_HOST }}Domain name"app.holistics.io"

Heads up: URL Encoding

Some form services get confused by special characters in URLs. If your form isn't pre-filling correctly, try URL encoding:

<!-- Some form services need encoded URLs -->
<a href="https://forms.gle/abc123?dashboard={{ CURRENT_URL | urlencode }}" target="_top">
Request Access
</a>

What Works (and What Doesn't)

You can use:

  • HTML and CSS (inline or in <style> tags)
  • Links to anywhere (just add target="_top")
  • All the variables listed above

You can't use:

  • External JavaScript sources or inline scripts (security limitations)
  • External CSS links or files
  • Form inputs or buttons (links only)

Important: All links must include target="_top" to navigate properly:

<!-- Correct -->
<a href="https://forms.gle/abc123" target="_top">Request Access</a>

<!-- Won't work -->
<a href="https://forms.gle/abc123">Request Access</a>

Let us know what you think about this document :)