Overview
Pendo follows standard web URL syntax rules. A URL is composed of different parts but here are 3 main parts of a URL.
example URL: https://www.example.com/path/to/myfile.html
https
part of the URL is referred to as the protocolwww.example.com
part of the URL is referred to as the domain or host name/path/to/myfile.html
part of the URL is called the path to the resource on the Web server
Supported URLs
The following are examples of supported standard URL syntax:
-
Standard URL:
https://www.pendo.io/features/platform/index.html
-
Wildcard:
https://www.pendo.io/features/*
(*
denotes a wildcard) -
Multiple Wildcards:
https://www.pendo.io/features/platform/index.html/*/*
-
Ignore After (this will ignore everything after a double wildcard):
https://www.pendo.io/features/platform/index.html/users/**
-
Include a Contains:
https://www.pendo.io/features/platform/index.html/users/~contains:dashboard
-
Pendo will also understand the difference between:
https://domain.com/#page1
andhttps://domain.com/#page2
, however you will not be able to do a wildcard (*
) after a fragment (#
) in any page rules. In addition, if you create the page rule //* it will match with both of the urls listed. If your urls are structured this way and you would like to have a page rule that only corresponds withhttps://domain.com
, please reach out to our support team. -
Query parameter existence:
https://pendo.io?mobile
-
Query parameter value:
https://pendo.io?language=english
- Multiple query parameters:
https://pendo.io?mobile&language=english
Parameterized URLs
Pendo provides the ability to ‘parameterize’ a page URL. This functions similarly to wildcard *
with a major addition: the various wildcard results will be created as their own page results nested under the ‘page’ you created. This is useful to easily create page rules across a countable variety of URLs with a single entry. To explain this further, let’s assume you have the following three page URLs that all carry mostly similar content or you would like to be viewed together:
https://www.pendo.io/features/foo/
https://www.pendo.io/features/bar/
https://www.pendo.io/features/ipsum/
We could use the following page rule to capture all three:
https://www.pendo.io/features/*parameter*/
These would appear inside your subscription under your page rule like this:

https://www.pendo.io?first=*parameter*
Unsupported URLs
Page Parameters: Pendo will skip any dynamically set page parameters in the URL (i.e. the section after an ;
but before a ?
or #
).
We do not currently support any form of NOT
within page rules. Additionally, we do not support ~contains:
after a ?
.
The *
will only act as a wildcard when matching the entirety of a string between two slashes. For example, https://www.pendo.io/features
will be matched by //*/*
but not by //*.pendo.io/features
or //www.pendo.io/f*s
.
Neither *
nor ~contains:
works after a ?
, they will be treated literally.
After a ?
, order of query parameters is ignored. For example, https://www.pendo.io?first=one&second=two
and https://www.pendo.io?second=two&first=one
will both be matched by the page rule //www.pendo.io?first=one&second=two
.
Custom Match
When using the Custom Match inside Manage Pages In-App there are various options that will appear below the URL.

Here is an explanation of the options:
<Ignore>
: This will match everything inside of two forward slashes/*/
<Ignore after>
: This will match everything else in the URL after a double star/**
<Parameter>
: This works just like<Ignore>
, but captures the values between the slashes- search_params=: This is related to the search/query part of the URL (i.e. everything after the
?
, but before any#
) set to a specific value - search_params=
<anything>
: This will include a search/query part of the URL set to any value
Examples
Query Parameters
To match https://www.pendo.io/features?language=english&mobile=false
and https://www.pendo.io/features?language=french&mobile=true
but not https://www.pendo.io/features?mobile=true
: //www.pendo.io/features?language
To match https://www.pendo.io/features?language=english
but not https://www.pendo.io/features?language=french
: //www.pendo.io/features?language=english
Subdomains
To match https://app.pendo.io/
and https://help.pendo.io/
but not https://www.insert.io/
: //~contains:pendo.io/**