Guides

Everything you need to set up your AI agents and connect them to your favorite platforms. Written for non-technical users — no coding required.

Getting Started

You can have your first AI agent running in under two minutes. No integrations needed — just deploy and start chatting.

  1. Create an account at tamalebot.com. Enter your email and you'll get a sign-in code — no password needed.
  2. Pick an agent preset. Each preset gives your agent a personality and set of skills:
    • Social Media Manager — creates and publishes content across your platforms.
    • Customer Support — answers questions using your knowledge base.
    • Sales Agent — qualifies leads and follows up automatically.
    • DevOps Agent — automated release engineer: pulls code, runs tests, deploys to staging then production, rolls back on failure.
    • Executive Assistant — manages email, calendar, and daily briefings.
    • Data Analyst — pulls data, generates reports, and tracks trends.
  3. Give it a name. This is just for you — pick anything you like.
  4. Leave "Managed (Claude)" selected. This uses our hosted AI model, so you don't need to bring your own API key. You can switch to your own key later if you want.
  5. Click Deploy. Your agent will be ready in about 30 seconds.
  6. Go to My Agents and click on your new agent. Start chatting with it right away to see what it can do.
You can add integrations later. Start by just talking to your agent. Get comfortable with how it works, then connect platforms when you're ready.

Use Case Guides

Each guide below shows you what the agent does, which platforms to connect, and exactly what to tell it.

📷 Social Media Manager

What it does: Creates content, publishes across platforms, tracks analytics over time, monitors competitors, manages engagement (comments and replies), and runs a content approval workflow — all on autopilot.

Which platforms to connect

Platform notes

Content approval workflow

By default, the agent does not auto-publish. Instead it follows a draft-review-publish flow:

  1. Draft — The agent creates content and saves it as a pending draft.
  2. Notify — It sends you a preview via Slack, Telegram, or email with the caption, hashtags, and media.
  3. Review — Reply with "approve", "edit [your changes]", or "reject" for each draft.
  4. Publish — Approved drafts are published immediately. Edits are updated and re-sent for approval.

Drafts older than 48 hours are flagged as stale. Once you trust the agent's quality, you can tell it to auto-publish.

What the agent can do

Capability Details
Publish content Post to Instagram (feed, Reels, carousels, Stories), Facebook, Threads, Twitter, YouTube Shorts, TikTok (draft)
Read & reply to comments Fetch comments on Instagram, Facebook, Twitter, YouTube, and Threads. Reply on all platforms including YouTube (uses OAuth credentials).
Monitor competitors Fetch profiles and recent posts from any public account on Instagram, Facebook, Twitter, YouTube, and Threads. TikTok monitoring is not available via their API.
Like, follow & retweet Like posts on Twitter and Facebook. Follow accounts on Twitter. Retweet/quote-tweet on Twitter. Instagram and TikTok do not expose these actions via their APIs.
Track analytics Pull post metrics (reach, impressions, engagement) from Instagram, Facebook, Twitter, YouTube, and Threads. TikTok analytics require a separate Research API application.
Research trends YouTube trending videos by region. Instagram hashtag search. TikTok trends via web browsing.
Generate visuals Create images with DALL-E, resize for each platform format, add watermarks (requires OpenAI key)
Schedule posts Build a content calendar with recurring posts on any cadence

Suggested scheduled tasks

Set these up in your agent's Scheduled Tasks section. The agent will run each task automatically at the time you choose.

Name Schedule What to type
Morning Trends Every day at 8 AM "Research trending topics on YouTube and Instagram hashtags that fit my business. Pick the top 3 and save them to the workspace."
Create & Draft Posts Every day at 9 AM "Based on today's trends, create 3 posts with captions, hashtags, and images. Save as drafts and send me a preview on Slack for approval."
Engagement Check Twice daily (noon & 5 PM) "Check comments and mentions on all platforms from the last 6 hours. Reply to questions helpfully. Flag complaints for my review."
Weekly Analytics Every Monday at 9 AM "Pull analytics from all platforms for the past 7 days. Compare against last week. Show me reach, engagement rate, and top-performing posts in a single report."

Example prompts you can use in chat

"Create a carousel post about 5 productivity tips for small business owners. Use a clean, modern style for the images. Save as draft for my review."
"Post an Instagram Story with this image: [paste URL]. No caption needed."
"Check what @competitor is posting on Instagram and Twitter. How does their engagement compare to mine this week?"
"Show me my analytics dashboard for the last 30 days. Which platform is performing best?"

Tips

💬 Customer Support

What it does: An AI-powered customer support agent that answers questions from your docs, handles common requests, and escalates tricky issues to your team. Deploy it as an embeddable chat widget on your website, connect it to Slack or Discord for internal support, or both.

Deployment modes

How to deploy an AI customer chat widget

Get a working AI support chat on your website in under 5 minutes:

  1. Upload your docs. Go to your TamaleBot dashboard → Knowledge Base. Upload your FAQs, product docs, pricing pages, return policies — anything your customers ask about. Supported formats: PDF, Word, text, markdown, images.
  2. Go to Deploy and select Customer Support Agent.
  3. Choose "Website Widget" (or "Both") as the deployment mode.
  4. Customize your widget — set a greeting message (e.g. "Hi! How can I help you?"), pick your brand color, and set a daily conversation cap.
  5. Add your agent name (e.g. acme-support) and click Deploy Agent.
  6. Copy the embed code shown after deployment. It looks like this:
<script src="https://tamalebot.com/widget.js" data-agent="acme-support"></script>
  1. Paste it into your website just before </body>. Works with any site — Shopify, WordPress, Squarespace, Webflow, static HTML, React, Next.js, etc.
  2. Done. A chat bubble appears in the bottom-right corner. Your customers can ask questions and get instant answers from your documentation.

Which integrations to connect

What the agent can do

Capability How it works
Answer questions from docsSearches your uploaded knowledge base (PDFs, text, markdown, images)
Look up orders & paymentsQueries Shopify orders or Stripe charges by customer name, email, or order ID
Share files with customersSends PDF guides, images, or documents directly in the chat
Escalate to humansPosts to your Slack/Discord escalation channel with full context
Track unresolved issuesLogs questions it can't answer; daily review flags gaps in your docs
Check external docsFalls back to browsing your public help center or documentation site
Multi-channelSame agent, same knowledge — accessible via widget, Slack, Discord, WhatsApp, Telegram, or Email

Scheduled tasks

Widget features

Example prompts

"Answer questions using the knowledge base. Be friendly and concise. If you can't find the answer, say 'Let me connect you with our team' and post the question to #support-escalation on Slack with the full conversation context."
"You are the support agent for Acme Corp. Use our uploaded docs for product questions. For order-related questions, look up the customer's order in Shopify. For billing questions, check Stripe. Always be helpful and never make up information."
"When a customer asks about returns, check the return-policy.pdf in the knowledge base. If their request is within the 30-day window, walk them through the process. If it's outside the window, escalate to the team."

Estimated costs

TamaleBot charges for hosting ($5/mo base) plus per-message credits. Here's what to expect at different volumes:

Monthly volume Hosting Message credits LLM cost (managed) Est. total
Starter
~300 conversations/mo
Small site, 10 chats/day
$5 ~$3 ~$2–5 $10–13/mo
Growing
~1,500 conversations/mo
Active site, 50 chats/day
$5 ~$15 ~$10–25 $30–45/mo
Busy
~6,000 conversations/mo
E-commerce, 200 chats/day
$5 ~$60 ~$40–100 $105–165/mo
High volume
~15,000 conversations/mo
Large store, 500 chats/day
$5 ~$150 ~$100–250 $255–405/mo

LLM costs depend on conversation length. Short FAQ answers cost less; multi-turn troubleshooting costs more. Using managed mode (Claude, included), costs are billed at Anthropic's rates plus a small service fee for convenience. BYOK mode (bring your own API key) means LLM costs go directly to your provider and are not included above. Estimates assume ~3 messages per conversation on average.

Compare: Intercom starts at $39/mo (1 seat) with per-resolution charges. Zendesk starts at $55/agent/mo. A TamaleBot support widget at startup volume costs about what you'd spend on a coffee subscription.

Tips

💰 Sales Agent

What it does: An AI-powered sales agent that qualifies incoming leads, answers pricing and product questions, manages your HubSpot CRM pipeline, tracks revenue in Stripe, and sends personalized follow-up emails automatically. It handles the repetitive parts of your sales process — lead qualification, data entry, follow-ups, and reporting — so you can focus on closing deals. Works standalone or with your full CRM stack.

Getting started

  1. Go to Deploy and select Sales Agent. It works immediately — no integrations required to start qualifying leads.
  2. Upload sales documents to the Knowledge Base — pricing sheets, case studies, product specs, objection-handling guides, email templates.
  3. Connect HubSpot (recommended) in Settings → Integrations for full CRM pipeline tracking. Without it, the agent saves lead data locally. See HubSpot setup guide.
  4. Connect Stripe (optional) for revenue tracking — MRR, churn, failed charges. See Stripe setup guide.
  5. Connect Slack, Telegram, or Email so you can chat with the agent on the go — ask about pipeline status, request lead summaries, or have it draft follow-up emails from your phone. Scheduled reports are saved to the agent workspace + Notion; to push them to a channel, configure the Webhook add-on.
  6. Set up scheduled tasks (see below) to automate daily lead follow-ups and weekly pipeline reviews.

Which integrations to connect

What the agent can do

Capability How it works
Answer pricing & product questionsResponds to prospect questions about pricing, features, and comparisons confidently and accurately — no “check with the team” deflections
Qualify leadsGathers prospect info conversationally (company, role, budget, timeline, pain points), scores them, and logs everything to HubSpot or local memory
Manage pipelineCreates and updates deals in HubSpot, moves them through stages, and flags stalled opportunities
Track revenuePulls payment data from Stripe — MRR, churn, failed charges, subscription changes
Send follow-upsDrafts and sends personalized emails based on lead activity, deal stage, and your uploaded templates
Research prospectsUses web browsing to look up company info, recent news, LinkedIn profiles, and funding rounds
Generate reportsBuilds pipeline summaries, revenue snapshots, and conversion rate breakdowns on demand
Search knowledge baseFinds pricing details, case studies, and objection responses from your uploaded sales docs

Scheduled tasks

Name Schedule What to type
Daily Lead Follow-up Every day at 9 AM "Check HubSpot for new leads from the last 24 hours. Qualify each one based on company size and signup source. Send a personalized follow-up email to hot and warm leads. Post a summary of all new leads to #sales on Slack."
Weekly Pipeline Review Every Monday at 9 AM "Review the entire HubSpot pipeline. Flag any deals that have been in the same stage for more than 7 days. Summarize total pipeline value, deals won and lost this week, and conversion rates by stage. Post the report to #sales on Slack."
Daily Revenue Snapshot Every day at 6 PM "Pull today's revenue data from Stripe. Show new charges, failed payments, and subscription changes. Compare to yesterday. Post a one-paragraph summary to #sales on Slack."

Example prompts

"Look at the 15 leads that came in this week. Research each company online, score them by fit, and update their HubSpot records with notes. Send a personalized intro email to the top 5."
"Show me the full pipeline breakdown: how many deals are in each stage, total value per stage, and which deals have been stuck for more than 10 days. Flag anything that needs my attention."
"Pull our Stripe data for the last 30 days. What's our MRR? Which customers churned? Which accounts grew? Draft a re-engagement email for each churned customer."
"Research Acme Corp before my call tomorrow. Find their company size, recent news, tech stack, and any mutual connections. Save a brief to the workspace and post it to Slack."

Estimated costs

TamaleBot charges for hosting ($5/mo base) plus per-message credits. Here's what to expect at different lead volumes:

Monthly volume Hosting Message credits LLM cost (managed) Est. total
Light
~50 leads/mo
Solo founder, early traction
$5 ~$2 ~$3–8 $10–15/mo
Active
~200 leads/mo
Growing team, steady inbound
$5 ~$8 ~$12–27 $25–40/mo
Growth
~500+ leads/mo
Scaling sales org, high volume
$5 ~$20 ~$35–95 $60–120/mo

LLM costs depend on task complexity. Simple lead qualification costs less; multi-step prospect research with web browsing costs more. Using managed mode (Claude, included), costs are billed at Anthropic's rates plus a small service fee. BYOK mode (bring your own API key) means LLM costs go directly to your provider and are not included above.

Compare: HubSpot Sales Hub starts at $20/seat/mo (Starter) and goes up to $150/seat/mo (Professional) for sequences, automation, and forecasting. A TamaleBot sales agent handles lead qualification, follow-ups, and reporting at a fraction of the cost.

Tips

🚀 DevOps Agent ~15 minutes

What it does: Automated release engineer. Pulls code from Git, runs tests, deploys to staging, verifies, promotes to production, and rolls back on failure. Runs the full CI/CD pipeline for you — from git push to live app with no human in between when things go well, and a fast rollback when they don't.

DevOps vs IT Sysadmin — which one do I want?
DevOps Agent ships your code — build, test, deploy, rollback. Use this if you have a repo and want an agent to run your release process.
IT Sysadmin watches your servers — disk / memory / services, incidents, fleet health. Use this if you want an agent that keeps infrastructure running.
You can deploy both side-by-side if you need both jobs done. They talk to each other via agent_message.

Setup — 15 minutes

  1. Deploy the devops preset from the Deploy page. Name it something like release-bot or ci-agent.
  2. Connect your Git repo (GitHub is the easiest path). Paste a GitHub personal access token in the GitHub integration card. Scope it to just the repos the agent deploys.
  3. Connect Slack or Telegram for deploy notifications. Slack setup →
  4. Set up SSH access to your deploy targets. Same flow as the IT agent — Tailscale if the targets are on a private network, plus an SSH Key. Install the agent's pubkey on every server it deploys to.
  5. Upload your deploy runbook to the Knowledge Base if you have one. The agent will reference it before running non-trivial deploys so it follows your team's process, not its own idea of "best practices."
  6. Set "Allowed Git Repos" on the deploy page (or agent settings). The agent refuses to deploy anything outside that list.

Try it

"Deploy the main branch of <my-repo> to staging. Run the tests first. If staging looks good, ask me before promoting to production."

Which integrations to connect

Deployment pipeline (what the agent actually does)

Every deploy follows five stages. The agent won't skip a stage even if you ask it to — that's a safety feature.

  1. Pre-deploy checks — confirms target env, fetches git, verifies CI status is green, summarizes what's changing since last deploy.
  2. Build + test — runs your project's test suite. Failures abort the deploy and report verbatim.
  3. Staging deploy — ships to staging, runs smoke tests. If smoke fails, rolls back staging and stops.
  4. Production deploy — creates a rollback point (DB dump, previous container tag), deploys, watches error rate + health checks for 60–300s.
  5. Post-deploy — summary to Slack/Telegram with commit SHA, timing, any warnings. Tags the release in git.

If anything goes sideways in stage 4, the agent auto-rolls-back within seconds and alerts you with what failed.

Suggested scheduled tasks

"Every night at 3 AM — Pull latest main, run the full test suite, post the result to #ci in Slack. Flag any test that's been flaky (failed >2 times in the last 7 days)."
"On every push to main — Run CI checks, deploy to staging automatically. Ping me on Slack if anything fails."
"Every Friday at 4 PM — Generate a deploy summary for the week: commits shipped, incidents, rollback count. Post to #engineering."

Example prompts you can type in chat

"Deploy <repo>@main to staging. Walk me through what you're going to do first."
"Promote staging to production. I already checked it looks good."
"Rollback production to the previous release. Something is broken and I don't have time to debug right now."
"Our deploy has been failing on the migration step. SSH into db-1, check what migrations are already applied, and tell me if we're in a weird state."
"Ship this hotfix branch to production with an abbreviated pipeline — I'll own the risk. Tests still have to pass though."

Use cases where this shines

Hard rules (agent refuses to violate)

Tips

🖥 IT Department ~15 minutes

What it does: An always-on AI sysadmin that SSHes into your servers, runs health checks, investigates problems, performs safe fixes, and alerts you when something needs a human. Runs in its own isolated container with a stable identity so it can reach your private infrastructure — home lab, office VLAN, colo, or hundreds of managed devices.

Start with one agent. The it-sysadmin preset gives you a complete IT agent out of the box — monitoring, investigation, and safe remediation. Once you've got that working, you can deploy additional specialized agents (security scanner, capacity analyst) as a team. This guide covers the single-agent setup.

What the agent can actually do

Here's the output from a real health check the agent ran over Tailscale into a private Ubuntu box:

"The server is healthy running Ubuntu 24.04.4 LTS with 16 hours uptime and no failed systemd services. Memory usage is moderate at 16GB/27GB used (10GB available), with a QEMU VM consuming 30% of RAM (8GB), and disk space is excellent at only 19% used (1.5TB free of 1.9TB). Load averages are normal (1.63/1.30/0.90 on a multi-core system), with CPU mostly idle at 96.7% and gnome-shell and qemu-system being the top processes."

Seven SSH commands, one coherent summary. It tried to read error logs but correctly reported "sudo needs a password" instead of faking the data — that honesty matters for real ops work.

Setup — 15 minutes

Steps marked one-time per Tailscale/server are reusable across every IT agent you deploy later.

  1. Deploy the it-sysadmin preset. On the Deploy page, pick the IT Sysadmin blueprint. Give the agent a name like homelab-ops or office-it. Deploy it and wait ~30 seconds for the container to boot.
  2. Connect Slack or Telegram (for alerts). On the agent's dashboard, open the integration card for Slack or Telegram and paste the token — same flow as any other agent. Telegram setup → / Slack setup →
  3. Connect the agent to your private network with Tailscale. The agent lives in a Cloudflare container, so it can't reach your 10.0.0.x or 192.168.x.x servers directly. Tailscale puts the agent on the same private network as your servers. Tailscale setup → (one-time per tailnet)
  4. Give the agent a stable SSH identity. Generate an ed25519 keypair in the dashboard, then install the public key on every server the agent should reach. SSH Key setup →
  5. Grant the agent passwordless sudo (optional but recommended). Without this, the agent can read most diagnostics but can't restart services, tail protected logs, or install packages. See SSH Key setup → "Give the agent sudo".
  6. Tell the agent which hosts to manage. In the agent's chat, say: "You manage these servers: web-1, db-1, build-2. User is ops. Use Tailscale MagicDNS hostnames." It'll save that to memory and use it for future requests.

Try it

From the agent chat, ask:

"SSH into web-1 and give me a health check: uptime, memory, disk, failed services, recent errors."

If it works, you're done. If SSH times out or permission-denies, use the SSH Diagnostics card on the agent's Integrations tab — enter the hostname + user, click Run, and it tells you exactly which step is broken (network, SSH auth, or sudo) with the one-line fix for each.

Maximum simplicity: Least Friction Mode

On the Deploy page there's a Least Friction Mode checkbox. Toggling it flips every security hardening off in one shot: no web sandboxing, no outbound allowlist, no exfiltration blocking, no vault guard. The agent can reach any host, run any command, fetch any URL. Recommended only for home-lab / solo-trusted setups where you own every machine the agent touches. It's reversible any time from the agent's Settings → Security Hardening section.

Which integrations to connect

Suggested scheduled tasks

"Every weekday at 8 AM — Run a morning health check on web-1, db-1, and build-2. Post a summary to Slack. If any disk is above 85%, memory above 90%, or any service is in failed state, open a Slack thread with full details."
"Every hour — Tail the last 100 lines of /var/log/syslog on db-1. If you see OOM kills, failed disk I/O, or kernel panics, alert me immediately on Telegram."
"Every Sunday at 2 AM — Run a security audit: list packages with available security updates, check for unusual SSH login attempts in /var/log/auth.log, verify fail2ban is running. Summarize findings in one Slack message."
"Every Monday at 9 AM — Check disk growth trends for the past 7 days. Project when each disk will hit 90%. Flag anything projected to hit the limit within 30 days."

Example prompts you can type in chat

"Check all my servers right now. Anything urgent?"
"web-2 feels slow. SSH in, find what's using CPU and memory, and tell me what's going on."
"Install the latest security patches on db-1. Reboot only if needed and tell me before you do."
"Someone is hitting my SSH port. Check auth.log on all servers, identify the IPs, and show me a summary. Don't block anything yet — I'll decide."
"Our Docker containers keep restarting on build-2. Look at docker logs, figure out why, and if it's a known fix, apply it. Tell me what you did."
"Give me a post-mortem of what happened on db-1 yesterday between 2 and 4 PM. Check system logs, service logs, and resource graphs."

Use cases — where this actually shines

Safety: what the agent will and won't do

The it-sysadmin preset ships with an SRE-flavored system prompt that enforces safe defaults. The agent:

You can harden further by setting Allowed SSH Hosts on the deploy page to restrict the agent to a specific hostname allowlist, or by writing a custom security policy to block specific command patterns.

Tips

Advanced: the 5-agent IT Department (multi-agent)

For larger environments, you can split the work across specialized agents that talk to each other. The single it-sysadmin agent handles 95% of use cases — deploy the team only if you need all five roles separately:

Deploy each from its own preset, configure them with the same Tailscale key + SSH key, and give each one its role in the system prompt. The agents can message each other via their assigned channels.

📅 Executive Assistant ~15 minutes

What it does: Your AI chief of staff. Reads and triages your inbox, watches your calendar, drafts replies and scheduling requests, keeps your task list in Notion up to date, and delivers a morning briefing so your day starts with context instead of chaos. Works across Gmail, Google Calendar, Google Docs, Google Sheets, Google Drive, and Notion.

What the agent can actually do

Setup — 15 minutes

  1. Deploy the Executive Assistant preset from the Deploy page.
  2. Connect Google Workspace (Gmail + Calendar + Drive + Docs + Sheets) — one OAuth flow covers all five. Google Workspace setup →
  3. Connect Notion (optional but recommended) for task tracking. Notion setup →
  4. Connect Slack or Telegram so you can chat with the assistant from your phone ("what's on my calendar?" "draft a reply to the thread with Sarah").
  5. Upload context to the Knowledge Base — your standard email signatures, company bios, meeting-prep templates, people you want auto-researched before a first meeting, etc.
  6. Set up the morning briefing (see Suggested scheduled tasks below) so it runs automatically before your first meeting.

Which integrations to connect

Suggested scheduled tasks

"Every weekday at 7 AM — Check my email and calendar. Send me a morning briefing: today's meetings with key context, urgent unread emails (top 5 with 1-sentence summaries), my top 3 priorities from Notion, and any weather I should know about if I'm going out. Keep it under 200 words."
"45 minutes before every meeting — Gather relevant emails, Drive docs, and past meeting notes for the upcoming meeting. Draft a meeting-prep summary and send it to me."
"Every weekday at 6 PM — End-of-day summary: what I finished, what's still in progress, anything blocked or overdue in Notion. Update Notion task statuses based on what I did today. Send the summary via Slack."
"Every Sunday at 4 PM — Preview the upcoming week: all meetings with any needed prep, deadlines, travel, anything unusual. Flag conflicts I should resolve before Monday."

Example prompts you can type in chat

"Go through my unread emails. Draft replies for the ones that need a response. Show me the drafts before sending."
"Block off 2 hours on my calendar tomorrow morning for focused work. Label it 'Deep Work — No Meetings'."
"Find an hour this week when I'm free and Sarah is free (based on her shared calendar). Draft a calendar invite for a 1:1."
"I'm meeting with @Acme tomorrow. Pull every email thread we've had with them in the last 90 days, any Drive docs mentioning them, and the Notion meeting notes from our last call. Summarize what we discussed and what's open."
"What did I agree to in last week's Stripe contract? Check the signed doc in Drive."
"Add 'review Q3 forecast' to my Notion task list, due Friday."

Tips

📊 Data Analyst

What it does: Pulls data from your business tools, generates reports, tracks key metrics (KPIs), and posts summaries where your team can see them.

Which integrations to connect

Suggested scheduled tasks

"Every weekday at 8 AM — Pull yesterday's metrics from every connected source (Stripe revenue, Shopify orders, HubSpot pipeline movements). Calculate day-over-day and week-over-week changes. Flag any metric moving >10%. Append a row to the 'Daily Metrics' Google Sheet and save the summary to Notion."
"Every Monday at 9 AM — Pull last week's Stripe revenue. Break down by product, plan, and new-vs-returning customer. Identify top 3 growth drivers and top 3 risks. Save the report to the Weekly Reports Notion page."
"First of every month at 9 AM — Generate a monthly business review: MRR, ARR, growth rate, churn, LTV, pipeline conversion. Compare month-over-month. Save to Notion, and append the headline numbers to the MRR tracker sheet."

Example prompts

"Compare this month's Shopify sales to last month. Which products are growing the fastest? Which ones are declining?"
"Calculate our customer acquisition cost from Stripe data. How much revenue does the average customer generate in their first 3 months?"
"What's our churn rate for the last 90 days? Break it down by plan."
"Which HubSpot deals have been in 'Negotiation' for more than 14 days? Are any of them over $10k?"
"Append today's revenue numbers to my 'Daily KPIs' Google Sheet."

How to get reports delivered to Slack

The agent itself doesn't push messages to Slack channels. For scheduled-report delivery, use the Webhook add-on:

  1. Create an incoming webhook in your Slack workspace pointed at the channel you want (e.g. #metrics).
  2. In the agent's Settings → Webhook field, paste the webhook URL and check the schedule.executed event.
  3. When scheduled tasks complete, their output gets posted to that Slack channel automatically.

For ad-hoc questions ("what was revenue last week?"), the agent answers directly in whatever channel you message it through — Slack DM, Telegram, or dashboard chat.

Tips

📈 Crypto Trading Agent

What it does: An autonomous Solana trading agent that monitors markets, executes token swaps via Jupiter aggregator, manages positions with stop-losses and take-profits, and enforces risk controls — all without per-trade approval.

⚠️ Important — read before you start:
This agent executes real trades with real money on the Solana blockchain. It is not a simulator. Cryptocurrency trading is extremely volatile and you can lose some or all of your funds. TamaleBot provides the infrastructure only — it is not a financial advisor, does not provide investment advice, and makes no guarantees about returns. You are 100% responsible for any gains or losses. Only use funds you can afford to lose entirely.

What you'll need before you start

  1. A dedicated Solana wallet. Create a brand new wallet using Phantom, Solflare, or Backpack. This wallet is only for the trading agent. Never use your main personal wallet.
  2. SOL for trading. Send SOL from an exchange or your main wallet to the new dedicated wallet. Only send an amount you are comfortable losing entirely.
  3. The wallet's private key. You will need the base58-encoded private key from your dedicated wallet. In Phantom: Settings → Security → Export Private Key. In Solflare: Settings → Export Private Key.

That's it — no API keys, no developer accounts. The agent uses free public APIs (CoinGecko, Jupiter, DexScreener) for all market data and trade execution.

Which platforms to connect

Why the agent needs your private key

To execute trades on your behalf, the agent must sign transactions with your wallet's private key. This is how all automated trading bots work (3Commas, Pionex, Hummingbot, etc.) — there is no way to trade programmatically on Solana without the private key.

How TamaleBot protects it:
  • Your key is stored in the agent's encrypted vault (AES-256-GCM) with per-agent key derivation.
  • The key is never written to logs, files, chat messages, or API responses.
  • Only your agent's isolated container can access it — no other agent or user can read it.
  • The agent loads it into memory only at the moment of signing, then discards it.
⚠️ Hot wallet risk: Because the key is stored on a server (not a hardware wallet), it is a hot wallet. If TamaleBot's infrastructure were ever compromised, an attacker could potentially access your key. This is an inherent risk of all automated trading services. Mitigate this by:
  • Using a dedicated wallet with only trading funds — never your main wallet.
  • Setting a spending cap so the wallet never holds more than you intend.
  • Withdrawing profits regularly to your personal wallet.

How to set it up

  1. On the Deploy page, select the "Crypto Trading Agent" preset.
  2. Deploy the agent. You don't need to configure anything else on the deploy page.
  3. Go to My Agents and open the agent chat. The agent will walk you through the full setup:
    • Security disclosure and risk acknowledgment
    • Storing your private key in the encrypted vault
    • Setting a withdrawal whitelist (the only address the agent can send funds to outside of trading)
    • Setting a spending cap and risk parameters (position size, stop-loss, daily loss limit, circuit breaker)
    • Describing your trading approach in plain language (what tokens to focus on, when to enter and exit, whether to copy-trade another wallet, etc.). The agent saves this to its trading config and follows it when evaluating opportunities.
  4. Fund your dedicated wallet with SOL and tell the agent you're ready.

Built-in safety controls

Suggested scheduled tasks

Name Schedule What it does
Market Scan & Trade Every 15 minutes Checks positions, executes stop-losses and take-profits, scans for new opportunities, and executes trades if signals are strong.
Hourly Risk Check Every hour Calculates drawdown from peak. Triggers circuit breaker if threshold exceeded.
Daily P&L Report Every day at 8 PM Full daily report: trades executed, fees, net return, portfolio snapshot.

Example prompts

"Show me my current portfolio — balances, total value, and P&L for each position."
"What does the market look like right now? Check Fear & Greed index, SOL price trend, and any trending tokens."
"Withdraw all profits to my main wallet. Keep $200 worth of SOL for continued trading."
⚠️ Final disclaimer: Cryptocurrency markets operate 24/7 and can move dramatically in minutes. Past performance does not predict future results. AI-generated trading decisions can be wrong. Smart contract bugs, network outages, exchange delistings, and regulatory changes can cause sudden losses. TamaleBot is infrastructure — not a hedge fund, not a financial advisor, not a fiduciary. Do your own research. Never trade with money you cannot afford to lose. If you are unsure whether automated trading is appropriate for you, consult a licensed financial advisor.

🎲 Polymarket Trading Agent ~20 minutes

What it does: Autonomous prediction-market trading agent on Polymarket (Polygon network). Detects arbitrage opportunities, posts market-making limit orders, and uses LLM-driven sentiment analysis to price events. Generates or imports a dedicated Polygon wallet, signs transactions via the CLOB API, and enforces hard risk limits on every trade.

⚠️ Read before you start:
This agent executes real trades with real money on Polymarket. Prediction market outcomes are binary (0% or 100% on resolution) — positions can and do go to zero. Polymarket charges a 2% fee on winning positions. Regulatory status varies by jurisdiction — check your local rules before trading. TamaleBot provides infrastructure only — not a financial advisor, not regulated, no guarantees. You bear 100% of the risk. Start with an amount you can afford to lose entirely.

What you'll need before you start

  1. USDC on Polygon for trading capital. Start with $10–50 while you confirm the setup works. Buy USDC on Coinbase / Kraken / Binance, then withdraw to Polygon directly. Do not send mainnet Ethereum USDC — it's a different token on a different network.
  2. A small amount of MATIC ($1–2 worth) for gas fees on Polygon. Most exchanges let you withdraw MATIC to the Polygon network directly.
  3. That's it. No API keys or developer accounts. The agent generates its own wallet, derives Polymarket API credentials via EIP-712 signature, and uses free public data (Gamma, CLOB, Data APIs) for market lookups.

Which platforms to connect

How it protects your funds

Dedicated hot wallet model (same as the Crypto Trading Agent):
  • The agent generates or imports a wallet used only for Polymarket trading — keep your main crypto wallet untouched.
  • Private key stored encrypted (AES-256-GCM) in the agent's per-agent vault.
  • Never written to logs, chat messages, or API responses.
  • Only the agent's isolated container can decrypt the key; it's loaded into memory at signing time and discarded.
  • Because the key is stored online, this is a hot wallet. Only deposit what you can afford to lose. Withdraw profits regularly.

How to set it up

  1. On the Deploy page, select the "Polymarket Trader" preset.
  2. Deploy the agent. You don't need to configure anything on the deploy page.
  3. Go to My Agents and open the agent chat. The agent walks you through the full flow automatically:
    • Security disclosure and acknowledgment.
    • Wallet setup — choose Generate new (recommended) or Import existing (paste a hex private key of a dedicated wallet).
    • Deposit instructions for your new wallet address. The agent tells you exactly what to send (USDC + MATIC on Polygon).
    • Token approvals — agent runs a one-time on-chain approval for the Polymarket exchange contract.
    • API credential derivation — agent signs an EIP-712 message to get HMAC credentials (saved to workspace for reuse).
    • Strategy selection — arb, mm, both, or manual. See strategies below.
    • Risk parameters (max bet size, daily loss limit, max concurrent positions, hourly trade limit).
    • If you picked arb or mm, the agent schedules a cron job to run the strategy automatically every minute.
  4. Fund your trading wallet (USDC + MATIC on Polygon) and tell the agent you're ready.

The four strategies

  1. Arbitrage (automated, zero-LLM) — detects when YES + NO ask prices sum to less than $1.00 minus fees. Buys both sides, guaranteed profit on resolution regardless of outcome. Executed by the zero-LLM polymarket-arb.mjs script on a cron. Typical profit: 0.5–3% per trade, speed-dependent.
  2. Market Making (automated, zero-LLM) — posts bid/ask limit orders around the midpoint price, captures the spread when both sides fill. Same cron-driven script in "mm" mode. Typical return: 1–3% monthly with high win rate, requires idle capital.
  3. Sentiment / Information Edge (LLM-driven) — the agent analyzes news, social feeds, and data to estimate event probabilities, compares its estimate to the current market price, and recommends trades where the edge is >5%. Uses fractional Kelly criterion for sizing (25–50% of full Kelly to reduce variance). You approve or auto-execute based on your confidence threshold.
  4. Manual research — ask the agent about specific markets, events, or categories. It provides probability estimates and recommendations. You decide whether to trade.

Built-in safety controls

Suggested scheduled tasks

Name Schedule What it does
Arb + MM loop Every minute Runs polymarket-arb.mjs to scan for arbitrage and refresh market-making orders. Zero-LLM — no token cost.
Daily P&L report Every day at 8 PM Check positions, calculate daily P&L (realized + unrealized), summarize trades executed, fees paid. Send via Telegram / Slack.
Market scan Every 30 minutes Browse trending Polymarket markets. Analyze odds vs. news sentiment. Flag any market with >5% estimated edge. Recommend trades with Kelly sizing.
Hourly risk check Every hour Calculate current drawdown from portfolio peak. If drawdown exceeds the circuit breaker threshold, halt trading and alert you.

Example prompts

"Show me my current positions and unrealized P&L."
"What's the most active sports market right now? Give me your probability estimate vs. the market price."
"Scan all election markets with >$50K liquidity. Any arbitrage opportunities?"
"Pause automated trading for 24 hours — I want to manually review markets today."
"Withdraw $200 USDC to my main wallet: <polygon-address>."

Which strategy should I start with?

Troubleshooting

Platform Setup Guides

Step-by-step instructions for connecting each platform to your TamaleBot agent. Each guide tells you exactly what to click and where to paste.

Where to enter your tokens: You can add tokens and API keys in three places — on the Deploy page when creating a new agent, from your agent's Settings tab for manual API keys, or from the Integrations tab for guided setup wizards. Go to My Agents → your agent to add, change, or remove integrations at any time. You don't need all your keys ready before you deploy.

𝕏 Twitter / X

Option A: X Simple Connect (Recommended) ~1 minute

Easiest way to connect. X Simple Connect is a $3/mo add-on that lets you link your X account with a guided wizard. TamaleBot handles all API costs and key management — no developer account needed. The wizard walks you through connecting, writing a content strategy, and picking a posting schedule.
  1. Go to My Agents → your agent → Integrations tab.
  2. In the X (Twitter) card, click "Set Up" to open the setup wizard.

Step 1 — Connect your X account

  1. Click "Connect X Account". A popup opens with the X authorization screen.
  2. Log in to X (if needed) and click "Authorize app".
  3. The popup closes automatically and the wizard shows your connected username (e.g. @YourHandle).

Step 2 — Define your content strategy

Tell the agent what to post about. You can pick a preset or write your own strategy:

The strategy you write here becomes part of the agent's system prompt and is included in every scheduled post task, so the more detail you provide (tone, audience, topics to avoid), the better the results.

Step 3 — Pick a posting schedule

Choose how often the agent should post:

Option Schedule
DailyOnce per day (2pm UTC)
Twice Daily9am + 5pm UTC
WeekdaysMon–Fri at 2pm UTC
WeeklyMonday at 2pm UTC
CustomEnter any cron expression (e.g. 0 16 * * * for 4pm UTC / 9am PDT)

Click "Finish Setup" and you're done. The wizard creates a scheduled task and updates the agent's system prompt automatically.

After setup: Your Integrations tab shows a green "Connected as @YourHandle" card with the schedule time. You can disconnect at any time with the "Disconnect" button, which also removes the scheduled posting task.
What's included: The $3/mo fee covers all X API usage (posting, reading mentions, replies). You don't need to create a developer account, manage API keys, add billing on X, or worry about rate limits. TamaleBot manages everything for you.

Option B: Manual Setup (Advanced) ~5 minutes

Choose this if you want full control over your own X developer account and API keys.

What you'll need

API Key API Key Secret Access Token Access Token Secret

Step 1 — Open the Developer Console

The API keys are not in your regular X/Twitter settings. You need the separate Developer Console.

  1. Go to developer.x.com and sign in with your X account.
  2. If this is your first time, you'll see a signup form. Enter an Account Name (e.g. "TamaleBot" or your brand name).
What you'll see
X Developer Console → Developer Program → "Tap Into What's Happening"

Account Name: YourBotName

Step 2 — Describe your use case

X requires a short description of how you'll use the API. Here's what to write:

"I'm building an AI agent that posts automated updates about my platform's activity, shares AI industry news commentary, and responds to mentions and replies from my community. Posts are generated by an AI agent and published via the v2 tweets endpoint. I do not aggregate or resell any X data."
  1. Paste the description above (or write your own) into the use case text box.
  2. Check the box that says "You understand that you may not resell anything you receive via the X APIs."
  3. Click Submit. Approval is usually instant for the free tier.

Step 3 — Get your API keys

After approval you'll land on the Developer Dashboard. It shows your usage, credits, and billing.

Developer Dashboard
Usage (last 30 days)
$0.00
Credit remaining
$0.00
  1. Click "Apps" in the left sidebar.
  2. You should see a default app. Click on it to open its settings. If there is no app, click "Create App" and give it a name.
  3. Go to the "Keys and tokens" tab inside your app.
  4. Under Consumer Keys, click "Regenerate" to get your API Key and API Key Secret. Copy both immediately — the secret is only shown once.
  5. Under Authentication Tokens, click "Generate" to create your Access Token and Access Token Secret. Copy both immediately.
Keys and tokens tab
Consumer Keys
API Key: xxxxxxxxxxxxxxx
API Key Secret: xxxxxxxxxxxxxxxxxxxxxxxxx
Authentication Tokens
Access Token: xxxxxxxxxxxxxxx
Access Token Secret: xxxxxxxxxxxxxxxxxxxxxxxxx

Step 4 — Set permissions to Read and Write

By default, your app may only have Read permission. You need Read and Write to post tweets.

  1. In your app settings, go to "User authentication settings" and click "Set up" or "Edit".
  2. Under App permissions, select "Read and write".
  3. For Type of App, select "Web App, Automated App or Bot".
  4. Fill in the required Callback URL and Website URL. You can use your own website or https://tamalebot.com as a placeholder.
  5. Click Save.
Important: After changing permissions, you must regenerate your Access Token and Access Token Secret. The old tokens still have the old permissions. Go back to Keys and tokens and click "Regenerate" under Authentication Tokens.

Step 5 — Add credits (pay-per-use)

X's API is pay-per-use. Posting is very cheap — about $0.01 per 10 tweets — but you need a positive credit balance or API calls will fail with a 403 Forbidden error.

  1. In the Developer Console, click "Billing" in the left sidebar.
  2. Click "Credits" and add a small amount. Even $5 will last months at typical posting volumes.
  3. Optionally, enable auto-recharge so your bot never runs out mid-post.

Step 6 — Paste into TamaleBot

  1. Go to your TamaleBot deploy page (during initial setup) or your agent's Settings tab (for existing agents).
  2. Paste all 4 keys into the Twitter/X fields:
    API Key API Key Secret Access Token Access Token Secret
  3. Click Save. Your agent can now post, reply, and read mentions on X.
Free tier limits: The X API free tier allows 1,500 tweets per month and 50 requests per 24 hours for reading. This is more than enough for 3 posts per day (~90/month) plus mention checking. If you need higher limits, upgrade to the Basic plan ($100/month) on the X Developer Console.

Troubleshooting

Error Cause Fix
403 Forbidden Zero credit balance or Read-only permissions Add credits in Billing, and verify permissions are "Read and Write"
401 Unauthorized Invalid or expired tokens Regenerate all 4 keys in the Developer Console
429 Too Many Requests Rate limit hit The agent retries automatically. Space scheduled tasks at least 30 minutes apart.
Tweets post but with wrong account Access Token belongs to a different X account Regenerate Access Token while logged into the correct X account

📸 Instagram ~10 minutes

What you'll need

Access Token User ID
  1. You need a Facebook account and an Instagram Professional account (Business or Creator). If your Instagram is personal, open the Instagram app, go to Settings → Account → Switch to Professional Account and follow the prompts.
  2. Go to developers.facebook.com and click "My Apps" in the top right, then click "Create App".
  3. Choose the "Business" type. Give it any name you like, such as "My Social Bot".
  4. On the app dashboard, find "Instagram Graph API" and click "Set Up".
  5. Go to Tools → Graph API Explorer.
  6. In the top dropdown, select your app.
  7. Click "Generate Access Token". Log in with Facebook and grant the permissions it asks for.
  8. Your User ID and Access Token will appear on screen. Copy both of them.
  9. Paste the Access Token and User ID into TamaleBot — either in the Integrations tab (click the Instagram card) or on the Deploy page in the Instagram fields.
Note: The token generated here expires in 1 hour. For a token that lasts 60 days, click "Generate Long-Lived Token" in the Access Token tool on the same page. For a permanent token that never expires, follow the same exchange process described in the Facebook guide above — use your Instagram app's App ID and App Secret to exchange for a long-lived token, then request /me/accounts to get a non-expiring page token.

🎬 TikTok ~15 minutes

What you'll need

Access Token
  1. Go to developers.tiktok.com and create a developer account if you don't have one.
  2. Click "Manage Apps" in the top menu, then click "Create App".
  3. Under "Add Products", enable the "Content Posting API".
  4. Fill out the app details and submit for review. TikTok typically reviews apps within a few business days. To avoid rejection:
    • Write a clear app description (e.g. "AI-powered social media assistant that creates and publishes content for my business").
    • Add an app icon and a privacy policy URL — TikTok requires one.
    • Make sure your TikTok account is a Business account, not a personal one.
  5. Once your app is approved, go to your app's settings page and find the Access Token.
  6. Paste the Access Token into TamaleBot — either in the Integrations tab (click the TikTok card) or on the Deploy page in the TikTok field.
Note: TikTok requires app review before you can post content. While you wait for approval, you can set up all your other integrations.

▶️ YouTube ~10 minutes

What you'll need

API Key Client ID Client Secret Refresh Token
  1. Go to console.cloud.google.com and sign in with your Google account.
  2. Create a new project (or select an existing one). Name it anything you like, such as "My Social Bot".
  3. Go to "APIs & Services" → "Library" in the left sidebar.
  4. Search for "YouTube Data API v3" and click "Enable".
  5. Go to "APIs & Services" → "Credentials".
  6. Click "Create Credentials" → "API Key". Copy the API key that appears.
  7. Click "Create Credentials" → "OAuth Client ID".
  8. If prompted to configure the OAuth consent screen, choose "External", add your email address, and save.
  9. For Application Type, choose "Web application".
  10. Under Authorized redirect URIs, add: https://developers.google.com/oauthplayground
  11. Copy the Client ID and Client Secret that appear.
  12. Go to developers.google.com/oauthplayground.
  13. Click the gear icon (Settings) in the top right. Check "Use your own OAuth credentials" and paste your Client ID and Client Secret.
  14. In the left panel, find "YouTube Data API v3", select all the scopes listed, then click "Authorize APIs".
  15. Click "Exchange authorization code for tokens".
  16. Copy the Refresh Token from the response.
  17. Paste the API Key and Refresh Token into TamaleBot — either in the Integrations tab (click the YouTube card) or on the Deploy page where you can also enter the Client ID and Client Secret. All four are required for uploading Shorts.

🔴 Facebook ~10 minutes

What you'll need

Page Token Page ID
  1. Go to developers.facebook.com, click "My Apps", and select your app (or create one if you haven't already).
  2. Go to Settings → Basic in the left sidebar. Note your App ID and App Secret — you'll need them in a later step.
  3. Go to Tools → Graph API Explorer.
  4. In the "User or Page" dropdown at the top, make sure "User Token" is selected (not your Page).
  5. Under "Permissions", add: pages_manage_posts, pages_read_engagement, and pages_show_list.
  6. Click "Generate Access Token" and approve the permissions it asks for. This gives you a short-lived User Token (expires in ~1 hour).
  7. Now exchange it for a long-lived User Token. In the Graph API Explorer, paste this into the query field and click Submit:
    GET /oauth/access_token?grant_type=fb_exchange_token&client_id={YOUR_APP_ID}&client_secret={YOUR_APP_SECRET}&fb_exchange_token={SHORT_LIVED_TOKEN}
    Replace the values in curly braces with your App ID, App Secret, and the token from the previous step. Copy the access_token from the response.
  8. Finally, get your permanent Page Token. Paste this into the query field and click Submit:
    GET /me/accounts?access_token={LONG_LIVED_USER_TOKEN}
    Find your Page in the response. The access_token next to it is your permanent Page Token. Copy it.
  9. Your Page ID is also in that same response, or you can find it in the URL when you visit your Facebook Page. Copy it.
  10. Paste the Page Token and Page ID into TamaleBot — either in the Integrations tab (click the Facebook card) or on the Deploy page in the Facebook fields.
Note: The Page Token from step 8 does not expire — it will keep working until you change your password or remove the app's permissions.

💬 Threads ~5 minutes

What you'll need

Access Token User ID
  1. If you set up Instagram above, you already have a Meta Developer app. If not, follow the first three Instagram steps to create one.
  2. On your app dashboard, find "Threads API" and click "Set Up".
  3. Go to Tools → Graph API Explorer.
  4. Generate a token with Threads permissions selected.
  5. Your User ID is the same as your Instagram User ID. Copy it.
  6. Paste the Access Token and User ID into TamaleBot — either in the Integrations tab (click the Threads card) or on the Deploy page in the Threads fields.
Note: Like Instagram, the token from Graph API Explorer expires in 1 hour. Click "Generate Long-Lived Token" for a 60-day token, or follow the exchange steps in the Facebook guide for a permanent token.

🗨️ Slack ~5 minutes

What you'll need

Bot Token (starts with xoxb-) App Token (starts with xapp-)
  1. Go to api.slack.com/apps and click "Create New App".
  2. Choose "From scratch". Name it something like "TamaleBot" and select your workspace.
  3. Go to "OAuth & Permissions" in the left sidebar.
  4. Scroll down to "Bot Token Scopes" and add these scopes: chat:write, app_mentions:read, im:history, channels:history.
  5. Scroll back up and click "Install to Workspace", then click "Allow".
  6. Copy the "Bot User OAuth Token" (it starts with xoxb-). This is your Bot Token.
  7. Now enable Socket Mode: go to "Socket Mode" in the left sidebar and toggle it on.
  8. Slack will ask you to create an App-Level Token. Give it a name (e.g. "tamalebot-socket"), add the connections:write scope, and click "Generate".
  9. Copy the token that appears (it starts with xapp-). This is your App Token.
  10. Go to "Event Subscriptions" in the left sidebar and toggle it on. Under "Subscribe to bot events", add: app_mention and message.im.
  11. Paste both tokens into TamaleBot — either in the Integrations tab (click the Slack card) or on the Deploy page in the Slack fields.

🎮 Discord ~5 minutes

What you'll need

Bot Token
  1. Go to discord.com/developers/applications and click "New Application".
  2. Name it something like "TamaleBot" and click Create.
  3. Go to "Bot" in the left sidebar.
  4. Click "Reset Token" and copy the token that appears.
  5. Still on the Bot page, scroll down to "Privileged Gateway Intents" and enable "Message Content Intent".
  6. Go to "OAuth2" → "URL Generator" in the left sidebar.
  7. Check the "bot" scope. In the permissions that appear below, check "Send Messages" and "Read Messages/View Channels".
  8. Copy the generated URL at the bottom of the page. Open it in your browser and invite the bot to your server.
  9. Paste the bot token into TamaleBot — either in the Integrations tab (click the Discord card) or on the Deploy page in the Discord field.

✈️ Telegram ~2 minutes

What you'll need

Bot Token
  1. Open Telegram and search for @BotFather.
  2. Send the command /newbot.
  3. Choose a display name and a username for your bot (the username must end in "bot").
  4. BotFather will reply with a token. Copy it.
  5. Paste the token into TamaleBot — either in the Integrations tab (click the Telegram card) or on the Deploy page in the Telegram field.
That's it — Telegram is the easiest platform to set up. You can manage it anytime from My Agents → your agent → Integrations.

✉️ Email (Gmail example) ~5 minutes

What you'll need

IMAP Host IMAP User IMAP Password SMTP Host
  1. Go to myaccount.google.com and click "Security" in the left sidebar.
  2. Make sure 2-Step Verification is turned on. If it's not, enable it first.
  3. Go to myaccount.google.com/apppasswords.
  4. Create an app password — select "Mail" and your device type.
  5. Google will show a 16-character password. Copy it. This is your IMAP/SMTP password.
  6. In TamaleBot, go to Integrations tab (click the Email card) or the Deploy page, and fill in:
    • IMAP Host: imap.gmail.com
    • Email / Username: your full email address (e.g. you@gmail.com)
    • App Password: the 16-character app password you just copied
    • SMTP Host: smtp.gmail.com
Other email providers: For Outlook, Yahoo, or other providers, the process is the same — use their IMAP and SMTP server addresses and create an app password from their security settings. You can configure any provider from the Integrations tab.

🤖 OpenAI (for image generation) ~2 minutes

What you'll need

API Key
  1. Go to platform.openai.com and sign in (or create a free account).
  2. Click your profile icon in the top right, then click "API Keys" (or go directly to platform.openai.com/api-keys).
  3. Click "Create new secret key". Give it any name you like.
  4. Copy the key (it starts with sk-). You won't be able to see it again after closing this dialog.
  5. Paste it into TamaleBot's deploy page in the OpenAI field.
Note: OpenAI charges separately for image generation. Most users spend between $1 and $5 per month depending on usage.

📝 Notion ~3 minutes

What you'll need

API Key
  1. Go to notion.so/my-integrations and sign in.
  2. Click "New Integration".
  3. Name it something like "TamaleBot" and select your workspace.
  4. Click "Submit".
  5. Copy the "Internal Integration Secret" (it starts with ntn_).
  6. Paste it into TamaleBot's deploy page in the Notion field.
  7. Important: In Notion, open the database or page you want the bot to access. Click the "..." menu in the top right, go to "Connections", find your integration name, and add it. The bot can only see pages you explicitly share with it.

🛒 Shopify ~5 minutes

What you'll need

Access Token Store Domain
  1. Go to your Shopify Admin at yourstorename.myshopify.com/admin.
  2. Go to Settings → Apps and Sales Channels → Develop Apps.
  3. Click "Create an App" and name it anything you like.
  4. Click "Configure Admin API scopes". Enable read/write access for Products, Orders, and Customers.
  5. Click "Install App" and confirm when prompted.
  6. Copy the "Admin API Access Token" (it starts with shpat_).
  7. Your store domain is: yourstorename.myshopify.com
  8. Paste both into your TamaleBot dashboard → Settings → Integrations → Shopify fields. You can also enter them during deployment on the deploy page.

💳 Stripe ~2 minutes

What you'll need

Secret Key
  1. Go to dashboard.stripe.com and sign in.
  2. Click "Developers" in the sidebar (or top right corner).
  3. Go to "API Keys".
  4. Copy the "Secret key" (it starts with sk_live_ or sk_test_).
  5. Paste it into your TamaleBot dashboard → Settings → Integrations → Stripe field. You can also enter it during deployment on the deploy page.
Tip: Use your test key (sk_test_) first to try things out safely before switching to your live key.

📈 HubSpot ~5 minutes

What you'll need

Access Token
  1. Go to app.hubspot.com and click the gear icon (Settings) in the top right.
  2. Go to Integrations → Private Apps in the left sidebar.
  3. Click "Create a Private App".
  4. Name it something like "TamaleBot".
  5. Go to the "Scopes" tab. Enable these scopes: crm.objects.contacts (read/write) and crm.objects.deals (read/write).
  6. Click "Create App" and confirm.
  7. Copy the Access Token (it starts with pat-).
  8. Paste it into your TamaleBot dashboard → Settings → Integrations → HubSpot field. You can also enter it during deployment on the deploy page.

🌏 Google Workspace ~15 minutes

This covers Gmail, Google Drive, Google Calendar, Google Docs, and Google Sheets — all in one setup.

What you'll need

Client ID Client Secret Refresh Token
  1. Go to console.cloud.google.com and sign in.
  2. Create a new project (or select an existing one).
  3. Go to "APIs & Services" → "Library" in the left sidebar.
  4. Search for and enable each of these APIs: Gmail API, Google Drive API, Google Calendar API, Google Docs API, and Google Sheets API.
  5. Go to "APIs & Services" → "OAuth consent screen".
  6. Choose "External", fill in your app name and email address, and save.
  7. Go to "APIs & Services" → "Credentials".
  8. Click "Create Credentials" → "OAuth Client ID".
  9. For Application Type, choose "Web application".
  10. Under Authorized redirect URIs, add: https://developers.google.com/oauthplayground
  11. Copy the Client ID and Client Secret that appear.
  12. Go to developers.google.com/oauthplayground.
  13. Click the gear icon in the top right. Check "Use your own OAuth credentials" and paste your Client ID and Client Secret.
  14. In the left panel, select the scopes for Gmail, Drive, Calendar, Docs, and Sheets.
  15. Click "Authorize APIs", sign in with your Google account, and grant access.
  16. Click "Exchange authorization code for tokens".
  17. Copy the Refresh Token from the response.
  18. Paste the Client ID, Client Secret, and Refresh Token into TamaleBot's deploy page in the Google Workspace fields.

🌐 Tailscale (private network access) ~5 minutes

Tailscale puts your TamaleBot agent on the same private network as your servers, so it can SSH into your 192.168.x.x, 10.0.0.x, home-lab, office VLAN, or cloud-VPC machines. Required for any IT or DevOps agent managing infrastructure that isn't on the public internet.

Who pays? You pay Tailscale directly for your own tailnet. TamaleBot doesn't add anything to your bill. The free Personal plan covers 3 users and 100 devices — plenty for home labs and small teams. Each agent counts as one device on your tailnet.

What you'll need

Tailscale account Auth key (tskey-auth-...)
  1. Sign up for Tailscale at login.tailscale.com/start. Free tier is fine to start.
  2. Install Tailscale on your servers (the ones your agent will manage). One-liner from tailscale.com/download for each OS. Run sudo tailscale up on each server — they'll show up in your Tailscale admin panel. (one-time per server)
  3. Create an auth key for the agent. Go to tailscale.com/admin/settings/keys and click "Generate auth key". Check these two options:
    • Reusable — so if the agent container restarts, it can reconnect.
    • Ephemeral — so old agent devices auto-cleanup when they disconnect. Stops "ghost device" accumulation.
  4. Copy the key (starts with tskey-auth-).
  5. Paste it into TamaleBot. Open your agent's dashboard → IntegrationsTailscale card. Paste the key, click Save.
  6. The agent will join your tailnet on its next boot. You'll see a device named tb-<your-agent-name> appear at tailscale.com/admin/machines within 10–30 seconds.

Verify it worked

In the agent's chat window, ask:

"Run tailscale status and show me the output."

You should see a list of every device on your tailnet, including the agent itself. If the list is empty or says "Logged out", check the Tailscale logs:

"Show me the last 30 lines of /tmp/logs/tailscaled.log."

Security model

Advanced: Tailscale SSH for fleets

If you're managing 20+ servers, skip per-server SSH key installs. Enable Tailscale SSH on each server and use one ACL in Tailscale admin to grant the agent access everywhere at once.

  1. On each managed server (one-time): sudo tailscale up --ssh --accept-routes
  2. In your Tailscale admin ACL, add:
    "tagOwners": {
      "tag:tamalebot-agent": ["autogroup:admin"],
      "tag:managed-server":  ["autogroup:admin"]
    },
    "ssh": [{
      "action": "accept",
      "src":    ["tag:tamalebot-agent"],
      "dst":    ["tag:managed-server"],
      "users":  ["root", "admin"]
    }]
  3. Generate the Tailscale auth key with tag:tamalebot-agent attached, and tag your servers tag:managed-server in the admin panel.
  4. That's it — the agent can now SSH to any tagged server with no per-server key install. Revoke by editing the ACL; it takes effect instantly across every device.

Tips

🔑 SSH Key (persistent agent identity) ~5 minutes

Gives your IT or DevOps agent a stable SSH keypair so it can log into your servers the same way every time — even after container restarts, redeploys, or upgrades. Install the public key once on each server and the agent has access forever (until you remove it).

Why this matters: Without a persistent key, the agent generates a fresh keypair on every cold boot, and you'd have to re-install a new pubkey on every server every time the container cycles. With this integration, you install once.

What you'll need

~/.ssh/authorized_keys access on each server
  1. Open your agent's dashboardIntegrationsSSH Key card.
  2. Click "Generate new ed25519 key". TamaleBot creates an OpenSSH-format keypair. The public key fills into the top textarea; the private key goes into the lower one.
    • Prefer your own key? Run ssh-keygen -t ed25519 -C tamalebot-agent -N "" locally and paste both into the textareas instead.
  3. Click Save. The private key is encrypted at rest in the agent config and mounted to ~/.ssh/id_ed25519 inside the container on every boot.
  4. Install the public key on each target server. Click "Copy install one-liner" to get a single bash command. Run it on each server via whatever access you have (existing SSH, HopToDesk, VNC, console). Example command:
    mkdir -p ~/.ssh && chmod 700 ~/.ssh && \
    echo 'ssh-ed25519 AAAA... tamalebot-agent' >> ~/.ssh/authorized_keys && \
    chmod 600 ~/.ssh/authorized_keys
  5. Verify by asking the agent in chat: "SSH into <hostname> and run whoami."

First-time bootstrap — servers with no existing SSH access

If you don't already have SSH working to a server (for example, a home machine you only reach via RDP/VNC/HopToDesk), get in through whatever interface you have, open a terminal on the server's desktop, and run the install one-liner from step 4 there. That bootstraps the first SSH path. From then on, the agent (and you) can use SSH.

Give the agent sudo (optional but recommended)

Without sudo, the agent can read most diagnostics but can't restart services, read protected logs, or install packages — roughly 60% of real IT work. There are three ways to grant it:

  1. Passwordless sudo (easiest). On each server, run:
    echo '<agent-user> ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/tamalebot-agent
    sudo chmod 440 /etc/sudoers.d/tamalebot-agent
    Replace <agent-user> with the SSH user the agent uses (e.g. ops, ubuntu, m). This grants full root on that machine via the agent's SSH key — same trust level as giving someone root SSH access.
  2. Narrower passwordless sudo (safer). Scope to only the commands the agent legitimately needs:
    ops ALL=(ALL) NOPASSWD: /usr/bin/systemctl, /usr/bin/journalctl, \
    /usr/bin/apt, /usr/bin/docker, /bin/cat /var/log/*
    Add or remove paths to fit your policy.
  3. Tailscale SSH with root ACL. If you use the Tailscale SSH path, add "users": ["root"] to your ACL. The agent logs in as root directly, no sudo needed.

Rotating or revoking the key

Security model

Features

📚 Knowledge Base

The Knowledge Base is where you upload the documents your agent will use to answer questions. Think of it like giving your agent a library — it can only reference what you put in there.

How it works

  1. You upload files to your agent's Knowledge Base in the dashboard.
  2. When a user asks a question, the agent uses knowledge_search to find relevant files by name, description, or tags.
  3. It reads the file content with knowledge_read (text is extracted automatically from PDFs and Word docs).
  4. It answers the question based on what it found, citing the source document.
  5. If the user needs the actual file, the agent can share it directly in the chat via knowledge_get_url.

How to upload files

  1. Go to your TamaleBot dashboard and select your agent.
  2. Click the Knowledge Base tab.
  3. Drag and drop files into the upload zone, or click browse to select files.
  4. Each file can be up to 25 MB.
  5. After uploading, you can add a description and tags to each file to help the agent find it more easily.

Supported file types

Category Formats How the agent uses it
DocumentsPDF, Word (.docx), plain text (.txt), Markdown (.md)Text is extracted automatically. The agent reads the full content and answers based on it.
SpreadsheetsCSV, JSONStructured data. Great for pricing tables, product specs, FAQ lists.
ImagesPNG, JPG, GIF, WebP, SVGThe agent can view images (visual AI) and share them in chat. Good for product photos, diagrams, size charts.
VideoMP4, WebMStored and shareable via link. Useful for tutorial videos or product demos.
AudioMP3, WAVStored and shareable via link.

What to upload for a customer support agent

The more relevant content you upload, the better your agent answers. Here's what works best:

Document type What to include Example
FAQsQuestion-and-answer pairs your customers commonly askfaq.md or faq.pdf
Product docsFeatures, specs, how-to guides, setup instructionsgetting-started.pdf
Pricing & plansPlan comparison, feature tiers, billing infopricing.md or plans.csv
PoliciesReturn/refund policy, shipping info, terms of servicereturn-policy.pdf
TroubleshootingKnown issues, error messages, step-by-step fixestroubleshooting-guide.md
Product imagesProduct photos, size charts, diagrams the agent can sharesize-chart.png
Contact infoHours, phone numbers, escalation contacts, office locationscontact-info.txt

Tips for a good knowledge base

🧠 Memory & Storage Scope ~3 minutes

Each TamaleBot agent has three places it can store data. They differ in scope (who can read it), durability (how long it lives), and what you'd use them for. Understanding the differences saves you from "wait, why can't my new agent see this?" surprises.

The three kinds of storage

Storage Scope Durability What it's for
Agent memory
memory_save / memory_search
Per-agent — isolated to this one agent Permanent until you delete The agent's own operational log: what it did, what it learned, running context ("customer X prefers morning calls"). Survives container restarts.
Team storage
team_storage_*
Shared by agents deployed together as a team (e.g. the IT Department 5-agent preset) Permanent until you delete the team Shared incident state, handoff between specialists ("IT Lead wrote a ticket, Sysadmin reads it and starts fixing"). Only agents in the same team can read/write.
Knowledge Base
knowledge_search / knowledge_read
Per-agent (configured independently per agent) Permanent until you delete Reference documents you upload: runbooks, pricing sheets, SOPs, product specs, contracts. The agent searches them at runtime when a question is relevant.

What this means in practice

Which one should I use?

👥 Multi-Agent Setups: Teams vs Sub-Agents ~5 minutes

Two ways for agents to get other agents involved — they look similar from the outside but solve different problems. Use the wrong one and you'll either pay for agents you don't need, or fail to persist work that should outlive a single task.

Team Deploy

You decide at deploy time to run multiple agents together. They're all real, long-lived agents that share team storage, can message each other, and each show up on your dashboard.

Sub-Agents

The agent decides at runtime to spawn a helper for a specific task. The sub-agent lives only long enough to complete the task, inherits the parent's config and credentials, and is gone when it returns the result.

Side-by-side

Team Deploy Sub-Agents
Who decides to spawnYou (at deploy time)The agent (at runtime)
RelationshipPeers on the same teamParent → child (one-way)
LifecyclePermanent, always-onEphemeral, one-task-and-die (max 5 min)
Shared storageYes — team_storageNo — sub-agent is stateless
MessagingBidirectional (message_agent)Single task + single response
BillingN agents = N × plan costPart of parent's token usage
Shows on dashboardYes, each agent listedNo — invisible to user
Best forOngoing role-based specializationIn-conversation delegation to a specialist

When to pick which

Can I use both?

Yes. A team-deployed agent can also have sub-agents enabled — the parent is a permanent team member that occasionally spawns ephemeral helpers. For example: a permanent Dev Lead in a team that occasionally spawns a sub-agent to write and run a throwaway test.

💬 Chat Widget

The Chat Widget lets you embed a customer-facing AI chat on your website. Your visitors see a chat bubble in the corner of your site. When they click it, they can ask questions and get instant answers from your agent.

How it works

  1. When you deploy an agent, choose "Website Widget" or "Both" as the deployment mode.
  2. After deployment, you get a one-line embed code to paste into your website.
  3. The widget loads as a chat bubble in the bottom-right (or left) corner of your site.
  4. Visitors click the bubble, type a question, and get a response from your agent.
  5. Conversations are stored per-session so visitors can refresh the page and continue where they left off.

Embed code

Add this line to your website, just before </body>:

<script src="https://tamalebot.com/widget.js" data-agent="your-agent-name"></script>

Replace your-agent-name with the name you chose when deploying.

Customization options

Option How to set it Default
Agent namedata-agent="your-agent"(required)
Positiondata-position="left"right
GreetingSet during deployment in the deploy wizard"Hi! How can I help you?"
Accent colorColor picker during deployment#0055ff (blue)
Daily capSet during deployment (max new conversations per day)500

Works everywhere

The widget is a single JavaScript file with no dependencies. It works on any website:

Security & isolation

Billing

Widget conversations are billed to the agent owner's account at the same per-message rate as any other channel (Slack, Discord, etc.). There is no extra charge for the widget itself. See the Customer Support pricing section for estimated costs by volume.

🧩 Agent Skills ~3 minutes

Agent Skills are reusable capability packages that extend what your agent can do. Instead of writing long system prompts for every task, you can add pre-built skills from community marketplaces — things like customer onboarding workflows, sales objection handling, data analysis templates, and more.

How it works

  1. During deployment, open the 3. Agent Skills section in the configure step.
  2. Type a keyword in the search bar (e.g. "customer support", "writing", "research"). Results appear from community skill marketplaces.
  3. Click a skill to add it. It appears as a chip below the search bar. Add as many as you need.
  4. Alternatively, paste a GitHub URL directly into the search bar to add a custom skill from any public repository.
  5. Deploy your agent. Skills are automatically pulled into the agent container and available at startup.

Verified vs. unverified skills

Skills can be cryptographically signed by their authors using Ed25519 signatures. In the deploy wizard and agent dashboard, you'll see:

Third-party content: Skills from community marketplaces are not created, reviewed, or endorsed by TamaleBot. Always review a skill's instructions before deploying it to a production agent. You can browse skills on skills.sh, SkillsMP, agentskill.sh, or ClawHub.

Skill format

Each skill is a directory containing a SKILL.md file with YAML frontmatter:

---
name: Customer Onboarding
description: Structured onboarding workflow for new customers
---

When a user says they are a new customer, follow these steps:
1. Greet them and ask for their company name...
2. Walk them through account setup...
...

Your agent loads skill names and descriptions at startup (lightweight), then reads the full instructions on-demand when a user's request matches a skill.

🛡️ Custom Security Policies ~5 minutes

By default, every TamaleBot agent runs with a built-in security policy that blocks dangerous commands, sensitive file access, and data exfiltration. For advanced users, you can define custom policies in YAML to tighten or loosen rules for your specific use case.

How it works

Every tool call your agent makes — shell commands, file reads, HTTP requests, SSH, Git, browser actions — passes through the policy engine before execution. The engine checks the action against your rules and either allows it (with an audit log entry) or blocks it immediately.

Writing a custom policy

Create a YAML file with any combination of these fields:

# my-policy.yaml
name: strict-finance

blocked_read_paths:
  - /etc/shadow
  - /etc/passwd
  - ~/.ssh/
  - ~/.aws/credentials
  - .env

blocked_write_paths:
  - /etc/
  - /usr/bin/
  - /sys/

dangerous_command_patterns:
  # Block database destruction
  - 'DROP\s+TABLE'
  - 'DROP\s+DATABASE'
  - 'TRUNCATE\s+TABLE'
  # Block filesystem destruction
  - 'rm\s+-rf\s+/'
  - 'sudo\s+rm'
  # Block exfiltration
  - 'curl.*pastebin'
  - 'curl.*webhook\.site'
  # Custom: block crypto wallet operations
  - 'solana\s+transfer'
  - 'eth\s+send'

# Restrict outbound HTTP to specific domains
allowed_domains:
  - api.anthropic.com
  - api.stripe.com
  - your-internal-api.com

# Restrict SSH access
allowed_ssh_hosts:
  - deploy.yourcompany.com

# Restrict Git operations
allowed_git_repos:
  - github.com/your-org

max_requests_per_minute: 30

Deploying with a custom policy

Set the TAMALEBOT_POLICY_FILE environment variable to point to your YAML file:

TAMALEBOT_POLICY_FILE=/app/config/my-policy.yaml

You can include the YAML file in your agent's knowledge base or mount it into the container. Environment variable overrides (like TAMALEBOT_ALLOWED_SSH_HOSTS) always take precedence over YAML values, so you can use YAML as a base and override specific fields per deployment.

Default policy

If no custom policy file is specified, agents use the built-in default policy which blocks:

All policies are open source. You can audit exactly what is blocked in the TamaleBot OSS repository. The policy engine and all default rules are fully transparent.

🔐 Skill Signing (Ed25519) ~5 minutes

Skill signing lets authors cryptographically prove that a skill hasn't been tampered with. TamaleBot uses Ed25519 signatures — the same algorithm used by SSH, GPG, and most modern signing systems. This is optional: unsigned skills still work, but verified skills get a trust badge in the deploy wizard and dashboard.

For skill authors: signing your skill

  1. Generate a keypair (one time):
    node -e "
      const ed = require('@noble/ed25519');
      const priv = ed.utils.randomPrivateKey();
      const pub = Buffer.from(ed.getPublicKey(priv)).toString('hex');
      console.log('Private:', Buffer.from(priv).toString('hex'));
      console.log('Public:', pub);
    "

    Save both keys somewhere safe. The private key is used to sign; the public key is published with your skill.

  2. Sign your SKILL.md:
    node -e "
      const ed = require('@noble/ed25519');
      const fs = require('fs');
      const content = fs.readFileSync('SKILL.md');
      const priv = 'YOUR_PRIVATE_KEY_HEX';
      ed.sign(content, priv).then(sig =>
        fs.writeFileSync('SKILL.md.sig', Buffer.from(sig).toString('hex'))
      );
    "
  3. Save your public key:
    echo "YOUR_PUBLIC_KEY_HEX" > SKILL.md.pub
  4. Publish all three files in your skill directory:
    my-skill/
      SKILL.md        # The skill instructions
      SKILL.md.sig    # 128-char hex Ed25519 signature
      SKILL.md.pub    # 64-char hex Ed25519 public key

For users: what verification means

When your agent loads a skill at startup, TamaleBot automatically checks for .sig and .pub files. If found and valid, the skill is marked as verified in the system prompt and dashboard. Verification confirms:

It does not confirm the author's real-world identity — for that, check the author's public key against their GitHub profile or marketplace listing.

No friction for users: Signature verification is automatic and invisible. You don't need to install anything or manage keys. Unsigned skills work exactly the same — they just don't get the verified badge.

Alternative Runtimes

TamaleBot can host agents built with other frameworks. You bring your Docker image, we handle infrastructure, security, integrations, and scaling. No LLM API key is needed when selecting these runtimes — they bring their own.

🤖 OpenClaw ~5 minutes

OpenClaw is the most popular open-source AI agent framework (247K+ GitHub stars, MIT license). Deploy your own OpenClaw agent on TamaleBot's managed infrastructure with container isolation, integrations, and audit trails.

What you need

Using a custom image? Deploy first with the default, then go to your agent dashboard → Settings → Container Image to point to your own registry image (e.g. ghcr.io/yourorg/my-openclaw-agent:latest).

Steps

  1. Go to tamalebot.com/deploy.
  2. In Step 1, select OpenClaw Agent.
  3. You'll skip straight to Configure — fill in Agent Name (e.g. my-openclaw-bot).
  4. Optionally set a system prompt override, or leave blank to use the prompt baked into the OpenClaw image.
  5. Connect any integrations you want (Slack, Discord, Telegram, etc.). TamaleBot routes incoming messages to your OpenClaw agent automatically.
  6. Review Your Container Resources — you get 1GB RAM (~384MB for your agent), 0.5 vCPU, and persistent workspace storage.
  7. Consider enabling Always-On in Add-ons — OpenClaw agents run via Docker-in-Docker, so cold starts take longer than native agents. Always-On keeps your container warm for instant responses (+$3/mo).
  8. Click Deploy Agent.

TamaleBot spins up an isolated container, pulls the OpenClaw image, and starts it. Your agent gets its own persistent workspace with all integrations wired up.

What works and what doesn't

The container is great for LLM-powered conversations, tool calls, API integrations, web browsing, file processing, and cron jobs. Most agent tasks are I/O-bound (waiting on LLM APIs), so CPU and RAM are rarely the bottleneck.

Heavy local inference, large ML model loading, image/video processing, or memory-intensive data pipelines will need more resources than the current tier provides. A performance upgrade option is coming soon.

Migrating an existing config

If you have an OpenClaw JSON config, click the "Switching from OpenClaw or NemoClaw?" banner at the top of the deploy page. Paste your config and we'll auto-fill the form — provider, model, API key, and integration tokens are all imported.

Pricing: OpenClaw runtime starts at $8/mo. Your agent runs in an isolated container with Docker-in-Docker support, and all TamaleBot integrations work automatically. Add Always-On for +$3/mo to eliminate cold starts.

NemoClaw (NVIDIA Enterprise) ~5 minutes

NemoClaw is NVIDIA's enterprise security wrapper around OpenClaw. The setup is nearly identical.

What you need

Steps

  1. Go to tamalebot.com/deploy.
  2. In Step 1, select NemoClaw Agent.
  3. You'll skip straight to Configure — fill in Agent Name and connect integrations.
  4. Review Your Container Resources (1GB RAM, ~384MB for your agent, 0.5 vCPU, persistent storage).
  5. Consider enabling Always-On (+$3/mo) to avoid cold starts.
  6. Click Deploy Agent.

To use a custom NemoClaw image instead of the default, go to your agent dashboard → Settings → Container Image after deployment.

Pricing: NemoClaw runtime starts at $8/mo, same as OpenClaw. Add Always-On for +$3/mo to eliminate cold starts.

📦 Custom Docker Image ~10 minutes

Run any agent framework — LangChain, CrewAI, AutoGen, or your own code. Just package it as a Docker image that responds to HTTP requests.

What you need

Steps

  1. Go to tamalebot.com/deploy.
  2. In Step 1, select Custom Agent.
  3. In Step 2 (Runtime), select Custom and enter your Docker image URL (e.g. ghcr.io/yourorg/my-agent:latest).
  4. Set the container port your agent listens on (default: 8080).
  5. Choose the HTTP contract: TamaleBot (our message format) or OpenAI-compatible (standard chat completions format).
  6. In Step 3 (Configure), fill in Agent Name, connect integrations, and review your container resources.
  7. Click Deploy Agent.
Pricing: Custom runtime costs $10/mo. Your image runs in an isolated container (1GB RAM, 0.5 vCPU, persistent workspace), and all TamaleBot integrations (Slack, Discord, Telegram, email, etc.) work automatically.