--- title: Maximizing code reuse with topic blocks description: Topic blocks are reusable components that you can create to run common tasks and conversational elements in Virtual Agent conversations. Topic blocks simplify the topic authoring and maintenance process by enabling you to reuse standard procedures or actions across conversation topics. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/conversational-interfaces/virtual-agent/topic-blocks-overview.html release: australia product: Virtual Agent classification: virtual-agent topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 4 keywords: [Virtual Agent, Designer, Topic block, reusable, pre-built, utility, code reuse] breadcrumb: [Exploring other Virtual Agent features, Build and deploy, Virtual Agent, Conversational Interfaces] --- # Maximizing code reuse with topic blocks Topic blocks are reusable components that you can create to run common tasks and conversational elements in Virtual Agent conversations. Topic blocks simplify the topic authoring and maintenance process by enabling you to reuse standard procedures or actions across conversation topics. ## How reusable topic blocks work A topic block is basically a subflow that performs certain actions or conversational tasks in a topic. For example, you can build a topic block that creates or retrieves certain types of records. You create topic blocks with Virtual Agent Designer, similar to the way that you build conversation topics. With Virtual Agent Designer, you can do the following: - Set topic block properties. - Define the controls \(nodes\) used in the block. - Test or preview the block. - Publish the block to make it available for use in topics or other topic blocks. Unlike topics, topic blocks are not discoverable by a large language model \(LLM\), Natural Language Understanding \(NLU\), or keywords. The topic block's functionality can only be accessed by a topic. A conversation that uses \(consumes\) a topic block is referred to as the calling topic. A topic block can call another topic block, but it cannot call itself. You can "nest" topic blocks in this manner, even if the flow returns to the initial topic, as in this example: \[Omitted image "nested-topic-blocks-chain.png"\] Alt text: Topic Block 1 calls TB 2, which in turn calls TB 3. Topic Block 3 can then call Topic Block 1 again. **Note:** If Virtual Agent detects an infinite loop, the conversation ends. The Virtual Agent platform and applications provide pre-built topic blocks for common tasks or subflows. You can use these pre-built topic blocks in your conversation topics "as is" in the appropriate application scope by duplicating them. You can then customize these pre-built topic blocks as needed. Some of the common topic blocks include the following.
| Pre-built topic blocks | Application scope |
|---|---|
| - Transfer to Live Agent: Transfers a bot conversation to a live agent. - Survey: Presents a survey for collecting feedback for an agent. - Geolocation: Gathers information about the user's location. - Pause: Insert a pause \(in seconds\) in the conversation. - Deflection: Tracks deflection metrics for the Virtual Agent. | Global. Provided with the Glide Virtual Agent plugin \(com.glide.cs.chatbot\). |
| Contextual search: Uses a search phrase to return search results in a card format, such as knowledge articles and catalog items. | Common topic block used by the CSM, HR Service Delivery, and ITSM business applications. Provided with the Service Management Virtual Agent Topic Blocks plugin \(com.glideapp.cs.sm\_topic\_blocks\). This plugin is included with the [Virtual Agent conversation plugins](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/virtual-agent/prebuilt-topics-ITSM.md) for these business applications. |