In some cases, you may want to use shared maps with URL parameters. For example, to embed a shared map into a customer portal, so that when a customer logs into your portal and the customer's id becomes known, you can show on the embedded map only records assigned to this particular customer while hiding all others. To achieve this, you may add customer_id URL parameters to the shared map's link while using this URL parameter in a Map layer's formula to filter records by the customer id:
Map layer's formula:
Customer ID equals to {{url.customer_id}}Shared map's link:
https://app.mapsly.com/sharedmap/5f329d3e01d740ea8/?customer_id=58472
In this case you're effectively using a URL parameter to restrict visibility to certain records so it's essential that the customer cannot alter the customer_id in order to see records assigned to another customer.
To prevent such an unauthorized alteration, check the Request URL signature checkbox in the Shared map configuration and add the URL signature generated for this particular link including the customer_id value. In this case, before loading the shared map Mapsly will check validity of the URL signature and will load the map only if the signature matches the link with all its URL parameters for which it was generated.
How to generate URL signature
There are several ways to do it: in the shared map configuration popup, using the automation suite, or through the API.
1- Sign a static link in 'Shared map configuration' popup
For a static link, which doesn't contain record-specific URL parameters like the customer_id, you may generate a signature right in the Shared map configuration popup.
2- Generating record-specific signed shared maps links using automation
For links with dynamic URL parameters, like the customer_id in the example above, you may create a Workflow triggered when a new customer is created with the Update field action that will generate a signed URL using the SignUrl() system function and store it in a custom field on the Account record:
Here, we're using the following target value for the Map link field that stores the shared map link that will be embedded into the customer portal:
{{SignUrl('https://app.mapsly.com/sharedmap/g6r4551fgHg6f57?customer_id=' + record.id)}}
Sign a URL via Mapsly API
You can use SignUrl() in a custom API Endpoint to generate a signed Shared Map URL and store it in the response variable.
For a URL with a known parameter value:
{{Set('response', SignUrl('https://app.mapsly.com/sharedmap/ID?customer_id=43XXXXXX'))}}When the endpoint runs, Mapsly generates the signed URL and stores it in response. You can find the generated URL in the Execution Log, inside the action context.
Sign a record-specific URL using a dynamic value
{{Set('response', SignUrl('https://app.mapsly.com/sharedmap/ID?customer_id=' ~ record.id))}}If you call this action without a record context, you may see an error indicating that record is null. This happens because Mapsly does not know which Company or CRM record should provide the value for record.id.
To provide the required context, go to the Execution Log, locate the action execution, and click Action. From there, add the action as a button to a record-level location, such as the Company map popup or Record View, where Mapsly has access to the current Company.
Once the button is added, open a Company record and click it. Mapsly will execute the action using that Company’s record.id, generate the corresponding signed URL, and store it in response.
Note: If an action that uses record.id is called without a record context—for example, by opening the API Endpoint URL directly—the record variable will be null. In that case, either execute the action from a record-level context or pass the required customer identifier to the endpoint explicitly.




