--- title: "Prerequisites" url: https://docs.catalyst.zoho.com/en/tutorials/invoice-notifier/python/prerequisites/ description: "Create an Event Driven Architecture to automate invoice updates from Zoho Books to Zoho Cliq using Event Functions and Catalyst Signals." last_updated: 2026-08-17T12:16:04Z service: All Services type: tutorial related_links: - name: "CLI Command Reference" url: /en/cli/v1/cli-command-reference/ - name: "Install CLI" url: /en/getting-started/installing-catalyst-cli/ - name: "Login CLI" url: /en/cli/v1/login/login-from-cli/ - name: "Zoho Books Organization Profile" url: https://www.zoho.com/in/books/help/settings/organization-profile.html - name: "Zoho Cliq Channels" url: https://www.zoho.com/cliq/help/channels/create-channel.html - name: "Zoho Cliq Bots" url: https://www.zoho.com/cliq/help/platform/managing-bots.html --- # Prerequisites Before you begin building the Invoice Notifier, you must have the following prerequisites installed on your system: ### 1. Catalyst CLI Catalyst CLI contains a host of tools that enable you to initialize, develop, test, and deploy the components of your application from your local machine. We will be working with Catalyst CLI in this tutorial. You must perform the following actions: 1. **Install Catalyst CLI:** Catalyst CLI is installed through NPM so you must have both NPM and Node.js installed beforehand. Refer to the [**Install Catalyst CLI help page**](https://docs.catalyst.zoho.com/en/getting-started/installing-catalyst-cli/) for details on the pre-requisites and the steps to install it. 2. **Login Catalyst CLI:** After installation, you must authenticate the CLI with your Catalyst account before using it. Refer to the [**CLI Login help page**](https://docs.catalyst.zoho.com/en/cli/v1/login/login-from-cli/) for the steps to login from Catalyst CLI and the various options available for it. ### 2. Any IDE tool for Node.js and client code development Use any IDE that supports Python development like Visual Studio Code, IntelliJ, or Eclipse to work on the event function. > If you are a Visual Studio Code IDE user, you can install the **Catalyst Tools** extension, and use your IDE itself in place of the CLI. You can find more details about the Catalyst VS Code extension from this [help section](https://docs.catalyst.zoho.com/en/catalyst-extensions/vs-code-extension/introduction/). ### 3. Zoho Books for Invoice Management Create an organization in [Zoho Books](https://www.zoho.com/in/books/) to maintain customer payment records in the form of invoices. > **Note:** You can also integrate any third-party tools for invoice generation. However, if you choose to do so, you will need to configure a [**custom publisher**](https://docs.catalyst.zoho.com/en/signals/help/publishers/create-publisher/custom-publishers) **in Catalyst Signals** for the external application and update the rule accordingly. ### 4. Zoho Cliq for Team Notifications Create an organization in [Zoho Cliq](https://www.zoho.com/cliq/) to act as internal communication platform for your Customer Success Team. Within this organization, - Create a Channel for updating invoice status of onboarding customers. Follow the steps given in the [How to create a channel in Zoho Cliq](https://www.zoho.com/cliq/help/channels/create-channel.html) help page for guidance. - Create and associate a bot to the channel so it can automatically post messages regarding the invoice updates. Refer to the [Managing Bots](https://www.zoho.com/cliq/help/platform/managing-bots.html) and [Bot Channel Participation](https://www.zoho.com/cliq/help/platform/bot-participation-handler.html) help resources for guidance. For this tutorial, you don’t need to add or edit any handlers for the bot. Ensure that the required channel participation permissions are configured correctly while creating the bot, as shown in the image below. ![Configuring Cliq Bot Permissions](https://catalyst-docs-development.zohostratus.in/images/tutorials/invoice-notifier/bot-config.webp) > **Note:** You can also integrate any third-party tools for internal team communication. However, if you choose to do so, you will need to **update the event function** accordingly to route notifications to the appropriate communication channel.