Extensions

Extensions are the modular building blocks of every Narakim automation. Each extension provides a specific capability — from listening to a Discord message to calling an external API to generating a PDF. Extensions are installed per-bot and appear as draggable nodes in the Automation Graph palette.

Extension Types

TypePurposeCanvas Position
TRIGGERStarts an automation flow when an event firesEntry point (no input handles)
ACTIONPerforms an operation on an external serviceMiddle or end
LOGICControls the execution path (branching, looping)Middle
DATATransforms or persists dataMiddle or end

Anatomy of an Extension

Every extension is defined by:

  • configSchema — JSON Schema for the Node Config Sidebar (e.g. channelId, model, cron)
  • inputSchema / outputSchema — Data accepted from upstream edges and produced for downstream nodes
  • requiredSecrets — API keys that must be configured before run (e.g. OPENROUTER_API_KEY)
  • requires — Other extension registry keys that must appear on the same automation graph (validated on save/deploy). Example: JSON API Poller requires timer_trigger.
  • handlerTypeBUILT_IN (in-process in the Automation Engine) or CONTAINER_PROCESS (isolated Docker container)
info

requires is enforced when you save an automation: if a node lists timer_trigger in requires, the graph must also include a Timer Trigger node. It does not auto-install extensions on the bot — install both from the Extensions tab.

Installing Extensions

  1. Go to Bot Dossier → Extensions tab.
  2. Browse by category or search by name.
  3. Click Install on any extension.

Installed extensions appear in the Node Palette on the Automation canvas.


Built-in Extensions (summary)

See the Extension Catalog for the full list and per-extension pages.

Triggers

ExtensionDescription
Manual TriggerStart from the UI or API (testing, on-demand).
Timer TriggerCron or interval scheduling — required for scheduled JSON API polling workflows.
Webhook TriggerHTTP webhook entry.

Logic

ExtensionDescription
If Conditiontrue / false branches.
For EachLoop over an array — connect Loop body for per-item nodes, Completed after all iterations. See For Each.
Set / Get VariableExecution context variables ({{vars.name}}).
LogLive log stream.

Network, web & data

ExtensionDescription
HTTP RequestUniversal REST client.
Web Scraper (Static HTML)Cheerio + CSS selectors for static pages (no JavaScript).
JSON API PollerPoll JSON + change detection — chain after Timer Trigger.
File DownloaderURL → base64; chain to Database Media or Image Processor.
RSS FeedParse RSS/Atom.
Transform DataJSON/array/object transforms.
HTML to MarkdownClean HTML for Discord/Markdown.
CSV ParserParse/generate CSV.
QR Code GeneratorIn-process QR images.

AI

ExtensionDescription
OpenRouter AIGeneral LLM completions.
AI Summarizer / Classifier / TranslatorPreset OpenRouter workflows.
AI ModerationOpenAI moderation API.
AI Image GenerationDALL-E, Stability, Replicate.
AI Text-to-Speech / Speech-to-TextTTS and transcription.

Integrations (API key / PAT)

Per-app nodes: GitHub, Notion, Airtable, Stripe, Supabase, Linear, Datadog, PagerDuty, SendGrid, SMTP, Twilio (SMS + WhatsApp), Mailgun, Pushover, and full Discord, Slack, Telegram sets.

Container extensions (CONTAINER_PROCESS)

ExtensionImage
PDF Generatornarakim/pdf-generator:1.0.0
Document Extractornarakim/document-extractor:1.0.0
Image Processornarakim/image-processor:1.0.0 — resize, crop, convert, compress (Sharp)
info

Deferred: Web Scraper (Browser) — Playwright container for JavaScript-rendered sites.


Platform Extensions

When a platform is connected, platform-specific extensions unlock in the palette:

PlatformStatusExtensions
DiscordAvailable67+ — triggers, actions, interactions, guild data
SlackAvailableMessages, commands, Block Kit, workflows
TelegramAvailableMessages, commands, moderation, callbacks

See Platform Extensions Reference and Extension Catalog.


Common chains

  • Scheduled API monitor: timer_trigger (cron) → json_api_pollerif_condition → notify (Discord/Slack/email)
  • Price scrape: timer_triggerweb_scraper → compare → alert
  • List processing: transform_datafor_each (body port) → per-item action
  • Image pipeline: ai_image_generationimage_processor → platform send-photo node

Secrets & Extensions

When an extension declares requiredSecrets, the Configurations tab flags missing secrets. Deployment is blocked until they are set. A bot cannot be deployed until all required secrets for installed extensions are filled in.

The AI Agent will never ask for secret values in chat — it references key names and points to Configurations → Extension Secrets.

See Secrets Management.

Was this helpful?
historyLast updated: May 10, 2026