--- title: "Extension points" slug: "on-quote-routing" description: "Use this extension point to run a script to run a custom action when a quote's proposal is marked as sent." updated: 2026-06-02T13:19:22Z published: 2026-06-02T13:19:22Z canonical: "docs.zilliant.com/on-quote-routing" excludeFromExternalSearch: true --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.zilliant.com/llms.txt > Use this file to discover all available pages before exploring further. # On Quote Routing ## Purpose Allows a script to be executed when the user attempts to route the Quote to other users. Use this script to perform validation checks to enforce that a quote has the minimum necessary information before the routing. ## Setup Upload the script for **On Quote Routing**. For details about uploading and configuring Groovy scripts, read [Upload a Groovy script](/v1/docs/upload-a-groovy-script). ## Binding variables In addition to the [common binding variables](/v1/docs/binding-variables), the following binding variables are available for this extension point. | Variable name | Class | Description | | --- | --- | --- | | salesItemsTree | SalesItemsTree | Represents the quote. It contains the functions that can be used to query and modify the quote and its line item data. | For details about the class listed in this table, including available methods, fields, and method signatures, read the [Zilliant Groovy API reference](/main/docs/groovy-api-reference). ## Script execution The script uploaded for this extension point (if any) is executed automatically when the user selects **Confirm** on the **Route Quote** screen. If `salesItemsTree` has been used to modify the quote data in the script, the changes are applied to the quote. This extension point is optional. If no script has been uploaded for this extension point, the quote is routed without the additional action.