Public documentation

Build no-code bots for Telegram, WhatsApp and customer journeys. A general-purpose Studio Canvas with AI, payments and business templates.

Complete guide to understand JoinGate: multi-channel Studio Canvas, business templates, stable Telegram, WhatsApp GoWA beta, official Meta API, Mobile Money payments, AI credits, quotas, webhooks and publishing best practices.

9
canvas block types
2
active channels: Telegram, WhatsApp
FR/EN
bilingual messages
24/7
automated bots
Bot flow preview
Live
Message
Bienvenue {{client_name}}
Menu
buy_subscription · faq · support
Tag
lead → vip
Webhook
POST /payment.validated

No-code Studio Canvas

Drag-and-drop canvas, channel preview, versioning and progressive publishing.

Template marketplace

Free or premium templates for e-commerce, coaching, restaurant, support, VIP community or services.

Telegram & WhatsApp channels

Telegram stays stable; WhatsApp GoWA and official Meta are protected behind feature flags.

Pay-as-you-go AI

AI credits for receipt analysis, journey generation, FAQ, assisted support and business content.

Overview

What JoinGate automates

Product basics: no-code bots, channels, journeys, payments, access and support.

3 min

JoinGate turns messaging channels into no-code assistants able to sell, qualify, support, collect payments and automate. Telegram is the stable historical channel; WhatsApp is progressively available through GoWA beta and the official Meta API; the product model is built to become multi-channel.

  • General-purpose bot / assistant created in Studio Canvas without code.
  • Active channels: stable Telegram, WhatsApp GoWA beta and official WhatsApp Meta API. Webchat is deferred.
  • Business templates for e-commerce, coaching, restaurant, customer support, VIP community or agency.
  • Mobile Money, cards, transfers and payment instructions by channel depending on providers.
  • CRM, conversations, support, subscriptions, quotas, add-ons and AI credits in one dashboard.

Public docs explain product concepts and conventions. Dashboard docs remain for signed-in users.

Features

Everything JoinGate covers

A simple overview of the modules available to create, sell, automate and manage multiple channels.

6 min

JoinGate is no longer limited to a Telegram bot. The platform covers the full cycle: no-code assistant creation, channel choice, canvas journeys, payment, access, support, renewals, CRM, quotas and SaaS management.

Module
Bots / Assistants
Purpose
Create a general-purpose no-code bot
Usage example
E-commerce, coach, support, community or agency assistant
Module
Channels
Purpose
Connect Telegram or WhatsApp
Usage example
Stable Telegram, WhatsApp GoWA beta, official Meta API
Module
Studio Canvas
Purpose
Create a journey without code
Usage example
Welcome → Menu → Payment → Support → Follow-up
Module
Templates
Purpose
Start faster
Usage example
E-commerce, restaurant, coaching, support, VIP community template
Module
Telegram groups
Purpose
Manage private access
Usage example
Import existing members then automate removals
Module
Offers
Purpose
Sell different durations
Usage example
Monthly, quarterly, yearly, special access
Module
Payments
Purpose
Review receipts
Usage example
Approve a Wave receipt or ask for a clearer proof
Module
Customers & prospects
Purpose
Turn members into customers
Usage example
Activate 40 paid prospects in one action
Module
Subscriptions
Purpose
Correct and extend access
Usage example
+7 days, change offer, suspend, reactivate
Module
FAQ & Support
Purpose
Answer quickly
Usage example
Bot FAQ and dashboard support tickets
Module
WhatsApp
Purpose
Test GoWA or official Meta
Usage example
GoWA QR, approved Meta templates, opt-in/opt-out, quotas
Module
CRM & Broadcasts
Purpose
Target messages
Usage example
Send a renewal campaign to expired customers
Module
Reports
Purpose
Track performance
Usage example
Revenue, active subscriptions, pending payments
Module
Billing & AI
Purpose
Manage plan, add-ons, WhatsApp quotas and AI credits
Usage example
Buy credits or WhatsApp Meta message packs

For a simple launch: choose the main channel, create the bot, prepare an offer, add a payment method, build Studio Canvas, preview on the target channel, then publish progressively.

Quickstart

Create and publish your first bot

Account, channel, business template, customization, preview, publication.

5 min
  1. 1Create a JoinGate account and name your organization.
  2. 2Choose your starting channel: stable Telegram for production, WhatsApp GoWA beta for QR testing, or official WhatsApp Meta if your Meta access is ready.
  3. 3For Telegram, create a bot through BotFather then paste the token in Dashboard → Bot.
  4. 4For WhatsApp, open Dashboard → Channels → WhatsApp, configure GoWA or Meta, then test sending.
  5. 5Open Bot Builder → Templates and choose a template matching your activity.
  6. 6Customize the canvas: FR/EN messages, menus, offers, payment, FAQ and support.
  7. 7Save, preview the target channel rendering, then publish progressively.

A purchased or free template creates a draft flow. The user lands directly in the editor, without an empty screen. Telegram remains the most stable production channel; WhatsApp should be enabled and tested progressively.

Existing VIP group

Import and manage members from an existing VIP group

Sync existing members, manually activate subscriptions and let the bot handle reminders, expirations and removals.

8 min

Telegram does not allow a bot to automatically fetch the full list of members who were already inside a group. JoinGate uses a sync campaign instead: each member clicks a /start sync_xxx link so they can be identified safely.

Example: an organization already owns a Telegram VIP group with paying members. It now wants to see them inside the JoinGate dashboard, manually set their current subscription, then let the bot send reminders and remove access if a member does not renew.

Requirements

  • An active JoinGate plan with enough group and customer quota.
  • A Telegram bot connected from Dashboard → Bot.
  • The bot added as an administrator of the existing VIP group.
  • The required Telegram permissions: manage the group, create invite links and remove or restrict members.

Sync existing members

  1. 1Go to Dashboard → Telegram Groups.
  2. 2Add the existing VIP group and make sure it is ready.
  3. 3Click Sync existing members to create a campaign.
  4. 4Copy the https://t.me/<bot>?start=sync_xxx link and the suggested message.
  5. 5Post that message in your VIP group: each existing member must click the link once.
  6. 6JoinGate creates or updates the member as a prospect in Dashboard → Clients.

A synced prospect does not consume max_customers. Customer quota is consumed only when you activate the prospect as a managed customer.

Activate one or several prospects

  1. 1Open Dashboard → Clients and filter synced prospects.
  2. 2For one prospect, open their profile and choose the offer, Telegram group, start date and expiration date.
  3. 3For several prospects, select visible members or use Select all.
  4. 4Choose one offer, optional Telegram group, start date and end date.
  5. 5Submit: JoinGate creates customer_subscriptions and group_accesses, then marks prospects as active customers.
  6. 6If max_customers is reached, activation is cleanly blocked with an upgrade message.
Example: 40 paid prospects → Select all → VIP 30-day offer → Private group → activate with one action
State
Prospect
Effect
Member identified after clicking the sync link.
Quota
Does not consume max_customers
State
Active
Effect
Subscription and group access manually created.
Quota
Consumes max_customers
State
Expired
Effect
The bot can remove access if the member does not renew.
Quota
Should no longer count as an active customer

Reminders, renewal and automatic removal

  • The reminders cron uses the expiration date to warn the customer before the subscription ends.
  • If the customer renews before expiration, the subscription is extended and access stays active.
  • If the customer does not renew, the expiration cron marks the subscription as expired and the bot removes group access.
  • The bot must remain a group administrator to remove a member automatically.
Subscriptions

Manage subscriptions simply

Extend access, correct dates or activate many prospects without repetitive manual work.

5 min

From the dashboard, an admin can manage access without code: add days, set an exact period, change an offer or activate many prospects at once.

Situation
Give extra days
Where to click
Subscriptions → Manage → Extend
Example
Add 7 days for a loyal customer
Situation
Correct a period
Where to click
Subscriptions → Manage → Edit dates
Example
Start July 9, end August 9
Situation
Change product
Where to click
Subscriptions → Manage → Change offer
Example
Monthly to VIP
Situation
Bulk activation
Where to click
Clients → select prospects
Example
40 paid prospects activated in one action
  1. 1To give X days: open the subscription, type the number of days, add a note and click Extend.
  2. 2To choose exact dates: use Edit dates with Start and Expiration.
  3. 3For several people: select prospects in Clients, choose offer/group/dates, then bulk activate.

Simple example: if a customer paid outside Telegram, you can manually create or correct their subscription, then JoinGate handles reminders and automatic removals.

Studio Canvas

Build a no-code bot with Studio Canvas

Create a Telegram journey with blocks, messages, menus, variables and publishing.

8 min

Studio Canvas is JoinGate’s visual editor. You build your bot like a diagram: a welcome message, a menu, and paths to buy, read the FAQ, renew or contact support.

Area
Palette
What it does
Add a block
Concrete example
Message, Menu, Action, Condition, Webhook
Area
Canvas
What it does
Organize the journey
Concrete example
Connect Welcome message → Main menu
Area
Inspector
What it does
Edit the selected block
Concrete example
Change text, buttons or action
Area
Toolbar
What it does
Save, center, auto-arrange, publish
Concrete example
Publish to Telegram once the test is good
Area
Preview
What it does
Test before publishing
Concrete example
Check the journey as a customer

Create a simple sales journey

  1. 1Open Dashboard → Bot Builder.
  2. 2Create a flow or choose a template close to your need.
  3. 3Add a Message block with a clear greeting: Welcome {{client_name}} 👋.
  4. 4Add a Menu block with 3 buttons: View offers, FAQ, Support.
  5. 5Connect the message to the menu, then connect each button to the right path.
  6. 6Add useful variables in your messages: {{selected_offer_name}}, {{subscription_expires_at}}, {{invite_link}}, {{group_name}}.
  7. 7Click Save, then Preview.
  8. 8If everything is correct, click Publish to Telegram.
Welcome message
→ Main menu
  → View offers
  → FAQ
  → Support

Example: sell Telegram VIP access

  1. 1Message: explain what the customer gets inside the VIP group.
  2. 2Menu: offer Buy, My subscriptions, FAQ and Support.
  3. 3Buy button: use the buy_subscription action to show active offers.
  4. 4After payment validation, send a confirmation message with the private link.
Thanks {{client_name}}!
Your {{selected_offer_name}} offer is active until {{subscription_expires_at}}.
Join {{group_name}} here: {{invite_link}}

Other useful journeys

Goal
Support
Simple structure
Message → FAQ / Contact support / Back to menu
When to use it
Answer customer questions faster
Goal
Renewal
Simple structure
Expiring soon → Renew / View my subscriptions / Support
When to use it
Reduce unrenewed expirations
Goal
Lead
Simple structure
Get the free program → PDF / Advisor
When to use it
Turn a Telegram lead into a customer

Save or publish: important difference

  • Save keeps the draft in JoinGate without changing the live Telegram bot.
  • Preview lets you test text, menus and paths before publishing.
  • Publish sends the current version to the Telegram bot.
  • Each publication is stored so you can compare, duplicate or roll back.

Recommended method: build step by step, save often, preview the important buttons, then publish only when the journey is clear.

Canvas

The 9 Bot Builder node types

Each node has a specific role in a bot journey.

7 min
Node
Message
Fields
messageEn, messageFr, label
What it does
Sends localized text with variables such as {{client_name}}.
Runtime status
Executed
Node
Menu
Fields
buttons[].label, buttons[].action
What it does
Shows Telegram buttons and continues to the connected node.
Runtime status
Executed
Node
Condition
Fields
conditionField, operator, value
What it does
Prepares a TRUE/FALSE branch based on customer or context data.
Runtime status
Editable, advanced runtime pending
Node
Delay
Fields
delaySeconds
What it does
Prepares a wait before continuing the journey.
Runtime status
Editable, advanced runtime pending
Node
Action
Fields
actionKey
What it does
Declares an internal action: invoice, access, ticket, collection.
Runtime status
Editable, advanced runtime pending
Node
Tag
Fields
tagKey, tagMode
What it does
Adds or removes a CRM tag such as vip, lead or expired.
Runtime status
Editable, advanced runtime pending
Node
Webhook
Fields
method, url
What it does
Prepares a GET/POST call to CRM, Make, Zapier or backend.
Runtime status
Editable, advanced runtime pending
Node
AI
Fields
aiFeature, aiPrompt
What it does
Prepares an AI answer or generation that consumes credits.
Runtime status
Editable, advanced runtime pending
Node
Split A/B
Fields
variants[].id, label, weight
What it does
Chooses a weighted variant and stores customer attribution.
Runtime status
Executed

For a template sold today, keep the active path on Message + Menu + Split. Other nodes document the journey and prepare the advanced runtime.

Useful variables in messages

Variable
{{selected_offer_name}}
Simple use
Name of the offer selected by the customer
Variable
{{subscription_expires_at}}
Simple use
Subscription end date
Variable
{{invite_link}}
Simple use
Private link to join the group
Variable
{{group_name}}
Simple use
Telegram group name shown to the customer
Your {{selected_offer_name}} offer is active until {{subscription_expires_at}}. Join {{group_name}} here: {{invite_link}}
Action keys

Actions and callbacks usable in templates

Keys to use in menus and actions to stay runtime-compatible.

12 min

In a template, distinguish `buttons[].action` from `data.actionKey`. Menu actions are already interpreted by Telegram. Action node keys are saved for advanced automation.

Key
buy, buy_subscription, subscription_buy
Usage
Menu alias
Current effect
Normalized to menu:buy. Opens active offers and the payment funnel.
Practical example
`See offers` button in a premium course template.
Key
subscriptions, my_subscriptions
Usage
Menu alias
Current effect
Normalized to menu:subscriptions. Shows the customer subscription state.
Practical example
`My access` button to check if the customer is still active.
Key
renew
Usage
Menu alias
Current effect
Normalized to menu:renew. Starts purchase or renewal.
Practical example
`Renew` button sent 3 days before expiration.
Key
faq
Usage
Menu alias
Current effect
Normalized to menu:faq. Shows FAQ categories and answers.
Practical example
`Frequently asked questions` button in a support bot.
Key
support
Usage
Menu alias
Current effect
Normalized to menu:support. Opens support instructions and request creation.
Practical example
`Talk to support` after an FAQ answer is not enough.
Key
terms, conditions
Usage
Menu alias
Current effect
Normalized to menu:terms. Shows rules, terms or useful information.
Practical example
`Group rules` before purchasing access to a private community.
Key
language, lang
Usage
Menu alias
Current effect
Normalized to menu:language. Shows FR/EN language choice.
Practical example
`Change language` button in the main menu.
Key
menu:start
Usage
System callback
Current effect
Returns to the welcome menu or replays the published /start flow.
Practical example
`Back to menu` after payment, FAQ or support.
Key
menu:buy
Usage
System callback
Current effect
Shows active offers then available payment methods.
Practical example
Callback generated by the `buy_subscription` alias.
Key
menu:renew
Usage
System callback
Current effect
Shows the offer flow and active offers.
Practical example
`Renew my subscription` in a retention campaign.
Key
menu:faq
Usage
System callback
Current effect
Opens FAQ categories and questions.
Practical example
`FAQ` button after the welcome message.
Key
menu:support
Usage
System callback
Current effect
Shows support instructions and can collect a support message.
Practical example
`Contact a human` in a customer-care journey.
Key
menu:terms
Usage
System callback
Current effect
Shows configured terms, rules or legal notes.
Practical example
`Access conditions` before payment.
Key
menu:language
Usage
System callback
Current effect
Shows Français / English buttons.
Practical example
`Language` button for bilingual communities.
Key
menu:subscriptions
Usage
System callback
Current effect
Shows subscription status. Today it may answer that the detailed view is coming soon.
Practical example
`My subscriptions` in the default menu.
Key
lang:fr, lang:en
Usage
System callback
Current effect
Updates the Telegram customer language and returns the localized menu.
Practical example
Customer selects `English` and receives EN messages afterward.
Key
offer:<uuid>
Usage
System callback
Current effect
Selects a specific offer and shows active payment methods.
Practical example
Auto-generated button for a `Monthly Coaching` offer.
Key
pay:<uuid>
Usage
System callback
Current effect
Selects a payment method and shows payment instructions.
Practical example
`Wave` or `Orange Money` button after offer selection.
Key
faqcat:<uuid>
Usage
FAQ callback
Current effect
Opens questions for a specific FAQ category.
Practical example
`Payment` category with receipt and timing questions.
Key
faq:<uuid>
Usage
FAQ callback
Current effect
Shows the answer for a specific FAQ question.
Practical example
Question `How do I join the group after payment?`.
Key
flow:<step_key>
Usage
v1 flow fallback
Current effect
Tries to open a published step by key or type.
Practical example
`program` button opening a legacy flow description step.
Key
c:<flow>:<node>:<handle>
Usage
Canvas v2
Current effect
Continues a published canvas from the node and button output.
Practical example
Menu node button leading to a `Pricing` message.
Key
canvas:<node>:<handle>
Usage
Legacy canvas
Current effect
Older canvas callback format still recognized.
Practical example
Compatibility with templates created before short `c:` callbacks.
Key
/start
Usage
Telegram command
Current effect
Starts the published /start flow or shows the welcome menu.
Practical example
First message when a customer opens the bot.
Key
/renew, /faq, /support, /language, /lang, /id
Usage
Telegram commands
Current effect
Trigger renewal, FAQ, support, language or chat ID diagnostic.
Practical example
An admin types `/id` in a group to retrieve its Telegram chat ID.

Recommended action keys for Action nodes

actionKey
send_invoice
Intent
Prepare/register an invoice request.
Example scenario
After B2B payment, the bot collects company details and marks the invoice step for processing.
actionKey
grant_access
Intent
Declare an access delivery step.
Example scenario
After Wave validation, the flow records that private Telegram group access must be delivered.
actionKey
create_ticket
Intent
Create a support request.
Example scenario
If FAQ does not solve the issue, the customer describes it and a ticket is created.
actionKey
collect_email
Intent
Collect customer email.
Example scenario
Before sending a free PDF, the bot asks for the prospect email.
actionKey
collect_phone
Intent
Collect phone number.
Example scenario
For premium coaching, the bot collects the phone number to schedule a call.
actionKey
notify_admin
Intent
Notify internal team.
Example scenario
A prospect chooses the VIP offer: the team receives an alert for fast follow-up.
actionKey
handoff_human
Intent
Switch to human intervention.
Example scenario
A customer reports a blocked payment: the bot stops automation and hands over to support.
Templates

Create a clean marketplace template

Structure, content, quality checklist and admin JSON example.

9 min
  1. 1Define the use case: sales, support, training, booking, lead, community.
  2. 2Fill EN/FR name, slug, category, description, difficulty, credit price and premium status.
  3. 3Build `default_flow` with a welcome Message, main Menu and essential paths.
  4. 4Use recognized runtime actions: buy_subscription, faq, support, renew, language.
  5. 5Test from preview, save the canvas, then activate the template.
{
  "slug": "premium-coaching",
  "is_premium": true,
  "price_credits": 20,
  "default_flow": {
    "version": 2,
    "nodes": [
      { "id": "welcome", "type": "message", "data": { "kind": "message", "messageEn": "Welcome {{client_name}}", "messageFr": "Bienvenue {{client_name}}" } },
      { "id": "main_menu", "type": "menu", "data": { "kind": "menu", "buttons": [
        { "label": "See offers", "action": "buy_subscription" },
        { "label": "FAQ", "action": "faq" },
        { "label": "Support", "action": "support" }
      ] } }
    ]
  }
}

A strong template is useful before customization: ready bilingual messages, valid runtime actions, clear price, readable preview and obvious business benefit.

Payments & AI

Payments, receipts and AI credits

How JoinGate handles money, receipts, access and AI consumption.

6 min
  • The customer chooses an offer then a payment method.
  • JoinGate shows instructions and waits for receipt or reference.
  • AI can analyze the receipt if credits are available.
  • After validation, the subscription is activated and Telegram access is delivered.
  • Plan credits are consumed before purchased packs.
AI feature
Receipt analysis
Indicative cost
1 credit
Usage
Validate payment faster.
AI feature
Flow generation
Indicative cost
5 credits
Usage
Create a journey base.
AI feature
FAQ generation
Indicative cost
3 credits
Usage
Prepare self-service support.
AI feature
Ticket summary
Indicative cost
1 credit
Usage
Help the support team.
WhatsApp

Use WhatsApp with JoinGate

GoWA beta, official Meta API, templates, opt-in, quotas and launch best practices.

7 min

WhatsApp in JoinGate is designed as an additional channel for the same Studio Canvas. You keep offers, payments, support and contacts in the dashboard, then choose the connector that matches your maturity level.

Option
GoWA beta
Purpose
Fast QR connection through WhatsApp Web
When to use it
Internal tests, demos, early non-critical automations
Option
Official Meta API
Purpose
Official sending through WhatsApp Business Cloud API
When to use it
Production, approved templates, compliance, tracked volume
Option
Meta templates
Purpose
Pre-approved messages in Meta Business Manager
When to use it
Reminders, notifications, payments, messages outside the customer window
  1. 1Enable Telegram first if you need a stable production channel immediately.
  2. 2For GoWA: open Dashboard → Channels → WhatsApp, create the connector, scan the QR code, send a test message.
  3. 3For Meta: create a Meta Business app, retrieve Phone Number ID, WABA ID, access token and verify token, then configure the JoinGate webhook.
  4. 4Register only templates already approved in Meta before sending them from JoinGate.
  5. 5Check opt-in/opt-out, plan quotas, WhatsApp add-ons and admin monitoring before increasing volume.

Do not launch a WhatsApp campaign without explicit consent. STOP / UNSUBSCRIBE events are stored and block dashboard Meta sends until the contact opts in again.

Troubleshooting

Launch checklist, common errors and rollback

Simple checks before publishing and rollback actions when a channel or flow has issues.

6 min
Issue
Telegram bot does not reply
Check
Token, webhook, bot admin in group
Quick fix
Refresh webhook and test /start
Issue
Canvas follows the wrong path
Check
btn_0 / btn_1 connections, published flow
Quick fix
Save, preview, republish the correct version
Issue
WhatsApp GoWA does not send
Check
QR session, connected status, GoWA endpoint
Quick fix
Reconnect the session and send a test message
Issue
Meta rejects a message
Check
Opt-in, approved template, variables, quota
Quick fix
Use an approved template or request consent
Issue
WhatsApp quota reached
Check
Plan + add-ons + today usage
Quick fix
Buy an add-on or wait for the daily reset
  • Before release: test a short flow, one offer, one payment, one support ticket and a WhatsApp message if the channel is enabled.
  • Rollback plan: restore the last published flow version, disable the unstable WhatsApp connector, keep Telegram as the stable channel.
  • For SaaS admins: monitor /admin/billing for WhatsApp quotas, invoices, add-ons and abuse disablement.
Webhooks & security

Integrations and security rules

Best practices to connect JoinGate to your stack without leaking secrets.

5 min
  • Never share the BotFather token: JoinGate stores it encrypted.
  • Use webhooks only with HTTPS and authenticated endpoints.
  • Never put a secret key in a public template.
  • Always separate platform admin context from organization context.
  • Test flows on a staging bot before customer publication.
{
  "event": "payment.validated",
  "organization_id": "uuid",
  "customer_id": "uuid",
  "amount": 15000,
  "currency": "XOF",
  "provider": "wave"
}
Ready to build?

Launch a monetizable Telegram bot in minutes.

Use a template, customize the canvas and publish to Telegram without a developer.

JoinGate Documentation — No-code multi-channel Bot Builder, WhatsApp, Telegram, payments and AI