Channels and connectors

Channels and connectors

Who can do this: messaging channels (Inbound Messaging) need Manage Members. Connectors (adding, changing, testing, running) need Owner. See the .

What it's for

Two different things connect your space to the outside world:

•

A channel is a way customers write to you: email, Telegram, MAX, WhatsApp, chat in a connected app. Messages land in the shared inbox. Channels live in Inbound Messaging. How the team works with them is in .

•

A connector links a table or a feature to an outside service: a CRM, a telephone exchange, a payment gateway, a carrier. Connectors are documents in your navigator and have their own editor.

The two overlap in name only. The Email (IMAP / SMTP) connector copies a mailbox into a table. It does not feed the inbox. Use an email channel for the inbox.

Before you start

•

You need the accounts at the outside service. Each section below says which. This page never shows a credential value.

•

The messengers call back into your Juxtaboard server, so the server needs a public address.

Needs your administrator: these are set for the whole installation, in System, Config.

•

Public App URL. Telegram, MAX, GREEN-API and own-Resend email register a web address with the provider when you save. Without it, own-Resend email and quick-connect WhatsApp say Set the Public App URL system config first and keep Add disabled. Telegram and MAX refuse when you press Add.

•

Inbound Email Domain for the Juxtaboard address option, with its Resend inbound webhook and signing secret. Without it Inbound Messaging shows No inbound email domain is set.

•

Outgoing email, file storage, push, captcha and AI providers. Attachments, browser alerts, chat CAPTCHA and inbox suggestions depend on them.

•

Installing new connector packages and registering the OAuth app that amoCRM sign-in needs (System, Connectors). The built-in connectors below are always offered. A package installed by an administrator appears in the same gallery.

•

Stripe on the payments connector, and the GigaAM speech engine, are set on the server.

You can tell something is missing when a field is greyed out or an error names a "system config".

Part 1. Messaging channels

The channels at a glance

Channel (button in Inbound Messaging)

You need

How the connection is made

Can you write first?

Add email address, Juxtaboard address

Nothing. An address on the server's inbound domain

Set up by your administrator

Yes

Add email address, Your Resend account

A Resend account, a domain with receiving turned on, an API key with full access

Registered in your Resend account for you; by hand if that fails

Yes

Add Telegram bot

A bot token from @BotFather

Registered for you on save

Yes, but only to people who have messaged the bot

Add MAX bot

A bot token from @MasterBot

Registered for you on save

Yes

Add WhatsApp number, WhatsApp — official

A Meta app with the WhatsApp product: phone number ID, access token, app secret, a verify token you invent

You paste a callback URL into Meta

No. Only within 24 hours of the customer's last message

Add WhatsApp number, WhatsApp — quick connect

A GREEN-API instance already paired by QR code

Registered for you on save

Yes

Chat in a connected app

A connected app in the space

The app talks to your server

n/a

Telegram, MAX and quick-connect WhatsApp support group chats. Quick-connect WhatsApp reports Delivered and Read. Official WhatsApp and quick-connect both match senders by phone number. Telegram and MAX match by the messenger's own id.

Compose from the inbox (New message) offers email, Telegram and MAX only.

Settings every channel has

Setting

What it does

Default

Risk

Routing enabled

Switch the channel off without deleting it

On

Off means messages for it are not taken in

Contacts table and Sender match column (email, WhatsApp)

New conversations are linked to the row whose column equals the sender

No table

A wrong column means no matches and no error. For phone columns the digits are compared, any format works. Id columns are compared exactly

Routing

Gives a new conversation an owner: the person on the linked record (a person column, or a reference followed to a person column), else a team group

Nobody

It only fills an empty assignee. A person you picked in the inbox stays

Remove

Deletes the channel after you confirm (Remove channel). Telegram, MAX, quick-connect WhatsApp and own-Resend email take their registered web address down, best effort. Official WhatsApp has nothing to take down

n/a

Existing conversations stay but lose the channel. See "Undo" below

Once, for the whole space, Attachment processing policy controls files: Prohibited extensions (executables are blocked by default), Max file size (MB) (25 by default) and Keep attachments for (days) (30 by default).

Email: Juxtaboard address

Type a full address and press Add. If the server has an inbound domain, the dialog suggests an address built from the space's address part. Replies are sent from the platform address. There is nothing else to set up on your side.

Email: your own Resend account

Choose Your Resend account under Which mailbox receives this address?.

1.

In Resend, add your domain under Domains and turn on Receiving. Add the MX record Resend shows in your DNS.

2.

In Resend, create an API key with Full access. A sending-only key can send but cannot read received mail.

3.

In the dialog fill Email address (for example info@yourcompany.com) and Resend API key, then press Add. The key is checked, the domain is checked for receiving, and a webhook is registered in your Resend account.

4.

Read the Resend webhook state: Connected, Connected (added by hand) or Not receiving yet. If automatic registration failed, add the Webhook URL shown in Resend, Webhooks, with the event email.received, paste its Signing secret here and save. Or enter the API key again and save to retry.

5.

Optional: Send all of the project's email from this address sends automations, form assignments, portal notices and sign-in links, and booking and order confirmations through your Resend account. The domain must also be verified for sending (DKIM and SPF). Only one inbox in the space can do this. Team mail such as invitations and digests still comes from the platform.

Telegram bot

1.

In Telegram, create a bot with @BotFather and copy its token.

2.

Add Telegram bot, paste it into Bot token, press Add. The token is checked and the bot's @name becomes the channel address.

3.

Under Sender name resolution set External users contacts table and Telegram ID column… so senders show names. Internal users contacts table (defaults to the person directory) names your staff.

4.

Optional Welcome message (below).

A bot can write only to people who have started it. Group chats are supported.

MAX bot

Same as Telegram. Create the bot in MAX with @MasterBot, take the token from the bot's advanced settings, press Add MAX bot. The ID column is MAX ID column…. The welcome message is also sent when someone presses Start.

WhatsApp: official

1.

In your Meta app, open WhatsApp, API Setup. Note the Phone number ID, Access token and App secret. Invent a Verify token (your choice).

2.

Add WhatsApp number, choose WhatsApp — official, fill the four fields, press Add. Meta is asked for the number; the verified business number becomes the channel address.

3.

In the Meta app, Webhooks, WhatsApp: set the Callback URL and Verify token shown in the dialog, and subscribe to the messages field. The callback URL is the same for every WhatsApp number in the space and is registered once per Meta app. Juxtaboard does not register it for you and does not remove it.

4.

Replies are allowed for 24 hours after the customer's last message. After that the reply box says Outside the 24-hour WhatsApp service window — a pre-approved template is required (not yet supported).

WhatsApp: quick connect (GREEN-API)

Careful: this is an unofficial connection. WhatsApp does not permit it and the number can be banned. The dialog says so. Use the official option for volume or for a number you cannot lose.

1.

In your GREEN-API console create an instance and scan its QR code with WhatsApp.

2.

Add WhatsApp number, choose WhatsApp — quick connect, paste any example URL from the console into Instance URL, press Add. It carries the instance id, token and host. The connected number is read back and the webhook is registered.

3.

WhatsApp session shows Connected, Disconnected — re-scan the QR code in your GREEN-API console or Not ready.

4.

If the instance already sends events to another system, saving is refused. A box Take over this instance's webhook appears. Ticking it stops that other system receiving them.

Chat in a connected app

For signed-in customers of your own front-end app. Pick the Connected app, keep Chat enabled on, and set Chat page in the app (where email and push links open) and Email / push an unread reply after (minutes). The app's origin must be in the portal allowed origins. This is for developers; see the business guide.

Setting

What it does

Default

Welcome message

Sent to a new contact's first message, in the language you choose per Language

Off

Show portal button

Adds a button that opens your customer portal. Needs no Public App URL if off

On

Show “Link my account” button

Asks the person to share their phone number and links the chat to the matching row. Customers match in the contacts table, staff in a staff table with a Phone column

Off

Also grant portal access

Lets the portal button sign the person in without an email link

Off

Careful: Also grant portal access trusts the phone number as proof of identity for your portal data. Turn it on only if that is true for your business. A number found on several rows is never linked automatically.

Send test sends the copy on screen to a chat id you supply. The recipient must have messaged the bot first.

How credentials are stored

Tokens, app secrets, API keys and signing secrets are encrypted when saved. They are never shown again; only non-secret parts are (the bot name, the phone number ID, the WhatsApp verify token, the GREEN-API instance id). That is why Telegram, MAX and WhatsApp show credential fields only when you add a channel. To change a token, remove the channel and add it again. For your own Resend account you can re-enter the key on the existing channel. Channels saved before encryption existed may keep a readable copy until your administrator runs the clean-up step.

Common errors

What you see

Meaning and fix

Set the Public App URL system config first

Ask your administrator

Provide the Telegram bot token / the MAX bot token / the WhatsApp Cloud API credentials

A required field is empty

Invalid bot token

The messenger rejected it. Copy it again whole

Resend rejected this API key

Copy the key whole; it starts with re_

This Resend API key can only send

Create a key with Full access

domain is not a domain in this Resend account

Add the domain in Resend, Domains, and turn on Receiving

Receiving is turned off for domain / has not verified the receiving MX record

Turn on Receiving and add the MX record shown

domain is this platform's own inbound domain

Use Juxtaboard address for that domain

Sending is turned off for / has not verified … for sending

Only for the "send all mail" switch. Turn on Sending and add DKIM and SPF

That does not look like a GREEN-API instance URL

Paste an example URL from the console

This GREEN-API instance is not paired with WhatsApp yet

Scan the QR code first

Part 2. Connectors

Add and edit a connector

1.

In the navigator, open the arrow next to New Document, then Advanced, then New connector…. The dialog is Add a connector; connectors are grouped by kind. Pick one. Only an owner can load the list.

2.

The connector opens as a document. Fill in Settings.

3.

Turn on Connector active, then press Save.

Setting

What it does

Default

Risk

Connector active

A switched-off connector does not run

Off

A required secret may be left empty while it is off. Turning it on needs everything

Secret fields

Stored encrypted, never shown again. Leave blank to keep the stored value

n/a

Pressing Save with a changed secret replaces it

Account connection, Connect account

OAuth sign-in in a pop-up (amoCRM). Disconnect forgets the token here only; revoke it in the provider too

Not connected

Pop-ups must be allowed

Test connection

Tests the values on screen against the provider. Shown when the connector has secret fields

n/a

A passing test is not a guarantee of correct table mapping

Webhook URL

Paste it into the provider so it can send events

n/a

The address contains a secret token. Treat it like a password

Run on schedule, Frequency, Cron (5-field)

Runs it on a timetable. Choices run from Every 15 minutes to Every Monday at 06:00, or Custom…

Off

Each run calls the provider

Run now

Saves, then runs once, ignoring the active and schedule switches

n/a

It really runs; imports write rows

Run history

Each run: Manual, Scheduled, Webhook, Follow-up or Action, OK or Error, with log lines, Request and Result

n/a

Without Owner the editor shows Only a project owner can change connector settings. Delivery, marketplace and payments use their own editors with the same rights. Their labels are written in English in the component, not in the interface strings.

The connectors

Connector (gallery group)

What it connects

You need

Where configured

amoCRM (CRM)

Imports companies, contacts and leads into your tables. Import only; re-runs update, never duplicate

Account subdomain, domain, sign-in by OAuth (an administrator registers the app) or a long-lived token; a target table and field mapping per entity

Generic editor with tabs, plus a custom-fields panel. Schedule suggests hourly

Delivery (Delivery)

Carrier rates at checkout, shipments, labels. Carriers listed: Yandex Доставка (pickup point / courier) and (express courier)

Carrier credentials, a sender address, a default package

Own editor

Email (IMAP / SMTP) (Messaging)

Copies a mailbox into a table, attachments as files; sends mail over SMTP

IMAP server, mailbox address and password; optional SMTP; a Messages table and field mapping

Generic editor with tabs. Schedule suggests every 5 minutes

Geocoder (Geocoding)

Address suggestions in forms, optional standardisation (DaData)

DaData API key; secret key only for standardisation

Generic editor. Forms then pick it under Geocoder connector

Mango Office (Telephony)

Calls and recordings from a Mango VPBX into a Calls table, for transcription

VPBX API key and salt; the table and its columns

Generic editor, webhook and schedule

Marketplace (Marketplaces)

Publish the catalogue, import listings, sync stock and price. Listed: Ozon

Marketplace credentials; a catalogue to bind

Own editor, tabs Connection, Binding, Sync, Updates history

1C OData (Other)

Imports 1C catalogues and documents, creates draft documents back

Base URL ending /odata/standard.odata/, username, password

Generic form plus a 1C panel; schedule suggests hourly

Payments (Payments)

ЮKassa, Stripe, Yandex Pay, T-Bank, or test mode (no real money)

Provider keys; Stripe connects by hosted onboarding

Own editor. See

Speech-to-Text (Speech-to-text)

Transcribes audio with speaker labels

Yandex SpeechKit API key and optional folder id, or the self-hosted GigaAM engine (administrator)

Generic editor

Email (IMAP / SMTP) has two switches, Accept an untrusted certificate and Allow a private network address.

Careful: leave them off unless your administrator tells you otherwise. They weaken the checks on the mail server you connect to.

App connections

New app connection… (same menu) binds a custom front-end app to the space. It is for developers. Its Connectors tab chooses which connector fills each slot the app asks for, for example "take a payment". See the business guide.

How to check it worked

•

Channel: send a message in from outside; it appears under Unread in the inbox. Check the state line (WhatsApp session, Resend webhook) first.

•

Connector: press Test connection, then Run now, then open Run history and read the newest run.

Undo / what can go wrong

•

Removing a channel. Remove first asks you to confirm and says what happens to the channel's conversations. The webhook is taken down on a best-effort basis (above). Existing conversations stay in the inbox with their history but lose their link to the channel. Email conversations can still be answered: the reply goes out through another enabled email address of the space (if there is none, it is still sent, without a reply-to address). Telegram, WhatsApp and MAX conversations cannot: the reply box is greyed out and says the channel was removed and should be added again in Inbound Messaging. Once you add the channel again, each conversation reconnects to it the next time its customer writes, and replies work again; until the customer writes, it stays unanswerable. Finish with a channel's open conversations before you remove it.

•

Duplicate imports. Mapping the wrong id column makes every re-run create copies. Map the id column first.

•

A ban. Quick-connect WhatsApp cannot be made safe; stop using it.

•

A webchat: entry appears in the channel list once you enable and save Live Chat, for example webchat:12 (the number is your space's id). It is the chat widget's own channel, created for you and shown as plain text with the mail icon. Leave it alone: visitors' messages are accepted only while it exists and is enabled, otherwise the widget reports Chat is not configured for this site. Saving Live Chat again with the widget on creates or re-enables it.

•

,

•

,

•

Business guide, connector developer guide