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
| Type | Purpose | Canvas Position |
|---|---|---|
| TRIGGER | Starts an automation flow when an event fires | Entry point (no input handles) |
| ACTION | Performs an operation on an external service | Middle or end |
| LOGIC | Controls the execution path (branching, looping) | Middle |
| DATA | Transforms or persists data | Middle 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 nodesrequiredSecrets— 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 requirestimer_trigger.handlerType—BUILT_IN(in-process in the Automation Engine) orCONTAINER_PROCESS(isolated Docker container)
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
- Go to Bot Dossier → Extensions tab.
- Browse by category or search by name.
- 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
| Extension | Description |
|---|---|
| Manual Trigger | Start from the UI or API (testing, on-demand). |
| Timer Trigger | Cron or interval scheduling — required for scheduled JSON API polling workflows. |
| Webhook Trigger | HTTP webhook entry. |
Logic
| Extension | Description |
|---|---|
| If Condition | true / false branches. |
| For Each | Loop over an array — connect Loop body for per-item nodes, Completed after all iterations. See For Each. |
| Set / Get Variable | Execution context variables ({{vars.name}}). |
| Log | Live log stream. |
Network, web & data
| Extension | Description |
|---|---|
| HTTP Request | Universal REST client. |
| Web Scraper (Static HTML) | Cheerio + CSS selectors for static pages (no JavaScript). |
| JSON API Poller | Poll JSON + change detection — chain after Timer Trigger. |
| File Downloader | URL → base64; chain to Database Media or Image Processor. |
| RSS Feed | Parse RSS/Atom. |
| Transform Data | JSON/array/object transforms. |
| HTML to Markdown | Clean HTML for Discord/Markdown. |
| CSV Parser | Parse/generate CSV. |
| QR Code Generator | In-process QR images. |
AI
| Extension | Description |
|---|---|
| OpenRouter AI | General LLM completions. |
| AI Summarizer / Classifier / Translator | Preset OpenRouter workflows. |
| AI Moderation | OpenAI moderation API. |
| AI Image Generation | DALL-E, Stability, Replicate. |
| AI Text-to-Speech / Speech-to-Text | TTS 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)
| Extension | Image |
|---|---|
| PDF Generator | narakim/pdf-generator:1.0.0 |
| Document Extractor | narakim/document-extractor:1.0.0 |
| Image Processor | narakim/image-processor:1.0.0 — resize, crop, convert, compress (Sharp) |
Deferred: Web Scraper (Browser) — Playwright container for JavaScript-rendered sites.
Platform Extensions
When a platform is connected, platform-specific extensions unlock in the palette:
| Platform | Status | Extensions |
|---|---|---|
| Discord | Available | 67+ — triggers, actions, interactions, guild data |
| Slack | Available | Messages, commands, Block Kit, workflows |
| Telegram | Available | Messages, commands, moderation, callbacks |
See Platform Extensions Reference and Extension Catalog.
Common chains
- Scheduled API monitor:
timer_trigger(cron) →json_api_poller→if_condition→ notify (Discord/Slack/email) - Price scrape:
timer_trigger→web_scraper→ compare → alert - List processing:
transform_data→for_each(body port) → per-item action - Image pipeline:
ai_image_generation→image_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.
