NOTE: This app is not currently on the Zendesk Marketplace. Please follow the Usage Instructions to use this in your Zendesk domain.
The URL Builder App is a Zendesk Support app that creates dynamic, clickable buttons in the ticket sidebar. It transforms static URLs into context-aware links by automatically populating them with ticket data, user information, and custom fields using Zendesk placeholders.
- Streamline agent workflows - Eliminate manual copy-pasting of ticket data
- Quick external tool access - Connect directly to CRMs, knowledge bases, and other systems
- Dynamic URL generation - URLs automatically populate with current ticket context
- Simple configuration - No coding required, just JSON configuration
"node": ">=22.18.0",
"@zendesk/zcli": "^1.0.0-beta.54" # Only needed for development- Download the latest
app-<DATE>.zipfrom Releases - In Zendesk Admin Center, navigate to Apps and integrations > Zendesk Support Apps
- Click Upload private app
- Enter an App Name (e.g., "URL Builder App")
- Select the downloaded ZIP file
- Click Upload, then Agree and upload this App
- Click Install when prompted
For developers who want to modify the app, see the Contributing Guide.
After installation, configure your URL templates:
- In Zendesk Admin Center, go to Apps & Integrations > Zendesk Support Apps
- Find your installed URL Builder App in the Private Apps section and click the Settings (gear) icon
- In the URI Templates field, enter a JSON array of your desired URLs
[
{
"title": "Email Customer",
"url": "mailto:{{ticket.requester.email}}"
},
{
"title": "Search Customer in CRM",
"url": "https://yourcrm.com/search?email={{ticket.requester.email}}"
},
{
"title": "View Ticket Details",
"url": "https://yourdomain.zendesk.com/agent/tickets/{{ticket.id}}"
}
]This configuration creates three buttons in your ticket sidebar that automatically populate with current ticket data.
For basic links that don't need dynamic data:
[
{
"title": "Company Knowledge Base",
"url": "https://help.yourcompany.com"
},
{
"title": "Internal Wiki",
"url": "https://wiki.yourcompany.com"
}
]You can use any Zendesk object property as a placeholder in your URLs. Here are commonly used examples:
{{ticket.id}} - Ticket ID
{{ticket.subject}} - Ticket subject
{{ticket.description}} - Ticket description
{{ticket.status}} - Ticket status (new, open, pending, etc.)
{{ticket.priority}} - Ticket priority
{{ticket.custom_field_XXXXXXX}} - Custom field (replace XXXXXXX with field ID)
{{ticket.requester.id}} - Customer user ID
{{ticket.requester.name}} - Customer name
{{ticket.requester.email}} - Customer email
{{ticket.requester.externalId}} - External customer ID
{{ticket.assignee.user.id}} - Assigned agent ID
{{ticket.assignee.user.name}} - Assigned agent name
{{ticket.assignee.user.email}} - Assigned agent email
{{ticket.assignee.group.id}} - Assigned group ID
{{ticket.assignee.group.name}} - Assigned group name
{{currentUser.id}} - Current agent ID
{{currentUser.name}} - Current agent name
{{currentUser.email}} - Current agent email
{{ticket.organization.id}} - Organization ID
{{ticket.organization.name}} - Organization name
{{ticket.organization.organization_fields.XXXXXXX}} - Custom org field
For the complete list of available properties, see the Zendesk Apps API Reference.
[
{
"title": "Customer Profile in Salesforce",
"url": "https://yourcompany.salesforce.com/search?email={{ticket.requester.email}}"
},
{
"title": "Create Lead",
"url": "https://yourcompany.salesforce.com/lead/create?name={{ticket.requester.name}}&email={{ticket.requester.email}}"
}
][
{
"title": "Email Customer",
"url": "mailto:{{ticket.requester.email}}?subject=Re: {{ticket.subject}}"
},
{
"title": "Slack Customer Channel",
"url": "https://yourcompany.slack.com/channels/customer-{{ticket.requester.id}}"
}
]Zendesk allows custom fields on tickets, users, and organizations. These can be used in your URL templates.
- In Zendesk Admin Center, go to Objects and rules > Tickets > Fields
- Click on your custom field
- Copy the Field ID from the URL or field details
[
{
"title": "Search by Issue Type",
"url": "https://yourcompany.com/issues?customer_id={{ticket.requester.id}}&type={{ticket.custom_field_1234567890}}"
}
]Important: URLs with custom fields don't update automatically when the field changes. Agents need to refresh the page to see updated URLs.
- Cause: No URI templates configured or invalid JSON format
- Solution: Check your JSON configuration in app settings
- Cause: Placeholder field doesn't exist or is empty
- Solution: Verify the field name and that it contains data for the current ticket
- Cause: This is expected behavior for performance reasons
- Solution: Refresh the page after making field changes
For developers interested in contributing or modifying the app, see the Contributing Guide.
- Issues & Bug Reports: GitHub Issues
- OSS Compliance: osscompliance@ibotta.com
When reporting issues, please include:
- Your Zendesk instance details
- App configuration (URI templates)
- Steps to reproduce the problem
- Expected vs actual behavior
Security Note: When sharing URI templates for support purposes, please review your company's security policies and remove any sensitive or confidential information such as:
- Internal domain names or URLs
- API keys or authentication tokens
- Customer data or personally identifiable information (PII)
- Proprietary system names or endpoints
Consider using placeholder values (e.g., https://your-crm.com instead of actual URLs) when providing configuration examples.