> For the complete documentation index, see [llms.txt](https://docs.airdev.co/canvas/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airdev.co/canvas/2.0.0-1/using-the-template/using-canvas-pages/connecting-added-modules-together.md).

# Setting up added modules

Adding modules using Canvas Pages is only the first step to extending the functionality of your app. In order to make the most of the Canvas modules, you need to modify these modules in a few different ways:

* Adding or modifying actions on buttons
* Changing data sources on repeating groups or elements with data sources
* Filling out content on groups
* Linking content on groups to data objects
* Linking modules to portal tabs (show/hide based on what user selects)&#x20;

### How to connect two modules (Example)

1. Add the modules **`Standard Repeating Group (Image, Link, and Description)`**

   and **`Standard Form Popup`** on a page with any page template to your app.&#x20;

   1. Follow the instructions in [How it works ](/canvas/2.0.0-1/using-the-template/using-canvas-pages/how-it-works-1.md)if unsure how to do this.
2. Submit a request to create the above page.
3. Wait until the request is complete and you receive a confirmation email. From that confirmation email, click the button to access the Bubble editor.
4. On the page you just created, select the element `Button solidPrimaryMediumBody14pt`. Rename this button something intuitive, e.g. Button Confirm New Product.
5. Press start/edit workflow on this button.&#x20;
6. Create a workflow to show the Popup Confirm when this button is pressed.
7. Preview the page and check that the Confirmation popup appears when the button is pressed.

![Your workflow should look something like this (after renaming elements).](/files/-Lu0qeW_23r-kT73HZe0)

Voilà! You've finished creating a page with two different types of elements, and linked those two elements together. Nice job!

For reference, you can compare your page to [this one](https://bubble.io/page?type=page\&name=link-modules-test\&id=airdev-canvas-tutorial\&tab=tabs-1).

Most modules will take more configuration than the above example, especially if you're setting up forms with many inputs or more complex functionality.

#### Another examples: Chat module

More complex modules, like the Chat module, also require some customization. This type of group comes with custom data types associated to it, T-Threads and T-Messages. When using a new module please refer to [the documentation for that module](https://docs.airdev.co/canvas-pages-and-modules/v/2.0.0/modules/comments-thread) (Chat module documentation) in order to figure out how to set it up.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.airdev.co/canvas/2.0.0-1/using-the-template/using-canvas-pages/connecting-added-modules-together.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
