# Introduction

ChainJet is a Web3 CRM Automation platform that addresses the communication gap between Web3 protocols and their users. Unlike traditional systems where companies can easily reach out to customers via email, Web3 protocols didn't have a simple way of directly reaching their users.

ChainJet enables Web3 businesses to send targeted messaging campaigns directly to their user's wallets, allowing for a new channel of communication that doesn't require email or social network platforms. The best part is that users don't need to use special applications or configure anything. They will receive the messages on apps they are already using, like Coinbase Wallet, Lens Protocol, Converse, XMTP Inbox, Unstoppable Domains, and many more.

If your user is using at least one of the dozens of supported apps, they will get your message there, in most cases, with a notification on their phone.

<figure><img src="/files/6UTxywqmUwWQE4WaOelk" alt="" width="375"><figcaption><p>Example message sent by your project</p></figcaption></figure>

### Why ChainJet?

ChainJet is designed to fill a specific void in the Web3 ecosystem: direct and targeted communication between Web3 projects and their user base. Our platform enables you to reach users directly through their wallets. This approach creates a new communication channel with your audience without the need to increase your onboarding friction by asking and verifying email addresses, allowing for a seamless interaction that users will find both convenient and secure.

ChainJet goes beyond simple messaging, offering a suite of features like automated campaigns and AI-powered chatbots to enrich user engagement. Detailed analytics and user segmentation options further allow you to tailor your communication strategies for maximum impact. Whether it's sending out important updates, automating customer service, or implementing targeted marketing campaigns, ChainJet provides a one-stop solution to enhance your customer relationship management in the Web3 environment.

### Campaigns

Campaigns in ChainJet allow you to send messages to all your users or a segment of your users. You can use Campaigns to send newsletters or updates directly to your user's wallets.

### Chatbots

ChatBots on ChainJet are AI-powered conversational agents that can be attached directly to your wallet or ENS. These ChatBots are built to handle a range of functions, including customer support, events management, offering products and services, in-chat payments, and many more. They can be trained with your company's specific documentation and practices, allowing for automated yet personalized interactions.

### Automations

Automations on ChainJet allow you to send a message to your users when a specific on-chain or off-chain action occurs. This feature is designed to automate interactions based on triggers such as completed transactions, new NFT or collectibles minted, decentralized social media activity, and many more. ChainJet supports dozens of integrations that you can connect with your messaging campaigns.

For example, you can use automations to deliver a welcome or confirmation message when someone connects their wallet to your dApp, mints your NFT, buys your token, collects your POAP, votes on your Snapshot proposal, etc.


# Quickstart

To start using ChainJet, connect your wallet and sign the message. We use the standard [ERC-4361](https://eips.ethereum.org/EIPS/eip-4361) to ensure a secure authentication.

<figure><img src="https://lh7-us.googleusercontent.com/qSOGeT_WWjbNJZhbXvMuolHGM80lTYF4y1rG9hWjlxpXCM1WCJTphn53b0LREi1nJ-lSC13CXqoigLAeBK8J9DOj25dr73Gnimw375mIiH9_CTtoJw2pYhetBE_EnDilivFciMRIIQhVnXe0ZM2QbSA" alt=""><figcaption></figcaption></figure>

After you sign in, you'll find yourself on the Dashboard page, where you'll have different options to get started.

<figure><img src="/files/k1vDXMbLo59x1sxPLAsX" alt=""><figcaption></figcaption></figure>

***"Create Workflow" -*** It creates an empty workflow. You can add any triggers and actions to automate any kind of task.

***"Blockchain Notifications" -*** In this section, you'll find a simplified wizard to create notification-based workflows for blockchain events, token transfers, and more. Select the trigger for your workflow (the event you want to be notified on). You have four options: Tokens received on an address, NFTs received on an address, Transactions made on an address, or new events by smart contracts across 16 different blockchains.

<figure><img src="/files/Yytt91pwLa30b6rUcEqa" alt=""><figcaption></figcaption></figure>

Then, select where you want to be notified: Email, Discord, Telegram, or DMs via XMTP. Finally, connect your account, and your workflow is complete. You will start receiving notifications on the selected event!

<figure><img src="/files/9yXfkW8oLq9kFCkyiFzo" alt=""><figcaption></figcaption></figure>

***“Schedule Task” -*** Easily schedule a task to be executed at a specific date and time. Use the Select Task button to choose the task to schedule, and then enter when it should happen.

<figure><img src="/files/efR0YR9UyODHXItcfrXq" alt=""><figcaption></figcaption></figure>


# Campaigns

Campaigns in ChainJet allow you to send messages to all your users or a segment of your users. You can use Campaigns to send newsletters or updates directly to your user's wallets.

In order to send a campaign, you first need to import your users as contacts. You can import your contacts with a list of wallets or from an external source, including POAP holders, Lens followers, and more.


# Automations

### Overview

Automations consist of a trigger and one or more actions. The trigger specifies the event on which the actions should be executed, and the actions determine what tasks should be performed.

### Triggers

A trigger specifies the event that will start the automation. The event can be a specific interval (e.g., every 6 hours), on-chain events (e.g., each time a token is transferred), or off-chain events (e.g., a Discord command). Every time the trigger condition is satisfied, all the automation actions will be executed.

### Actions

The automation actions specify each individual task that should be performed. Automation actions can be either on-chain (e.g., transfer tokens) or off-chain (e.g., send a Discord message).

### Automations Settings

<figure><img src="/files/TF02IbePy5jg2HGVQnrI" alt=""><figcaption></figcaption></figure>

***"ON/OFF"***&#x20;

Enable or disable an automation. Enabled automations will be looking for new events, and when found, they will trigger the automation. Disabled automations won’t be automatically started (although you can still manually trigger it).

***"FORK"***&#x20;

Forking an automation allows you to create an exact copy of any automation. When you click it, you will be presented with a modal to select the accounts that you want to use for the new automation. If your automation is set as public, then it can be forked by other users. This is a good way of sharing your automation with the community. When the automation is forked by other users, only the automation data will be copied, but the user will have to enter their own account credentials for each integration.

***"RUN HISTORY"***&#x20;

<figure><img src="/files/q0SM0szARbiU28CheZTY" alt=""><figcaption></figcaption></figure>

In this section, you will be able to check the entire history of your automation, such as the last time it was executed, the number of times it was executed, whether it ran correctly or failed, the number of operations that were performed during execution, and a detail of the logs to which you can access and in case of failure you can check what the problem was.

***"SETTINGS"***&#x20;

<figure><img src="/files/jdq7dl7a9lCjOut6Pxee" alt=""><figcaption></figcaption></figure>

*Automation Name:* Enter the name of your automation.

*Max consecutive failures:* After how many consecutive failed executions, the automation will be disabled. You can set it to zero to disable it.

*Run an automation on failure:* You can select one of your automations to be executed each time a automation fails. This is useful for receiving custom alerts on failures.

***Danger settings:***

*Change automation privacy:*&#x20;

*Public*: Public automations are accessible by anyone. However, only you will be able to make changes or execute it. Credentials associated with the automation won’t be shared. Users can create copies of your automation, but they have to use their own credentials.

*Private*: Only your wallet can access the automations.

*Delete Automation:* Allows you to permanently delete the automation. This action cannot be undone.


# Formatting inputs

You can use formatting functions to transform your inputs into the desired format. In this section, you will find a list of supported formulas that can be used on any input field.

<figure><img src="/files/JEFvxKtstqLPSdbMh1z6" alt=""><figcaption></figcaption></figure>


# Formatting Text

Allows you to change a given text. In the following examples, we assume the output “trigger.value” is “Hello World”.

**substring(text, from, to)**

This function allows you to crop any text. The function accepts three parameters: The text to crop, from which character, and to which character.

<table><thead><tr><th width="268" align="center">Description</th><th width="314.3333333333333" align="center">Formula</th><th align="center">Result</th></tr></thead><tbody><tr><td align="center">Returns from the characters 0 to 3</td><td align="center">{{<strong>substring</strong>(trigger.value, <strong>0, 3</strong>)}}</td><td align="center">Hel</td></tr><tr><td align="center">Returns from characters 0 to 8</td><td align="center">{{<strong>substring</strong>(trigger.value, <strong>0, 8</strong>)}}</td><td align="center">Hello Wo</td></tr><tr><td align="center">Returns from characters 3 to 8</td><td align="center">{{<strong>substring</strong>(trigger.value, <strong>3, 8</strong>)}}</td><td align="center">lo Wo</td></tr><tr><td align="center">Returns from characters 3 to the end</td><td align="center">{{<strong>substring</strong>(trigger.value, <strong>3</strong>)}}</td><td align="center">lo World</td></tr></tbody></table>

**uppercase(text)**

<table><thead><tr><th width="274.3333333333333" align="center">Description</th><th width="258" align="center">Formula</th><th align="center">Result</th></tr></thead><tbody><tr><td align="center">Returns the text in uppercase</td><td align="center">{{<strong>uppercase</strong>(trigger.value)}}</td><td align="center">HELLO WORLD</td></tr></tbody></table>

**lowercase(text)**

<table><thead><tr><th width="277.3333333333333" align="center">Description</th><th width="256" align="center">Formula</th><th align="center">Result</th></tr></thead><tbody><tr><td align="center">Returns the text in lowercase</td><td align="center">{{<strong>lowercase</strong>(trigger.value)}}</td><td align="center">hello world</td></tr></tbody></table>


# Formatting Numbers

Allows you to change a given number. In the following examples, we assume the output “trigger.amount” is 123456.78.

**formatNumber(number, language = ‘en’)**

Converts a number into a given language. If the language is not specified, English will be used by default.

<table><thead><tr><th align="center">Description</th><th width="333.3333333333333" align="center">Formula</th><th align="center">Result</th></tr></thead><tbody><tr><td align="center">Returns the number formatted in English</td><td align="center">{{<strong>formatNumber</strong>(trigger.amount)}}</td><td align="center">123,456.78</td></tr><tr><td align="center">Returns the number formatted in English</td><td align="center">{{<strong>formatNumber</strong>(trigger.amount, <strong>'en'</strong>)}}</td><td align="center">123,456.78</td></tr><tr><td align="center">Returns the number formatted in Spanish</td><td align="center">{{<strong>formatNumber</strong>(trigger.amount, <strong>'es'</strong>)}}</td><td align="center">123.456,78</td></tr></tbody></table>

**round(number, decimals)**

It allows you to round any number to a certain number of decimals.

<table><thead><tr><th width="312.3333333333333" align="center">Decription</th><th width="247" align="center">Formula</th><th align="center">Result</th></tr></thead><tbody><tr><td align="center">Returns the number rounded with zero decimals.</td><td align="center">{{<strong>round</strong>(trigger.amount, <strong>0</strong>)}}</td><td align="center">123457</td></tr></tbody></table>

This function is useful for correctly displaying the value of tokens. On Ethereum and Ethereum-compatible blockchains, numbers are stored as integers, and they have a field specifying how many decimals the token has.

For tokens with, for example, 18 decimals, you first need to divide it by 1e18 and then round it to the number of decimals you want. In these equations, we will use three decimals:

{{**round**(177700150841340163 / **1e18, 3**)}}&#x20;

{{**round**(trigger.totalSupply / **1e18, 3**)}}

*\*You can check in the contract of each token the number of decimals a token has and modify the equation shown accordingly.*


# Templates

Creating workflows is easy with ChainJet's templates! Follow these simple steps to get started

First, visit the templates [page](https://chainjet.io/templates) on ChainJet.

<figure><img src="/files/2bHWhEB79zHC1o0B4HXf" alt=""><figcaption></figcaption></figure>

Choose the template that suits your needs and click "Use Template".

<figure><img src="/files/chpgcVmM8lM6Zhpqy002" alt=""><figcaption></figcaption></figure>

Fill in the few required fields:

<figure><img src="/files/Stb6poh2FVJAwyTPkmsS" alt=""><figcaption></figcaption></figure>

Your workflow is ready!

<figure><img src="/files/TlcsER1wftduJ7gRBVQ7" alt=""><figcaption></figcaption></figure>


# Credentials

In the Dashboard menu, you will find the "Credentials" section, where you will find all your linked app and service accounts in ChainJet.

<figure><img src="/files/a2GNVb1TSUKv9ogwEbls" alt=""><figcaption></figcaption></figure>

From here, you can easily:

* Edit the credential name to make it easier to recognize.
* Reconnect your account. This is very useful when you have a connection failure or your credentials have expired. Simply click the pencil button and then "Reconnect account."
* Delete a credential. By deleting the credential, you will need to connect the account for your app or service again when you want to create a new workflow using that app or service.

<br>


# Discord

## How to Connect your Discord Server\*\* &#x20;

To use the Discord integration, take into account that you will need a Discord server on which you are an administrator.

After selecting Discord Integration, you have to click on Connect Discord account and choose a server. Click on continue, grant the ChainJet bot the required permissions, and authorize it.

![](https://i.imgur.com/EVBsPYf.png)

Then, select the server you’ve just connected from the list of options and click on Continue. Finally, in the channel ID box, select the channel in which you wish to receive the messages from the ChainJet bot.&#x20;

![](https://i.imgur.com/6F1Idz8.png)

Finish configuring the rest of the information on the ChainJet workflow according to your needs and you are all done!

Below, there’s a video with the steps you’ll need to follow.

![](/files/Z7kqaEIeLnFgL4RlpGfE)

## Give format to Discord texts

For Discord format, you don’t need to choose a formatting option, you just need to write the Markdown symbols directly into the text box. These are some of the formats you can incorporate to your texts:

* Italics: Put an **asterisk (\*)** at the start and end of the text.
* Bold: Put **two asterisks (\*\*)** at the start and end of the text.
* Underline: Put **two underscores (\_\_)** at the start and end of the text.
* Strikethrough: Put **two tildes (\~\~)** at the start and end of the text.


# OpenAI

<figure><img src="/files/xkTF8Q3BNmxufYtDl8v2" alt=""><figcaption></figcaption></figure>

### Fields that require additional information

* ***Api Key***

To use OpenAI's ChainJet integration, you'll need to obtain an API key. Follow these steps to get your key:

1. Create a free account on [OpenAI](https://platform.openai.com/).
2. Once you're logged in, navigate to the ["API Keys" section.](https://platform.openai.com/account/api-keys)
3. Generate a new API key.
4. Remember to copy your API key, as it will not be displayed again.


# Telegram Custom Bot

### Fields that require additional information

* ***How to Connect your Telegram Bot Account***

Create a Telegram group or use one in which you are an administrator.

Create a Telegram bot (BotFahter), configure it and add it to the group. Follow the steps in the video below to set up the bot and get the token.

<figure><img src="/files/bKY8WaXVM4bhCCawdyRF" alt=""><figcaption></figcaption></figure>

1 - Go to @BOTFATHER on Telegram\
2 - To begin creating your bot, press START. Select NEW BOT from the bot's menu and pick a name for it, and then the username ends in "bot".\
3 - Here, it will show you the token ID:

<figure><img src="/files/NZEOb90WOuo8San0emhp" alt=""><figcaption></figcaption></figure>

4 - To add the bot to your Telegram group, go to ADD MEMBER and look for your bot with the user name you've given it and add it.

* ***How to get the CHAT ID***

If the Telegram group is **public**, simply add @ to the beginning of the group name found in the link to join. Example: if the link is: t.me/chainjet the ID will be @chainjet.

<figure><img src="/files/SY9v68Tza8z4hc8qxVnm" alt=""><figcaption></figcaption></figure>

For **private groups**, you must use the telegram bot, [RawDataBot](https://t.me/raw_data_bot). Search for that user in telegram and share the group invitation link. The bot will return a message with the ID, just copy it and paste in the corresponding field in your workflow.

<figure><img src="/files/66tuFTroiMXDUn82c0qX" alt=""><figcaption></figcaption></figure>

* ***Give format to Telegram texts***

For Telegram format, you have to choose the formatting style in Parse Mode. You can use HTML, MarkdownV2 and Markdown. Remember to use in the text box the same style that you selected in Parse Mode.

Here is a [link](https://core.telegram.org/bots/api#formatting-options) where you can see all the options from these three styles.


# Lens Protocol 🌿

With ChainJet you can connect Lens Protocol to any of our other web3 or web2 integrations.

### Fields that require additional information

* ***Profile ID or Handle**:*

The simplest thing here is to complete with your Lens Handle, your lens profile followed by .lens.

![](/files/guDF9dIlvnlXvHknN6yO)

For instance, our handle is **ChainJet.lens**.

* ***Publication ID:***

Every post, comment, and mirror on Lens Protocol has an unique ID. The easiest way to find it is on the Hey url. For instance, for the post with URL <https://hey.xyz/posts/0x012cd6-0x3b>, the publication ID is 0x012cd6-0x3b.


# ChainJetBot

[@ChainJetBot.lens](https://hey.xyz/u/chainjetbot) allows you to trigger a workflow from Lens by mentioning the bot in a post or comment. ChainJetBot is a general-purpose bot that can help you to automate any tasks on Lens. You can automate saving posts to Notion, adding users to Lens Lists, translating posts, generating summaries, and much more!

### How does it work?

You have to create a workflow on <https://chainjet.io> with the trigger `Lens > New Mention to @ChainJetBot.lens`, add a keyword, and add any task(s) you want. Then comment @ChainJetBot.lens followed by your keyword, and it will execute the tasks.

### Tutorials:

* [Translate posts](/integrations/lens/chainjetbot/translate-a-post-to-any-language-and-publish-it-with-a-comment)
* [Send posts by DM](/integrations/lens/chainjetbot/send-a-post-by-dm)
* [Add users to a Lens list](/integrations/lens/chainjetbot/add-a-user-to-a-lens-list)
* [Share posts on Discord](/integrations/lens/chainjetbot/share-post-on-discord)

<figure><img src="/files/jDFYuvPeNfk1FEuyDZF7" alt="ChainJet Bot"><figcaption></figcaption></figure>


# Translate a post to any language and publish it with a comment

In this tutorial, we will use ChainJetBot to translate a post into any language and publish it as a comment. We will be using ChainJet's Lens Protocol and OpenAI integrations.&#x20;

To start, log in to [ChainJet](https://chainjet.io) with your wallet and click on "Create Workflow". Next, select the Lens Protocol integration and trigger "New Mention to @ChainJetBot.lens". If this is your first time using this integration, you will need to connect your Lens account. In the "Mention starts with" field, type "translate to".&#x20;

<figure><img src="/files/MXIbBn7mkRQTsC3U8RZn" alt=""><figcaption></figcaption></figure>

Next, we need to select the actions. Click on the "+" symbol shown below the trigger to do so. Once again, select the Lens Protocol integration and choose "Get Publication". Fill in the "Publication ID" field by selecting "Main post" from the drop-down menu.&#x20;

<figure><img src="/files/6x8qKttlshVKpoZAPrdV" alt=""><figcaption></figcaption></figure>

The next action we need to select is the OpenAI integration. Click on the "+" symbol below the previous action and choose "Send Prompt".

* Fill in the "Prompt" field by typing "Translate to" and then selecting "Mention" from the Mention to ChainJetBot drop-down menu and "Metadata.Content" from the Get Publication options.&#x20;

*\*If this is your first time using the OpenAI integration, you will need to connect your account with the* [*API Key*](https://docs.chainjet.io/integrations/openai)*.*&#x20;

<figure><img src="/files/RNsDCMGVY9Jl0O3GdL56" alt=""><figcaption></figcaption></figure>

Finally, we need to add a last action by selecting the "+" symbol under the previous action. Select Lens Protocol and the action "Create Comment".&#x20;

* Fill in the "Publication ID" field by selecting the "ID" option from the Get Publication drop-down menu.&#x20;
* Fill in the Comment Content field by choosing the "Text" option from the available "Send Prompt" options.&#x20;

<figure><img src="/files/Vq8ZhP3tEnhuXk6oLgZ4" alt=""><figcaption></figcaption></figure>

Your workflow is now ready to use! To translate a Lens post, make a comment using the following format: @ChainJetBot.lens translate to \[language]. A comment will be published below with the post in the selected language.

<figure><img src="/files/uBceA5zZ6FWTJrmNUxTk" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/XHZBwsxdbPcvfWaERhhJ" alt=""><figcaption></figcaption></figure>


# Send a post by DM

In this tutorial, we'll show you how to send a post by DM to any Lens user with @ChainJetBot with just a comment.&#x20;

Here's how to do it:

* Log in to ChainJet with your wallet. Once you're in your dashboard, click on "Create Workflow".<br>
* Add a trigger, click on "Add Trigger" and select the Lens Protocol integration. Choose the trigger "New Mention to @ChainJetBot.lens". If this is your first time using the integration, you'll need to connect your Lens profile. Then, enter the keyword or phrase that you want to activate your workflow. In this case, we'll use "dm".<br>
* Add an action, click on the "+" button below the trigger. Select the Lens Protocol integration and choose the "Get Publication" action. Fill in the "Publication ID" field and select "Main Post" from the drop-down menu.<br>

<figure><img src="/files/BjSBq3iwLFdEEpkdW9fe" alt=""><figcaption></figcaption></figure>

* Add the last action, click on the "+" button under the Lens action. Select the XMTP integration, connect your account, and choose "Send a message to a Lens handle".<br>
* Complete two fields in this action. Firstly, select "Mention" from the drop-down menu for the Lens Handle field. This will allow you to take the handle of the Lens user you write in the comment. Secondly, fill in the message field with the information you want to send by direct message. In this example, we'll use the username and content of the post. To do this, select "Handle" and "Metadata.Content" from the drop-down menu inside the "Get Publication" action.

<figure><img src="/files/be4t7GTOGt8MRPTBy45i" alt=""><figcaption></figcaption></figure>

That's it! Your workflow is ready. Now, comment on a post in Lens Protocol as follows: "@ChainJetBot dm @ChainJet.lens" (you can replace "@ChainJet.lens" with the username of the Lens user you want to send the post to).


# Add a user to a Lens list

Use ChainJetBot to add a profile to your Lens list with a comment

In this tutorial, we will show you how to use [@ChainJetBot.lens](https://hey.xyz/u/chainjetbot) to add a user to a Lens list simply by commenting on a post.

* Login on [ChainJet](https://chainjet.io) with your wallet. Once you're in your dashboard, click on "Create Workflow".
* The first step is to select a trigger. Click on "Add trigger" and then select the Lens Protocol integration.
* Choose the trigger "New Mention to @ChainJetBot.lens". (If this is your first time using the integration, you will need to connect your Lens profile).
* Next, enter the word or phrase that you want to activate your workflow. In this case, we will use "Add to list".
* The next step is to select an action. Click on the "+" button below the trigger and select the Lens Protocol integration. Choose "Get Publication" and select "ID" from the drop-down menu for the Publication ID field.

<figure><img src="/files/fYrpvDKI5s1cPARGKTjo" alt=""><figcaption></figcaption></figure>

* Finally, select a new action by clicking the "+" button below the previous action. Select the "Lens List" integration and choose "Add a user to a list".
* You will need to complete two fields: Profile ID and List ID. For the Profile ID field, select the profile ID from the drop-down menu that was obtained from the Get Publication action. The List ID can be found in the URL of your Lens List. In our case, it would be <https://lists.inlens.xyz/lists/839997772555157505>, and therefore the ID is 839997772555157505.

<figure><img src="/files/FEbpprqZRXYGNHgX8LBn" alt=""><figcaption></figcaption></figure>

That's it! Your entire workflow is now ready. You can add any profile to your list simply by commenting on a post: @ChainJetBot.lens Add to list.

<figure><img src="/files/aOTVVlmbq0VT0JoRq6hd" alt=""><figcaption></figcaption></figure>

\\


# Share post on Discord

Use ChainJetBot to share a Lens post on Discord through a comment

In this tutorial, you'll learn how to use [@ChainJetBot.lens](https://hey.xyz/u/chainjetbot) to send a Lens post to your Discord by simply mentioning the bot in a comment.

Here's how to do it:

* Login on [ChainJet](https://chainjet.io) with your wallet. Once you're in your dashboard, click on "Create Workflow''.
* Click on "Add a trigger", then select the Lens Protocol Integration, and choose "New Mention to @ChainJetBot.lens".
* Connect your Lens account and specify the word or phrase that should activate the workflow. In this case, we'll use "Discord".
* Add an action, click on the "+" button below the trigger. Select the Lens Protocol integration and choose "Get Publication" action. Then, fill in the "Publication ID" field and select "Main Post" from the drop-down menu.

<figure><img src="/files/BjSBq3iwLFdEEpkdW9fe" alt=""><figcaption></figcaption></figure>

* Finally, add the last action, click on the "+" button under the Lens action. Select the Discord integration and choose "Send a Message". (If it's your first time using this integration, you'll need to grant authorization first.)
* Select the channel where you want the Discord bot to publish the message and fill in the "Message Content" field. In this example, we'll choose "Profile.Handle" and "Metadata.Content" from the drop-down menu of the "Get Publication" action. This will show the author of the post and the content in your Discord server.

<figure><img src="/files/U9xrfHgbZ6ESmBGzhM1Y" alt=""><figcaption></figcaption></figure>

This is it, your workflow is ready! Now comment on the Lens post you want to share on your Discord: @ChainJetBot Discord.

<figure><img src="/files/HOsfb5hrVqufXPJRX3y0" alt=""><figcaption></figcaption></figure>


# Mirror

Mirror is a decentralized publishing platform, enabling creators to own and monetize their content. Built on the Ethereum blockchain.

<figure><img src="/files/0vyAIUNDTiQNQy3cuBuG" alt=""><figcaption></figcaption></figure>

### Setting Up Mirror with ChainJet

To start leveraging the power of the Mirror integration, all you need to know is the wallet address or ENS of the Mirror publisher, or the ID of the publication.

### Available Triggers for the Mirror Integration:

The Mirror integration on ChainJet offers a variety of triggers to facilitate user interactions and process automation:

**1. New Collection:** This trigger activates each time someone collects a specific post on Mirror.

**2. New Post:** This trigger activates when a designated wallet creates a new post on Mirror.

### Recommended Templates:

To help users make the most of the Mirror integration, ChainJet recommends the following automation templates:

**1.** [**Share new Mirror posts on Lens Protocol**](https://chainjet.io/workflows/640466fe66c36aed7f3da845)**:** Automatically share your new Mirror posts with your followers on Lens Protocol.

**2.** [**Share new Mirror posts on Discord**](https://chainjet.io/workflows/640472c666c36aed7f3db205)**:** This template automates sharing your new Mirror posts on your Discord server, enhancing your reach and engagement.

**3.** [**Share a summary of your new Mirror posts on Lens Protocol**](https://chainjet.io/workflows/641db92503e085ca49816372)**:** This template lets you share a concise summary of your new Mirror posts on Lens Protocol, giving your followers a sneak peek.

**4.** [**Share new Mirror posts on Telegram**](https://chainjet.io/workflows/642d7a8bc76121a795836dd1)**:** Increase your reach and engagement by automatically sharing your new Mirror posts with your Telegram community.

By integrating Mirror with ChainJet, users can leverage these triggers and templates to streamline their workflows and presence in the vibrant web3 landscape. Additionally, the ChainJet platform powers user potential by facilitating the interconnection of this integration with other web3 protocols, thereby widening the possibilities of what can be achieved.

<br>


# POAP

POAP is a platform that offers digital badges, known as POAPs, to signify a holder's participation in an event, action, or task. These badges are NFTs (Non-Fungible Tokens) that exist on the Ethereum.

<figure><img src="/files/6VgPwIOOgpRlMWWeCl9M" alt=""><figcaption></figcaption></figure>

### Setting Up POAP with ChainJet

To begin leveraging the power of the POAP integration within ChainJet, you only need to know the Event ID or the Wallet Address you wish to monitor for new POAPs. Simply input these details into the ChainJet interface, and your POAP-related workflows can be activated efficiently and seamlessly.

### POAP Integration:

**Triggers:**

**New POAP Collected:** This triggers when any POAP is collected by a specified wallet.

**New POAP Holder:** This triggers when any wallet collects a given POAP.

**Actions:**

**Get POAP Event:** This retrieves a POAP event by its ID.

**Get POAP Token:** This retrieves a POAP token by its ID.

### Recommended Templates:

**Send an XMTP Message to Every New POAP Holder:** This allows you to automatically send an XMTP message to each new POAP holder.

**Share Your New POAPs on Lens:** This enables automatic sharing of your new POAPs on Lens.

With ChainJet, you can connect this POAP integration with other web3 protocols, which provides an extensive range of possibilities for automating tasks in a no-code environment.


# XMTP

XMTP is an open protocol and network that enables secure web3 messaging.

<figure><img src="/files/k5kiOmVfH3qR57qhYsja" alt=""><figcaption></figcaption></figure>

Utilizing this integration, users can establish communication between blockchain accounts, including the capability to send direct messages (DMs), alerts, announcements, among others, directly from the ChainJet platform.

### Setting Up XMTP on ChainJet:

To commence utilizing the XMTP service through ChainJet, one must first have an [XMTP account](https://xmtp.chat/). This requires logging in with your wallet.

### Available Triggers and Actions:

ChainJet provides numerous triggers and actions for the XMTP service, enabling a high degree of automation and interaction:

#### Triggers:

**1. New Conversation:** This trigger activates when a new conversation is initiated. In this context, a conversation is defined as the first message exchanged between two distinct addresses.

**2. New Message:** This trigger activates when a new message is received.

#### Actions:

**1. Check if a wallet has XMTP:** This action verifies if a specific wallet has XMTP enabled and whether it can receive messages.

**2. Send a message to a Lens handle:** This action enables you to send a message to a specific Lens handle.

**3. Send a message to a conversation:** This action enables you to send a message to an existing conversation.

**4. Send a message to a wallet:** This action allows you to send a message directly to a specific wallet.

### Recommended Templates:

To assist users in optimizing their XMTP tasks via ChainJet, we recommend the following templates:

**1.** [**Welcome new Lens followers with a DM:**](https://chainjet.io/workflows/63a9f0b125fb61a9ea27f6f8) This template allows you to send an automated direct message to every new follower on Lens.

**2.** [**Get email notifications when you receive a message on XMTP:**](https://chainjet.io/workflows/63a9f22e25fb61a9ea27faba) This template enables you to receive email notifications whenever a new XMTP message arrives.

**3.** [**Get a XMTP notification when an ENS domain is about to expire**](https://chainjet.io/workflows/63bb16c918d7845b7f1a9c4e)**:** This template delivers an XMTP notification when your ENS domain is nearing its expiration.

**4.** [**Receive a notification on XMTP when a token price moves more than X%**](https://chainjet.io/workflows/63d189ba60be310b28edbc9e)**:** This template provides an XMTP notification whenever a specific token's price fluctuates by more than a predetermined percentage.

**5.** [**Send a Lens DM to everyone who collects one of your posts**](https://chainjet.io/workflows/63d40897794370c9d10f02c4)**:** This template facilitates sending a direct message to every user who collects one of your posts on Lens.

**6.** [**Send an XMTP message to every new POAP holder**](https://chainjet.io/workflows/63da7927cffcc086bdcc0ce0)**:** This template allows for sending a personalized XMTP message to every new holder of your POAPs.

With ChainJet's XMTP integration, these triggers, actions, and templates equip users with an efficient toolset for optimizing their processes and maintaining a firm presence in the dynamic landscape of web3. ChainJet further empowers users by facilitating the interconnection of this integration with other web3 protocols, expanding the possibilities of what one can achieve.


# Tutorials

In this section, you will find tutorials on some use cases that will help you to carry out your workflows. You can find these tutorials and more information on our [Mirror](https://mirror.xyz/chainjet.eth).


# Support and Community

If you need help using ChainJet, have suggestions, feedbacks, partnerships, want to know the latest ChainJet news, or want to contact us for any reason, here are all the possible ways to contact us.


