My App
X Automations

Card layouts and limits

Every automation delivers through the same three-step fallback chain, and renders one of two card shapes depending on its type.

Card layouts and limits

Every automation delivers through the same three-step fallback chain, and renders one of two card shapes depending on its type.

Delivery fallback chain

  1. sendRichMessage — a Bot API rich message.
  2. sendPhoto — a photo with a caption, if there is a photo or graphic.
  3. sendMessage — plain text.

Each step runs only after the one before it fails. Every automation type goes through the same three-step chain.

Only a card delivered on the first step (rich) gets stored context, so only that card's posts and follower-list buttons keep working later — a card that fell back to a photo caption or plain text has none of those buttons to begin with, because the button rows are part of the rich layout only.

For follow trackers only, the winning method is kept as the entry's own state and shown next to its card in the automation list — but only when it is not rich: a healthy rich delivery shows nothing extra; a fallback shows "photo" or "text" beside the last-alert time. Feed and phrase entries do not keep or show this.

Feed / phrase card, row by row

Three slots, joined by blank lines: the link line, the owner's message, and the post's own text as a quote.

SlotContent
LinkThe owner's link label as a link, or the bare post URL when the label is empty. Position (top or bottom) is a per-entry setting.
MessageThe owner's own text, used verbatim — or, when left empty, a built-in default: feed → "🐦 @handle just posted"; phrase → "🔎 @handle posted", followed by the phrase itself in italics.
QuoteThe post's own text, only while "Show tweet" is on and the post has text at all. Trimmed to 600 characters (400 as a photo caption, to stay under Telegram's 1024-character caption limit).

Image: the entry's own configured image if set, otherwise the post's own photo, if it has one. Buttons, if any, ride alongside, laid out stacked or inline per the entry's own setting.

Composing the message — editor-side only

The dashboard's editor for this message offers two tokens while writing it:

TokenMeaning in the editor
{embed}The locked quoted-post block. Removing it from the editor is how "Show tweet" gets turned off.
{post_url}Shown only when the link label is left blank.

Note

Both are editing conveniences only. The bot performs no substitution on the saved text — it is sent exactly as written.

Follow rich card, row by row

A Bot API rich message, with entity detection off — an @handle inside a bio never turns into a Telegram mention.

  1. One image — the follow graphic (tracked account followed the followed account), or the followed account's own avatar when the graphic could not be rendered. Never a banner, never the owner's own image.
  2. (unless "Show tweet" is off) A compact stats table: Followers, Following, Posts, and Joined when the join date parses.
  3. (unless "Show tweet" is off) The bio, as an expandable quote past 200 visible characters (capped at 600 characters overall); its footer shows the website, the location, and 🔒 for a private account, each only when present. No bio but some of those → a bare footer line. Neither → nothing.
  4. Recent posts — present only once at least one post is shown: a heading plus the rendered posts (2.7).
  5. The contract-address block — always the last content block, whenever a token has been found (below).
  6. Button rows (below).

There is no heading, no check mark, no @handle line and no owner text anywhere on this card — the graphic already states who followed whom, and the View button is the profile link. The entry's own message text, link label and link position have no effect on this card at all; they only shape the classic fallback.

Follow classic fallback

Used only when the card falls back to a photo caption or plain text. It is laid out like a feed/phrase card: link (top/bottom), the owner's text or the built-in default "🤝 @handle just followed", then the followed account as an expandable quote — name, check mark, @handle, follower count, bio trimmed to 280 characters as text / 200 as a caption — then the contract-address lines.

The check mark itself (blue or gold) only ever appears on this fallback and in follower-list rows — never on the rich card.

Button rows

RowContents
1View <name> — a link to the account's profile; long names trimmed to 20 characters with an ellipsis. Plus, while a posts callback is set, Fetch 5 most recent posts (before the first press) or Fetch 5 more posts (after).
2Fetch <name> Followers — present only while the entry offers the follower-list button.
3Chart (only when a token has a chart link) and Copy CA (tap-to-copy) — present only once a token has been found.

Rows 1 and 2 are attached to every follow card unconditionally — there is no per-entry switch to remove them.

Contract-address block, row by row

  1. Heading: "Contract address".
  2. Per token: $SYMBOL · name · chain · Chart · Explorer — name omitted when it matches the symbol; Chart/Explorer only when a link is known.
  3. The address itself, as tap-to-copy code.
  4. A compact 4-cell table: Market cap, Holders, Supply, Age.
  5. A footer line: price, liquidity, FDV (only when it differs from market cap by more than 2%), burned supply, any security flags, and where the token was found — each only when known.

Up to 3 tokens are shown per card (2.7). The classic caption fallback renders the same data as plain lines instead of a table.

Full limits table

Every hard number in X automations, grouped by area.

Automations and rules

LimitValueNotes
Automations per bot10Every plan.
Rules per entry8phrase and follow only.
Rule value0 – 1,000,000,000,000Ratio rounds to 2 decimal places; every other kind is floored.
Rule tolerance0 – the entry's own rule countClamped to the rule count on save.
ca rule wait (follow only)8.0 sJudged instantly on a phrase entry — no wait.
Buttons per entry12feed/phrase only.
Button style options3primary, success, danger.
Button label64 charactersHard-truncated, not rejected.
Custom-emoji button icon id5–32 digits
Message / link label / recap row / recap header500 characters eachRejected over, not truncated.
Phrase length120 characters
Handle1–15 letters, digits, underscore
Minimum-followers gate ceiling1,000,000,000
Uploaded image5 MB, jpg / jpeg / png / webp

Recap

LimitValueNotes
Recap timesUp to 3, HH:MM, deduplicatedAmerica/New_York, always.
Recap prep lead300 s (5 min) before each slotOne re-fetch per queued hit.
Recap send window900 s (15 min) after each slotA missed slot is skipped, not queued.
Recap hits kept100Oldest dropped first.
Recap message split4000 characters per partHeader appears on the first part only.

Feed and phrase polling

LimitValueNotes
Feed / follow poll interval5.0 s
Phrase poll interval10.0 s
Feed announces per tick3The rest wait for the next tick.
Phrase announces per tick5
Follow announces per tick3Oldest first.
Feed ids remembered50
Phrase ids remembered300
Follow ids remembered1000Oldest trimmed first.
Follow armingUp to 5 pages of the account's Following listSeeds the seen list before announcing anything.
Backoff30 s, doubling to 300 s (5 min)On a 429 or a long miss streak.
Miss streak before backoff24 misses
Failures before backoff6 failures
Search results window100 rows per request

Posts on demand

LimitValueNotes
Posts per press5
Free-press window after a follow300 s (5 min)No request inside this window.
Timeline page size20 postsPer request.
Timeline pages read per later press4
Posts shown per card, max40
Post text on a card220 characters
Post quote on a feed/phrase card600 characters (400 as a photo caption)
Graphic render timeout20 s
Tracked account's own profile cache6 h, retried after 10 min on a missThe graphic's "who followed" side.

Follower lists

LimitValueNotes
Follower-list message3800 characters / 45 rowsWhichever comes first.
Follower-list name28 characters
Follower-list pacing0.4 s between parts
Follower-list flood-wait honouredUp to 300 s, 6 attempts per part
JSON-document thresholdOver 200 followersTop 20 message + complete list as a JSON file.
Harvest cache120 s
Harvest request timeout240 s

Contract-address cards

LimitValueNotes
CA announce budget (profile scan)1.5 sNever waited for the search.
CA late-edit window20 sOne edit, whatever came back.
Tokens shown per card3
CA candidates remembered per card60Not re-resolved.

Cards and topics

LimitValueNotes
Cards kept per entry30Oldest trimmed first; rich-delivered only.
Bio on the rich card600 characters, expandable past 200 visible characters
Bio on the classic card280 characters as text, 200 as a caption
View-button name20 charactersEllipsised past that.
Topic kinds3alerts, lists, achievements.
Topics remembered40 groups × 200 topics each
Topic idA whole number, 1 – 2,147,483,647

On this page