Custom Links in Zoho Vertical Studio | Vertical Studio Help Guide

Custom Links

Custom links extend your application's functionality by connecting users to external services and resources with a single click. When users interact with records in your application, custom links provide quick access to complementary tools, databases, or web services.
Custom links support dynamic field substitution, meaning you can build URLs that automatically incorporate data from each record. This allows subscribers to access external services with record-specific information already pre-filled.
For example, a real estate application could include a custom link on property records that opens a mapping service with the property's address already loaded, or a custom link that displays property images from an external gallery by inserting the property ID into the URL.
Custom links are fully packagable components. When you publish your application, all links you create are included in that version and delivered to subscribers at signup or during upgrades.
  1. In Components > Links and Buttons, click Create New Link
  2. Complete the following fields:
    1. Module: The module where this link will appear.
    2. Label: The display label users see (e.g., "View on Twitter", "Locate on Map"). Maximum 50 characters. Use clear, descriptive names so subscribers immediately understand where the link leads.
    3. Description: Purpose and usage notes for this link. Maximum 250 characters
    4. URL: The URL, optionally including field placeholders. Maximum 3000 characters
    5. Permissions: Which user roles (profiles) can access this link
  3. Click Save
  1. Maximum links per module: 10 custom links
  2. Link name character limit: 50 characters
  3. Description character limit: 250 characters
  4. URL character limit: 3000 characters
Once you reach the 10-link limit on a module, you must delete or edit existing links to add new ones. Please note that this limit includes the links you create from the Developer Console and the ones that are added in the subscriber orgs as well.

Using field placeholders in URLs

Field placeholders allow you to build dynamic URLs that automatically incorporate record data. This enables subscribers to access external services with context-specific information pre-filled.

Placeholder syntax

To insert field values into URLs, use one of these formats:
  1. Access field from current module: ${FieldName}
  2. Access field from related module via lookup: ${ModuleName.FieldName}

Inserting placeholders

Rather than manually typing placeholder syntax, use the Fields dropdown when creating your link:
  1. In the URL field, click where you want the placeholder inserted
  2. Click the Fields dropdown and select the Field you want to insert
The placeholder syntax is automatically inserted.
This approach ensures proper syntax and gives you access to all available fields in your application.

Field placeholder examples

Example 1: Twitter profile lookups
In a Contacts module link, open a contact's Twitter profile:
https://twitter.com/search?q=${TwitterHandle}
When a subscriber clicks this link on a contact record, the contact's Twitter handle is substituted, opening their profile directly.
Example 2: Address-based mapping
Open contact addresses on a mapping service:
https://maps.google.com/maps?q=${Address}
Example 3: Multi-parameter URLs
Combine multiple fields in a single URL:
https://example.com/profile?name=${First Name}&company=${Company Name}&region=${Region}

Info
Important placeholder considerations
Empty fields: If a field is empty on a record, the URL may be invalid. Test links with various record states to ensure they remain functional.
Special characters: Fields containing spaces, ampersands, or other special characters may require URL encoding to function correctly in external services.
Comma-separated values: If your link is accessed from a list view with multiple records selected, field values are separated by commas in the URL
You can modify link properties at any time to respond to changing requirements:
  1. Go to Components > Links and Buttons in your Developer Console
  2. Find the link you want to edit
  3. Click the Edit icon
  4. Update the link name, URL, description, or permissions as needed
  5. Click Save.
Changes to upgradable properties (Name, URL, Description) are deployed to subscribers when they upgrade to the next application version.
To remove a link from your application:
  1. Go to Components > Links and Buttons
  2. Locate the link you want to delete
  3. Click the Delete icon
  4. Confirm the deletion
After you delete a link and publish that version, the link is removed from all subscriber organizations on their next upgrade. The link definition cannot be recovered, and any subscriber customizations are lost.
URLs with empty fields
If a record is missing a field value that your link uses, the URL may become invalid:
  1. Test with incomplete records: Verify how your link behaves when fields are empty.
  2. Provide fallback guidance: Document what subscribers should do if a link cannot function.
  3. Consider field requirements: Make important lookup or reference fields required to ensure links always have valid values.
Special characters in URLs
Some fields may contain characters that cause URLs to malfunction:
  1. Spaces: May require URL encoding (replaced with %20 or +)
  2. Ampersands (&): May need to be encoded as %26
  3. Quotes and apostrophes: May break URL parameters
  4. Solution: Test links with records containing special characters before publishing
A packaged custom link is a link created in the Developer Console and included when you publish your application. Subscribers receive packaged links at signup or during application upgrades.

Packaging behavior

The following table describes the packaging behavior for custom links:

Property

Upgrade Type

Subscriber Modify Access

Name

Upgradable

No

Module

Upgradable

No

URL

Upgradable

No

Description

Upgradable

No

Permissions

Non-Upgradable

Yes



Info
Important constraints:
  1. Subscribers cannot delete a packaged custom link.
  2. Permission changes are subscriber-editable, allowing organizations to customize which roles can access links.

Changes and impacts

When you add, modify, or delete a packaged custom link and publish those changes, the following occurs in subscriber organizations during upgrade:
​
Adding a custom link: The new link is available to all subscribers when they upgrade.
​
Modifying a custom link: Suppose you created a "View on Map" link that opens Google Maps with a contact's address and published your application. Version 1 subscribers now have this link. Later, you decide to change it to use a different mapping service. You update the URL from Google Maps to OpenStreetMap and rename the link to "Open in OpenStreetMap", then publish Version 2.
When existing Version 1 subscribers upgrade to Version 2, the link name and URL change for them automatically. New subscribers signing up for Version 2 receive the updated link directly. Subscribers cannot customize packaged links, so the change applies automatically to all organizations.
You change a link's module assignment: Link module assignment is upgradable. If you move a link from the Contacts module to the Leads module and publish a new version, all subscribers receive that change during their next upgrade. The link will appear on the new module for both new and existing subscribers.
​
Deleting a custom link: Suppose you created a "Check Credit Rating" link on the Contacts module that connected to an external service. After several months, the external service is discontinued. You delete the link from the Developer Console and publish Version 2.
When existing subscribers upgrade to Version 2, the link is removed from their organizations. The link definition cannot be recovered after deletion. Any customizations that subscribers made to the link's permissions are also lost.