back to tutorials

How to Build an AI-Native Company on Telegram

Learn how to build an AI-native company that runs entirely on Telegram using ChatBotKit blueprints. Set up specialized agent departments - an Executive Assistant, Operations Bot, Research Analyst, and Customer Liaison - with privilege separation, shared workspaces, and access restrictions.

Most companies add AI to existing workflows. An AI-native company starts the other way around: the AI agents ARE the company, and humans steer them through messaging. In this tutorial you will build exactly that - a multi-agent company that lives entirely on Telegram, where each agent is a department you can message to get work done.

By the end, you will have four specialized Telegram bots that share a common workspace, delegate work to each other, and restrict access to authorized users only. No dashboards, no web apps - just Telegram conversations that run your business.

What You'll Build

A Telegram-native company with four departments:

DepartmentBotResponsibilities
Executive OfficeExecutive AssistantScheduling, priorities, daily briefings, delegation to other departments
OperationsOperations BotShell scripts, file management, infrastructure tasks, data processing
ResearchResearch AnalystMarket research, competitor monitoring, report writing
Customer RelationsCustomer LiaisonOutreach drafts, follow-up scheduling, CRM notes

Each department is a separate Telegram bot. They share a workspace (Space) for handing off artifacts, and the Executive Assistant can delegate tasks to any department using background task management.

Prerequisites

Tip: Create all four bots in BotFather before starting. Name them something like MyCoExecBot, MyCoOpsBot, MyCoResearchBot, and MyCoOutreachBot. Save each token - you will need them in the final step.

Step 1: Create the Blueprint with the Executive Assistant

Start with a single bot - the Executive Assistant. This will be the central coordinator that you interact with most often.

  1. Navigate to Blueprints in your ChatBotKit dashboard.
  2. Click Create and select Blueprint.
  3. Name it "AI Company".
  4. Click Design to open the Blueprint Designer.

Add a Bot, a Skillset, and a Space to the canvas. Configure them as shown:

resources:
  '#bot:::qhnhhc27fck':
    type: bot
    data:
      name: Executive Assistant
      description: |
        Central coordinator for the AI-native company. Handles scheduling,
        priorities, delegation, and daily briefings via Telegram.
      backstory: |-
        You are the Executive Assistant for an AI-native company that
        operates entirely through Telegram. You are the primary point of
        contact for the founder.

        ## YOUR ROLE

        - Manage the founder's priorities and schedule
        - Delegate work to other department bots when appropriate
        - Provide daily briefings and status updates
        - Keep the shared workspace organized

        ## WORKSPACE

        You have access to a shared company workspace. Use it to:
        - Maintain a running priorities file at /priorities.md
        - Store daily briefings at /briefings/YYYY-MM-DD.md
        - Read outputs from other departments

        ## DELEGATION

        When a request falls outside your expertise, create a background
        task for the appropriate department:
        - Operations Bot: infrastructure, scripts, data processing
        - Research Analyst: market research, competitor analysis, reports
        - Customer Liaison: outreach, follow-ups, CRM updates

        ## RULES

        - Always confirm before delegating to another department
        - Keep the founder informed about task progress
        - Write concise, actionable briefings
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::3as6l4alt2o'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#skillset:::3as6l4alt2o':
    type: skillset
    data:
      name: Executive Toolkit
      description: Scheduling, delegation, and workspace access for the Executive Assistant
      visibility: private
      meta: null
  '#space:::7i7nkb4k2rc':
    type: space
    data:
      name: Company Workspace
      description: |
        Shared workspace for all company departments. Store priorities,
        briefings, research reports, outreach drafts, and operational
        artifacts here.
      visibility: private
      meta: null
  '#ability:::1vf7491icm':
    type: ability
    data:
      skillsetId: '#skillset:::3as6l4alt2o'
      linkedSpaceId: '#space:::7i7nkb4k2rc'
      name: Read Workspace
      description: Read files from the shared company workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::b10glth3fck':
    type: ability
    data:
      skillsetId: '#skillset:::3as6l4alt2o'
      linkedSpaceId: '#space:::7i7nkb4k2rc'
      name: Write Workspace
      description: Write files to the shared company workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
positions:
  '#bot:::qhnhhc27fck':
    x: 0
    'y': 165
  '#skillset:::3as6l4alt2o':
    x: 250
    'y': 165
  '#space:::7i7nkb4k2rc':
    x: 525
    'y': 360
  '#ability:::1vf7491icm':
    x: 450
    'y': 0
  '#ability:::b10glth3fck':
    x: 450
    'y': 180
notes: {}
images: {}
frames: {}
tools: {}

At this point you have a single bot with workspace access. Test it in the Agent Console by asking it to create a priorities file - it should write to the shared Space.

Step 2: Add the Operations Bot

The Operations Bot handles infrastructure work - running shell commands, processing data files, and executing scripts. It gets its own skillset with shell execution abilities.

Add a second Bot and Skillset to the canvas:

resources:
  '#bot:::lv08dkaihoc':
    type: bot
    data:
      name: Executive Assistant
      description: |
        Central coordinator for the AI-native company. Handles scheduling,
        priorities, delegation, and daily briefings via Telegram.
      backstory: |-
        You are the Executive Assistant for an AI-native company that
        operates entirely through Telegram. You are the primary point of
        contact for the founder.

        ## YOUR ROLE

        - Manage the founder's priorities and schedule
        - Delegate work to other department bots when appropriate
        - Provide daily briefings and status updates
        - Keep the shared workspace organized

        ## WORKSPACE

        You have access to a shared company workspace. Use it to:
        - Maintain a running priorities file at /priorities.md
        - Store daily briefings at /briefings/YYYY-MM-DD.md
        - Read outputs from other departments

        ## DELEGATION

        When a request falls outside your expertise, create a background
        task for the appropriate department:
        - Operations Bot: infrastructure, scripts, data processing
        - Research Analyst: market research, competitor analysis, reports
        - Customer Liaison: outreach, follow-ups, CRM updates

        ## RULES

        - Always confirm before delegating to another department
        - Keep the founder informed about task progress
        - Write concise, actionable briefings
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::7d5aauv61vg'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::34cvg4fk7t4':
    type: bot
    data:
      name: Operations Bot
      description: |
        Handles shell execution, data processing, file management, and
        infrastructure tasks in an isolated sandbox environment.
      backstory: |-
        You are the Operations Bot for an AI-native company. You handle
        all infrastructure, scripting, and data processing tasks.

        ## YOUR ROLE

        - Execute shell commands and scripts in a secure sandbox
        - Process and transform data files (CSV, JSON, text)
        - Manage files in the shared company workspace
        - Produce clean outputs that other departments can consume

        ## WORKSPACE

        You share a workspace with other departments. Organize your
        outputs cleanly:
        - /ops/scripts/ for reusable scripts
        - /ops/outputs/ for processed data
        - /ops/logs/ for execution logs

        ## RULES

        - Always log what you executed and the result
        - Write outputs to the workspace so other bots can read them
        - If a task is ambiguous, write your interpretation to the
          workspace before executing
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::fkppqlfpmn4'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#skillset:::7d5aauv61vg':
    type: skillset
    data:
      name: Executive Toolkit
      description: Scheduling, delegation, and workspace access for the Executive Assistant
      visibility: private
      meta: null
  '#skillset:::fkppqlfpmn4':
    type: skillset
    data:
      name: Operations Toolkit
      description: Shell execution, file management, and data processing tools
      visibility: private
      meta: null
  '#space:::v0lsl53u3ig':
    type: space
    data:
      name: Company Workspace
      description: |
        Shared workspace for all company departments. Store priorities,
        briefings, research reports, outreach drafts, and operational
        artifacts here.
      visibility: private
      meta: null
  '#ability:::m78p3cpe7fg':
    type: ability
    data:
      skillsetId: '#skillset:::7d5aauv61vg'
      linkedSpaceId: '#space:::v0lsl53u3ig'
      name: Read Workspace
      description: Read files from the shared company workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::6bmte3lfgj8':
    type: ability
    data:
      skillsetId: '#skillset:::7d5aauv61vg'
      linkedSpaceId: '#space:::v0lsl53u3ig'
      name: Write Workspace
      description: Write files to the shared company workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::evvfs3i2638':
    type: ability
    data:
      skillsetId: '#skillset:::fkppqlfpmn4'
      linkedSpaceId: '#space:::v0lsl53u3ig'
      name: Execute Command
      description: Run shell commands in the sandbox environment
      instruction: |-
        template: shell/exec
        parameters: {}
      meta: null
  '#ability:::ji1q6s87kmo':
    type: ability
    data:
      skillsetId: '#skillset:::fkppqlfpmn4'
      linkedSpaceId: '#space:::v0lsl53u3ig'
      name: Read File
      description: Read files from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::9t348djtjek':
    type: ability
    data:
      skillsetId: '#skillset:::fkppqlfpmn4'
      linkedSpaceId: '#space:::v0lsl53u3ig'
      name: Write File
      description: Write files to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
positions:
  '#bot:::lv08dkaihoc':
    x: 0
    'y': 165
  '#bot:::34cvg4fk7t4':
    x: 0
    'y': 585
  '#skillset:::7d5aauv61vg':
    x: 250
    'y': 165
  '#skillset:::fkppqlfpmn4':
    x: 250
    'y': 585
  '#space:::v0lsl53u3ig':
    x: 825
    'y': 375
  '#ability:::m78p3cpe7fg':
    x: 450
    'y': 75
  '#ability:::6bmte3lfgj8':
    x: 450
    'y': 255
  '#ability:::evvfs3i2638':
    x: 450
    'y': 495
  '#ability:::ji1q6s87kmo':
    x: 450
    'y': 675
  '#ability:::9t348djtjek':
    x: 450
    'y': 855
notes: {}
images: {}
frames: {}
tools: {}

Notice both bots share the same Space (#space:::company-workspace). This is what makes cross-department handoffs possible - the Executive Assistant can write a task brief to /ops/tasks/, and the Operations Bot can pick it up and write results back.

Step 3: Add the Research Analyst

The Research Analyst handles information gathering, competitive analysis, and report writing. It gets web fetching abilities in addition to workspace access.

Add a third bot with its own skillset:

resources:
  '#bot:::308e4fdb2n4':
    type: bot
    data:
      name: Executive Assistant
      description: |
        Central coordinator for the AI-native company. Handles scheduling,
        priorities, delegation, and daily briefings via Telegram.
      backstory: |-
        You are the Executive Assistant for an AI-native company that
        operates entirely through Telegram. You are the primary point of
        contact for the founder.

        ## YOUR ROLE

        - Manage the founder's priorities and schedule
        - Delegate work to other department bots when appropriate
        - Provide daily briefings and status updates
        - Keep the shared workspace organized

        ## WORKSPACE

        You have access to a shared company workspace. Use it to:
        - Maintain a running priorities file at /priorities.md
        - Store daily briefings at /briefings/YYYY-MM-DD.md
        - Read outputs from other departments

        ## DELEGATION

        When a request falls outside your expertise, create a background
        task for the appropriate department:
        - Operations Bot: infrastructure, scripts, data processing
        - Research Analyst: market research, competitor analysis, reports
        - Customer Liaison: outreach, follow-ups, CRM updates

        ## RULES

        - Always confirm before delegating to another department
        - Keep the founder informed about task progress
        - Write concise, actionable briefings
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::qujg2v6in14'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::0ca7gedn2ek':
    type: bot
    data:
      name: Operations Bot
      description: |
        Handles shell execution, data processing, file management, and
        infrastructure tasks in an isolated sandbox environment.
      backstory: |-
        You are the Operations Bot for an AI-native company. You handle
        all infrastructure, scripting, and data processing tasks.

        ## YOUR ROLE

        - Execute shell commands and scripts in a secure sandbox
        - Process and transform data files (CSV, JSON, text)
        - Manage files in the shared company workspace
        - Produce clean outputs that other departments can consume

        ## WORKSPACE

        You share a workspace with other departments. Organize your
        outputs cleanly:
        - /ops/scripts/ for reusable scripts
        - /ops/outputs/ for processed data
        - /ops/logs/ for execution logs

        ## RULES

        - Always log what you executed and the result
        - Write outputs to the workspace so other bots can read them
        - If a task is ambiguous, write your interpretation to the
          workspace before executing
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::6c8ec8pjnuo'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::ilh916rm98':
    type: bot
    data:
      name: Research Analyst
      description: |
        Gathers information, analyzes competitors, produces structured
        research reports, and writes findings to the shared workspace.
      backstory: |-
        You are the Research Analyst for an AI-native company. You handle
        all information gathering, competitive analysis, and report
        writing.

        ## YOUR ROLE

        - Research markets, competitors, and trends
        - Fetch and summarize web pages and articles
        - Produce structured reports with sources
        - Write findings to the shared workspace for other departments

        ## WORKSPACE

        Organize your outputs:
        - /research/reports/ for finished reports
        - /research/notes/ for raw notes and drafts
        - /research/competitors/ for competitive intelligence

        ## REPORT FORMAT

        Always structure reports with:
        1. Executive summary (3-5 sentences)
        2. Key findings (bulleted list)
        3. Supporting details
        4. Sources
        5. Recommended actions

        ## RULES

        - Cite sources for every claim
        - Distinguish between facts and speculation
        - Write reports that a non-expert can understand
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::bu0qjpbcrek'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#skillset:::qujg2v6in14':
    type: skillset
    data:
      name: Executive Toolkit
      description: Scheduling, delegation, and workspace access for the Executive Assistant
      visibility: private
      meta: null
  '#skillset:::6c8ec8pjnuo':
    type: skillset
    data:
      name: Operations Toolkit
      description: Shell execution, file management, and data processing tools
      visibility: private
      meta: null
  '#skillset:::bu0qjpbcrek':
    type: skillset
    data:
      name: Research Toolkit
      description: Web fetching, workspace access, and report writing tools
      visibility: private
      meta: null
  '#space:::locadv5gfng':
    type: space
    data:
      name: Company Workspace
      description: |
        Shared workspace for all company departments. Store priorities,
        briefings, research reports, outreach drafts, and operational
        artifacts here.
      visibility: private
      meta: null
  '#ability:::hmo291fe494':
    type: ability
    data:
      skillsetId: '#skillset:::qujg2v6in14'
      linkedSpaceId: '#space:::locadv5gfng'
      name: Read Workspace
      description: Read files from the shared company workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::khqr4ve40i':
    type: ability
    data:
      skillsetId: '#skillset:::qujg2v6in14'
      linkedSpaceId: '#space:::locadv5gfng'
      name: Write Workspace
      description: Write files to the shared company workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::46jkjme4d6c':
    type: ability
    data:
      skillsetId: '#skillset:::6c8ec8pjnuo'
      linkedSpaceId: '#space:::locadv5gfng'
      name: Execute Command
      description: Run shell commands in the sandbox environment
      instruction: |-
        template: shell/exec
        parameters: {}
      meta: null
  '#ability:::datp5aochac':
    type: ability
    data:
      skillsetId: '#skillset:::6c8ec8pjnuo'
      linkedSpaceId: '#space:::locadv5gfng'
      name: Read File
      description: Read files from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::oiame2nuj5s':
    type: ability
    data:
      skillsetId: '#skillset:::6c8ec8pjnuo'
      linkedSpaceId: '#space:::locadv5gfng'
      name: Write File
      description: Write files to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::vp70pi6h2q8':
    type: ability
    data:
      skillsetId: '#skillset:::bu0qjpbcrek'
      name: Fetch Web Page
      description: Fetch and extract content from a web page for research
      instruction: |-
        template: fetch/structured
        parameters: {}
      meta: null
  '#ability:::d4geralf3mc':
    type: ability
    data:
      skillsetId: '#skillset:::bu0qjpbcrek'
      linkedSpaceId: '#space:::locadv5gfng'
      name: Read Workspace
      description: Read research notes and reports from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::s7kr1rhbf0c':
    type: ability
    data:
      skillsetId: '#skillset:::bu0qjpbcrek'
      linkedSpaceId: '#space:::locadv5gfng'
      name: Write Workspace
      description: Write research reports and notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
positions:
  '#bot:::308e4fdb2n4':
    x: 0
    'y': 165
  '#bot:::0ca7gedn2ek':
    x: 0
    'y': 585
  '#bot:::ilh916rm98':
    x: 0
    'y': 1095
  '#skillset:::qujg2v6in14':
    x: 250
    'y': 165
  '#skillset:::6c8ec8pjnuo':
    x: 250
    'y': 585
  '#skillset:::bu0qjpbcrek':
    x: 250
    'y': 1095
  '#space:::locadv5gfng':
    x: 810
    'y': 615
  '#ability:::hmo291fe494':
    x: 450
    'y': 75
  '#ability:::khqr4ve40i':
    x: 450
    'y': 255
  '#ability:::46jkjme4d6c':
    x: 450
    'y': 495
  '#ability:::datp5aochac':
    x: 450
    'y': 675
  '#ability:::oiame2nuj5s':
    x: 450
    'y': 855
  '#ability:::vp70pi6h2q8':
    x: 450
    'y': 1005
  '#ability:::d4geralf3mc':
    x: 450
    'y': 1185
  '#ability:::s7kr1rhbf0c':
    x: 450
    'y': 1365
notes: {}
images: {}
frames: {}
tools: {}

The Research Analyst has a fetch/structured ability that lets it pull content from the web. Combined with workspace write access, it can research a topic and drop a finished report into /research/reports/ where the Executive Assistant or anyone else can read it.

Step 4: Add the Customer Liaison

The Customer Liaison handles outreach drafts, follow-up scheduling, and customer notes. It rounds out the team.

Add a fourth bot:

resources:
  '#bot:::k9nq43gu4q8':
    type: bot
    data:
      name: Executive Assistant
      description: |
        Central coordinator for the AI-native company. Handles scheduling,
        priorities, delegation, and daily briefings via Telegram.
      backstory: |-
        You are the Executive Assistant for an AI-native company that
        operates entirely through Telegram. You are the primary point of
        contact for the founder.

        ## YOUR ROLE

        - Manage the founder's priorities and schedule
        - Delegate work to other department bots when appropriate
        - Provide daily briefings and status updates
        - Keep the shared workspace organized

        ## WORKSPACE

        You have access to a shared company workspace. Use it to:
        - Maintain a running priorities file at /priorities.md
        - Store daily briefings at /briefings/YYYY-MM-DD.md
        - Read outputs from other departments

        ## DELEGATION

        When a request falls outside your expertise, create a background
        task for the appropriate department:
        - Operations Bot: infrastructure, scripts, data processing
        - Research Analyst: market research, competitor analysis, reports
        - Customer Liaison: outreach, follow-ups, CRM updates

        ## RULES

        - Always confirm before delegating to another department
        - Keep the founder informed about task progress
        - Write concise, actionable briefings
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::d262e4r2a5g'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::1bvvkqolajk':
    type: bot
    data:
      name: Operations Bot
      description: |
        Handles shell execution, data processing, file management, and
        infrastructure tasks in an isolated sandbox environment.
      backstory: |-
        You are the Operations Bot for an AI-native company. You handle
        all infrastructure, scripting, and data processing tasks.

        ## YOUR ROLE

        - Execute shell commands and scripts in a secure sandbox
        - Process and transform data files (CSV, JSON, text)
        - Manage files in the shared company workspace
        - Produce clean outputs that other departments can consume

        ## WORKSPACE

        You share a workspace with other departments. Organize your
        outputs cleanly:
        - /ops/scripts/ for reusable scripts
        - /ops/outputs/ for processed data
        - /ops/logs/ for execution logs

        ## RULES

        - Always log what you executed and the result
        - Write outputs to the workspace so other bots can read them
        - If a task is ambiguous, write your interpretation to the
          workspace before executing
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::mlfe221h81c'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::c3suvspc708':
    type: bot
    data:
      name: Research Analyst
      description: |
        Gathers information, analyzes competitors, produces structured
        research reports, and writes findings to the shared workspace.
      backstory: |-
        You are the Research Analyst for an AI-native company. You handle
        all information gathering, competitive analysis, and report
        writing.

        ## YOUR ROLE

        - Research markets, competitors, and trends
        - Fetch and summarize web pages and articles
        - Produce structured reports with sources
        - Write findings to the shared workspace for other departments

        ## WORKSPACE

        Organize your outputs:
        - /research/reports/ for finished reports
        - /research/notes/ for raw notes and drafts
        - /research/competitors/ for competitive intelligence

        ## REPORT FORMAT

        Always structure reports with:
        1. Executive summary (3-5 sentences)
        2. Key findings (bulleted list)
        3. Supporting details
        4. Sources
        5. Recommended actions

        ## RULES

        - Cite sources for every claim
        - Distinguish between facts and speculation
        - Write reports that a non-expert can understand
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::83cjepvta14'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::5sacikia1ns':
    type: bot
    data:
      name: Customer Liaison
      description: |
        Manages outreach drafts, follow-up scheduling, customer notes,
        and relationship tracking in the shared workspace.
      backstory: |-
        You are the Customer Liaison for an AI-native company. You handle
        all customer-facing communication preparation and relationship
        management.

        ## YOUR ROLE

        - Draft outreach emails and messages for the founder to review
        - Track customer interactions and follow-up dates
        - Maintain a customer relationship log
        - Prepare talking points for meetings

        ## WORKSPACE

        Organize your outputs:
        - /customers/contacts.md for the master contact list
        - /customers/outreach/ for draft messages
        - /customers/notes/ for meeting notes and interaction logs
        - /customers/follow-ups.md for upcoming follow-up dates

        ## OUTREACH DRAFT FORMAT

        Every draft should include:
        1. Recipient name and context
        2. Purpose of the message
        3. Draft body text
        4. Suggested follow-up date

        ## RULES

        - Never send messages directly - always write drafts for review
        - Include context about the relationship history
        - Flag high-priority follow-ups clearly
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::2bv01r8p33g'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#skillset:::d262e4r2a5g':
    type: skillset
    data:
      name: Executive Toolkit
      description: Scheduling, delegation, and workspace access for the Executive Assistant
      visibility: private
      meta: null
  '#skillset:::mlfe221h81c':
    type: skillset
    data:
      name: Operations Toolkit
      description: Shell execution, file management, and data processing tools
      visibility: private
      meta: null
  '#skillset:::83cjepvta14':
    type: skillset
    data:
      name: Research Toolkit
      description: Web fetching, workspace access, and report writing tools
      visibility: private
      meta: null
  '#skillset:::2bv01r8p33g':
    type: skillset
    data:
      name: Customer Toolkit
      description: Workspace access for outreach drafts, contact management, and follow-up tracking
      visibility: private
      meta: null
  '#space:::86d9tn8dcpk':
    type: space
    data:
      name: Company Workspace
      description: |
        Shared workspace for all company departments. Store priorities,
        briefings, research reports, outreach drafts, and operational
        artifacts here.
      visibility: private
      meta: null
  '#ability:::1im0an2nfrg':
    type: ability
    data:
      skillsetId: '#skillset:::d262e4r2a5g'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Read Workspace
      description: Read files from the shared company workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::ckbp2f14g0o':
    type: ability
    data:
      skillsetId: '#skillset:::d262e4r2a5g'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Write Workspace
      description: Write files to the shared company workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::dge7op5232g':
    type: ability
    data:
      skillsetId: '#skillset:::mlfe221h81c'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Execute Command
      description: Run shell commands in the sandbox environment
      instruction: |-
        template: shell/exec
        parameters: {}
      meta: null
  '#ability:::qnlnfkh4s08':
    type: ability
    data:
      skillsetId: '#skillset:::mlfe221h81c'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Read File
      description: Read files from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::kgr6okr5lgg':
    type: ability
    data:
      skillsetId: '#skillset:::mlfe221h81c'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Write File
      description: Write files to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::00umf712lh8':
    type: ability
    data:
      skillsetId: '#skillset:::83cjepvta14'
      name: Fetch Web Page
      description: Fetch and extract content from a web page for research
      instruction: |-
        template: fetch/structured
        parameters: {}
      meta: null
  '#ability:::1cb7d7mtb6':
    type: ability
    data:
      skillsetId: '#skillset:::83cjepvta14'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Read Workspace
      description: Read research notes and reports from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::nicv6qrtaa8':
    type: ability
    data:
      skillsetId: '#skillset:::83cjepvta14'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Write Workspace
      description: Write research reports and notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::v9tv6sfffvc':
    type: ability
    data:
      skillsetId: '#skillset:::2bv01r8p33g'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Read Workspace
      description: Read customer notes and contact lists from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::gsjbmksm8do':
    type: ability
    data:
      skillsetId: '#skillset:::2bv01r8p33g'
      linkedSpaceId: '#space:::86d9tn8dcpk'
      name: Write Workspace
      description: Write outreach drafts and customer notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
positions:
  '#bot:::k9nq43gu4q8':
    x: 0
    'y': 165
  '#bot:::1bvvkqolajk':
    x: 0
    'y': 585
  '#bot:::c3suvspc708':
    x: 0
    'y': 1095
  '#bot:::5sacikia1ns':
    x: 0
    'y': 1605
  '#skillset:::d262e4r2a5g':
    x: 250
    'y': 165
  '#skillset:::mlfe221h81c':
    x: 250
    'y': 585
  '#skillset:::83cjepvta14':
    x: 250
    'y': 1095
  '#skillset:::2bv01r8p33g':
    x: 250
    'y': 1605
  '#space:::86d9tn8dcpk':
    x: 810
    'y': 885
  '#ability:::1im0an2nfrg':
    x: 450
    'y': 75
  '#ability:::ckbp2f14g0o':
    x: 450
    'y': 255
  '#ability:::dge7op5232g':
    x: 450
    'y': 495
  '#ability:::qnlnfkh4s08':
    x: 450
    'y': 675
  '#ability:::kgr6okr5lgg':
    x: 450
    'y': 855
  '#ability:::00umf712lh8':
    x: 450
    'y': 1005
  '#ability:::1cb7d7mtb6':
    x: 450
    'y': 1185
  '#ability:::nicv6qrtaa8':
    x: 450
    'y': 1365
  '#ability:::v9tv6sfffvc':
    x: 450
    'y': 1515
  '#ability:::gsjbmksm8do':
    x: 450
    'y': 1695
notes: {}
images: {}
frames: {}
tools: {}

You now have four department bots, each with their own skillset, all sharing one workspace. The next step is enabling the Executive Assistant to delegate work to the other departments.

Step 5: Enable Cross-Department Delegation

The Executive Assistant needs to create background tasks for other bots. Add task management abilities to the Executive Toolkit so it can dispatch work, check on progress, and report back.

Add these abilities to the Executive Assistant's skillset:

resources:
  '#bot:::cltg7tl2cfg':
    type: bot
    data:
      name: Executive Assistant
      description: |
        Central coordinator for the AI-native company. Handles scheduling,
        priorities, delegation, and daily briefings via Telegram.
      backstory: |-
        You are the Executive Assistant for an AI-native company that
        operates entirely through Telegram. You are the primary point of
        contact for the founder.

        ## YOUR ROLE

        - Manage the founder's priorities and schedule
        - Delegate work to other department bots when appropriate
        - Provide daily briefings and status updates
        - Keep the shared workspace organized

        ## WORKSPACE

        You have access to a shared company workspace. Use it to:
        - Maintain a running priorities file at /priorities.md
        - Store daily briefings at /briefings/YYYY-MM-DD.md
        - Read outputs from other departments

        ## DELEGATION

        You can delegate work to any department using background tasks:
        1. List available department bots with "List Departments"
        2. Create a task with "Assign Task" specifying the department bot
        3. Check progress with "List Tasks" and "Get Task Details"
        4. Cancel or update tasks as needed

        Departments available:
        - Operations Bot: infrastructure, scripts, data processing
        - Research Analyst: market research, competitor analysis, reports
        - Customer Liaison: outreach, follow-ups, CRM updates

        ## RULES

        - Always confirm before delegating to another department
        - Keep the founder informed about task progress
        - Write concise, actionable briefings
        - When delegating, include a clear goal and expected output
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::u8dm51ufqh4'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::4namhgvg44c':
    type: bot
    data:
      name: Operations Bot
      description: |
        Handles shell execution, data processing, file management, and
        infrastructure tasks in an isolated sandbox environment.
      backstory: |-
        You are the Operations Bot for an AI-native company. You handle
        all infrastructure, scripting, and data processing tasks.

        ## YOUR ROLE

        - Execute shell commands and scripts in a secure sandbox
        - Process and transform data files (CSV, JSON, text)
        - Manage files in the shared company workspace
        - Produce clean outputs that other departments can consume

        ## WORKSPACE

        You share a workspace with other departments. Organize your
        outputs cleanly:
        - /ops/scripts/ for reusable scripts
        - /ops/outputs/ for processed data
        - /ops/logs/ for execution logs

        ## RULES

        - Always log what you executed and the result
        - Write outputs to the workspace so other bots can read them
        - If a task is ambiguous, write your interpretation to the
          workspace before executing
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::15ns7v2rg2'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::hi8vrpsg09s':
    type: bot
    data:
      name: Research Analyst
      description: |
        Gathers information, analyzes competitors, produces structured
        research reports, and writes findings to the shared workspace.
      backstory: |-
        You are the Research Analyst for an AI-native company. You handle
        all information gathering, competitive analysis, and report
        writing.

        ## YOUR ROLE

        - Research markets, competitors, and trends
        - Fetch and summarize web pages and articles
        - Produce structured reports with sources
        - Write findings to the shared workspace for other departments

        ## WORKSPACE

        Organize your outputs:
        - /research/reports/ for finished reports
        - /research/notes/ for raw notes and drafts
        - /research/competitors/ for competitive intelligence

        ## REPORT FORMAT

        Always structure reports with:
        1. Executive summary (3-5 sentences)
        2. Key findings (bulleted list)
        3. Supporting details
        4. Sources
        5. Recommended actions

        ## RULES

        - Cite sources for every claim
        - Distinguish between facts and speculation
        - Write reports that a non-expert can understand
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::cg786nkb9rg'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::tb2llt1evpc':
    type: bot
    data:
      name: Customer Liaison
      description: |
        Manages outreach drafts, follow-up scheduling, customer notes,
        and relationship tracking in the shared workspace.
      backstory: |-
        You are the Customer Liaison for an AI-native company. You handle
        all customer-facing communication preparation and relationship
        management.

        ## YOUR ROLE

        - Draft outreach emails and messages for the founder to review
        - Track customer interactions and follow-up dates
        - Maintain a customer relationship log
        - Prepare talking points for meetings

        ## WORKSPACE

        Organize your outputs:
        - /customers/contacts.md for the master contact list
        - /customers/outreach/ for draft messages
        - /customers/notes/ for meeting notes and interaction logs
        - /customers/follow-ups.md for upcoming follow-up dates

        ## OUTREACH DRAFT FORMAT

        Every draft should include:
        1. Recipient name and context
        2. Purpose of the message
        3. Draft body text
        4. Suggested follow-up date

        ## RULES

        - Never send messages directly - always write drafts for review
        - Include context about the relationship history
        - Flag high-priority follow-ups clearly
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::jgkpov99l1g'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#skillset:::u8dm51ufqh4':
    type: skillset
    data:
      name: Executive Toolkit
      description: Scheduling, delegation, task management, and workspace access
      visibility: private
      meta: null
  '#skillset:::15ns7v2rg2':
    type: skillset
    data:
      name: Operations Toolkit
      description: Shell execution, file management, and data processing tools
      visibility: private
      meta: null
  '#skillset:::cg786nkb9rg':
    type: skillset
    data:
      name: Research Toolkit
      description: Web fetching, workspace access, and report writing tools
      visibility: private
      meta: null
  '#skillset:::jgkpov99l1g':
    type: skillset
    data:
      name: Customer Toolkit
      description: Workspace access for outreach drafts, contact management, and follow-up tracking
      visibility: private
      meta: null
  '#space:::a8qirqqk26g':
    type: space
    data:
      name: Company Workspace
      description: |
        Shared workspace for all company departments. Store priorities,
        briefings, research reports, outreach drafts, and operational
        artifacts here.
      visibility: private
      meta: null
  '#ability:::s2js4om7tg8':
    type: ability
    data:
      skillsetId: '#skillset:::u8dm51ufqh4'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Read Workspace
      description: Read files from the shared company workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::cc1okl5u4a8':
    type: ability
    data:
      skillsetId: '#skillset:::u8dm51ufqh4'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Write Workspace
      description: Write files to the shared company workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::jpgvedojs74':
    type: ability
    data:
      skillsetId: '#skillset:::u8dm51ufqh4'
      name: List Departments
      description: List all department bots available in this blueprint
      instruction: |-
        template: blueprint/resource/list
        parameters:
          type: bot
      meta: null
  '#ability:::kgruuc1kkvo':
    type: ability
    data:
      skillsetId: '#skillset:::u8dm51ufqh4'
      name: Assign Task
      description: Create a background task assigned to a specific department bot
      instruction: |-
        template: task/create[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::rkel7c2h9t8':
    type: ability
    data:
      skillsetId: '#skillset:::u8dm51ufqh4'
      name: List Tasks
      description: List background tasks, optionally filtered by department bot
      instruction: |-
        template: task/list[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::vuvonrdkh6':
    type: ability
    data:
      skillsetId: '#skillset:::u8dm51ufqh4'
      name: Get Task Details
      description: Fetch the full details and output of a specific task
      instruction: |-
        template: task/fetch[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::sn7k0ud6mi8':
    type: ability
    data:
      skillsetId: '#skillset:::u8dm51ufqh4'
      name: Cancel Task
      description: Cancel a background task that is no longer needed
      instruction: |-
        template: task/delete[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::dd6o2744m2s':
    type: ability
    data:
      skillsetId: '#skillset:::15ns7v2rg2'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Execute Command
      description: Run shell commands in the sandbox environment
      instruction: |-
        template: shell/exec
        parameters: {}
      meta: null
  '#ability:::vh6ae4cteqs':
    type: ability
    data:
      skillsetId: '#skillset:::15ns7v2rg2'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Read File
      description: Read files from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::7scd18tgo7c':
    type: ability
    data:
      skillsetId: '#skillset:::15ns7v2rg2'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Write File
      description: Write files to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::hklqgtlsnug':
    type: ability
    data:
      skillsetId: '#skillset:::cg786nkb9rg'
      name: Fetch Web Page
      description: Fetch and extract content from a web page for research
      instruction: |-
        template: fetch/structured
        parameters: {}
      meta: null
  '#ability:::uaqc92ls5ek':
    type: ability
    data:
      skillsetId: '#skillset:::cg786nkb9rg'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Read Workspace
      description: Read research notes and reports from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::1ic56bd1nu4':
    type: ability
    data:
      skillsetId: '#skillset:::cg786nkb9rg'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Write Workspace
      description: Write research reports and notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::sfc5gqvmb7g':
    type: ability
    data:
      skillsetId: '#skillset:::jgkpov99l1g'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Read Workspace
      description: Read customer notes and contact lists from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::v5ii0f2lsuc':
    type: ability
    data:
      skillsetId: '#skillset:::jgkpov99l1g'
      linkedSpaceId: '#space:::a8qirqqk26g'
      name: Write Workspace
      description: Write outreach drafts and customer notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
positions:
  '#bot:::cltg7tl2cfg':
    x: 0
    'y': 165
  '#bot:::4namhgvg44c':
    x: 0
    'y': 870
  '#bot:::hi8vrpsg09s':
    x: 0
    'y': 1470
  '#bot:::tb2llt1evpc':
    x: 0
    'y': 2070
  '#skillset:::u8dm51ufqh4':
    x: 250
    'y': 165
  '#skillset:::15ns7v2rg2':
    x: 250
    'y': 870
  '#skillset:::cg786nkb9rg':
    x: 250
    'y': 1470
  '#skillset:::jgkpov99l1g':
    x: 250
    'y': 2070
  '#space:::a8qirqqk26g':
    x: 810
    'y': 1140
  '#ability:::s2js4om7tg8':
    x: 450
    'y': 0
  '#ability:::cc1okl5u4a8':
    x: 450
    'y': 180
  '#ability:::jpgvedojs74':
    x: 450
    'y': 360
  '#ability:::kgruuc1kkvo':
    x: 450
    'y': 540
  '#ability:::rkel7c2h9t8':
    x: 810
    'y': 0
  '#ability:::vuvonrdkh6':
    x: 810
    'y': 180
  '#ability:::sn7k0ud6mi8':
    x: 810
    'y': 360
  '#ability:::dd6o2744m2s':
    x: 450
    'y': 780
  '#ability:::vh6ae4cteqs':
    x: 450
    'y': 960
  '#ability:::7scd18tgo7c':
    x: 450
    'y': 1140
  '#ability:::hklqgtlsnug':
    x: 450
    'y': 1380
  '#ability:::uaqc92ls5ek':
    x: 450
    'y': 1560
  '#ability:::1ic56bd1nu4':
    x: 450
    'y': 1740
  '#ability:::sfc5gqvmb7g':
    x: 450
    'y': 1980
  '#ability:::v5ii0f2lsuc':
    x: 450
    'y': 2160
notes: {}
images: {}
frames: {}
tools: {}

The Executive Assistant now has five new abilities:

  • List Departments - discovers available department bots in the blueprint
  • Assign Task - creates a background task assigned to a specific bot
  • List Tasks - checks the status of outstanding work
  • Get Task Details - fetches the full output of a completed task
  • Cancel Task - removes a task that is no longer needed

When you tell the Executive Assistant "Ask the Research Analyst to write a report on competitor pricing", it will create a background task for the Research Bot. The Research Bot processes the task independently, writes results to the workspace, and the Executive Assistant can check on progress later.

Step 6: Connect Everything to Telegram

Now wire each department bot to its own Telegram bot. This is what makes the company accessible from your phone.

Add four Telegram integrations to the blueprint:

resources:
  '#bot:::15vbisngdrg':
    type: bot
    data:
      name: Executive Assistant
      description: |
        Central coordinator for the AI-native company. Handles scheduling,
        priorities, delegation, and daily briefings via Telegram.
      backstory: |-
        You are the Executive Assistant for an AI-native company that
        operates entirely through Telegram. You are the primary point of
        contact for the founder.

        ## YOUR ROLE

        - Manage the founder's priorities and schedule
        - Delegate work to other department bots when appropriate
        - Provide daily briefings and status updates
        - Keep the shared workspace organized

        ## WORKSPACE

        You have access to a shared company workspace. Use it to:
        - Maintain a running priorities file at /priorities.md
        - Store daily briefings at /briefings/YYYY-MM-DD.md
        - Read outputs from other departments

        ## DELEGATION

        You can delegate work to any department using background tasks:
        1. List available department bots with "List Departments"
        2. Create a task with "Assign Task" specifying the department bot
        3. Check progress with "List Tasks" and "Get Task Details"
        4. Cancel or update tasks as needed

        Departments available:
        - Operations Bot: infrastructure, scripts, data processing
        - Research Analyst: market research, competitor analysis, reports
        - Customer Liaison: outreach, follow-ups, CRM updates

        ## RULES

        - Always confirm before delegating to another department
        - Keep the founder informed about task progress
        - Write concise, actionable briefings
        - When delegating, include a clear goal and expected output
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::uf15tajbgmc'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::dddr7376sk4':
    type: bot
    data:
      name: Operations Bot
      description: |
        Handles shell execution, data processing, file management, and
        infrastructure tasks in an isolated sandbox environment.
      backstory: |-
        You are the Operations Bot for an AI-native company. You handle
        all infrastructure, scripting, and data processing tasks.

        ## YOUR ROLE

        - Execute shell commands and scripts in a secure sandbox
        - Process and transform data files (CSV, JSON, text)
        - Manage files in the shared company workspace
        - Produce clean outputs that other departments can consume

        ## WORKSPACE

        You share a workspace with other departments. Organize your
        outputs cleanly:
        - /ops/scripts/ for reusable scripts
        - /ops/outputs/ for processed data
        - /ops/logs/ for execution logs

        ## RULES

        - Always log what you executed and the result
        - Write outputs to the workspace so other bots can read them
        - If a task is ambiguous, write your interpretation to the
          workspace before executing
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::btsfg5th758'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::aoa48psevts':
    type: bot
    data:
      name: Research Analyst
      description: |
        Gathers information, analyzes competitors, produces structured
        research reports, and writes findings to the shared workspace.
      backstory: |-
        You are the Research Analyst for an AI-native company. You handle
        all information gathering, competitive analysis, and report
        writing.

        ## YOUR ROLE

        - Research markets, competitors, and trends
        - Fetch and summarize web pages and articles
        - Produce structured reports with sources
        - Write findings to the shared workspace for other departments

        ## WORKSPACE

        Organize your outputs:
        - /research/reports/ for finished reports
        - /research/notes/ for raw notes and drafts
        - /research/competitors/ for competitive intelligence

        ## REPORT FORMAT

        Always structure reports with:
        1. Executive summary (3-5 sentences)
        2. Key findings (bulleted list)
        3. Supporting details
        4. Sources
        5. Recommended actions

        ## RULES

        - Cite sources for every claim
        - Distinguish between facts and speculation
        - Write reports that a non-expert can understand
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::v1hjmpl3grs'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::k3o87eleues':
    type: bot
    data:
      name: Customer Liaison
      description: |
        Manages outreach drafts, follow-up scheduling, customer notes,
        and relationship tracking in the shared workspace.
      backstory: |-
        You are the Customer Liaison for an AI-native company. You handle
        all customer-facing communication preparation and relationship
        management.

        ## YOUR ROLE

        - Draft outreach emails and messages for the founder to review
        - Track customer interactions and follow-up dates
        - Maintain a customer relationship log
        - Prepare talking points for meetings

        ## WORKSPACE

        Organize your outputs:
        - /customers/contacts.md for the master contact list
        - /customers/outreach/ for draft messages
        - /customers/notes/ for meeting notes and interaction logs
        - /customers/follow-ups.md for upcoming follow-up dates

        ## OUTREACH DRAFT FORMAT

        Every draft should include:
        1. Recipient name and context
        2. Purpose of the message
        3. Draft body text
        4. Suggested follow-up date

        ## RULES

        - Never send messages directly - always write drafts for review
        - Include context about the relationship history
        - Flag high-priority follow-ups clearly
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::g9k2kann11o'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#skillset:::uf15tajbgmc':
    type: skillset
    data:
      name: Executive Toolkit
      description: Scheduling, delegation, task management, and workspace access
      visibility: private
      meta: null
  '#skillset:::btsfg5th758':
    type: skillset
    data:
      name: Operations Toolkit
      description: Shell execution, file management, and data processing tools
      visibility: private
      meta: null
  '#skillset:::v1hjmpl3grs':
    type: skillset
    data:
      name: Research Toolkit
      description: Web fetching, workspace access, and report writing tools
      visibility: private
      meta: null
  '#skillset:::g9k2kann11o':
    type: skillset
    data:
      name: Customer Toolkit
      description: Workspace access for outreach drafts, contact management, and follow-up tracking
      visibility: private
      meta: null
  '#space:::3nnvi9u9c7':
    type: space
    data:
      name: Company Workspace
      description: |
        Shared workspace for all company departments. Store priorities,
        briefings, research reports, outreach drafts, and operational
        artifacts here.
      visibility: private
      meta: null
  '#ability:::n50v0f3jbt8':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Read Workspace
      description: Read files from the shared company workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::o97u2jgap0o':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Write Workspace
      description: Write files to the shared company workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::plucf27cn9':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: List Departments
      description: List all department bots available in this blueprint
      instruction: |-
        template: blueprint/resource/list
        parameters:
          type: bot
      meta: null
  '#ability:::r3l9p93mano':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: Assign Task
      description: Create a background task assigned to a specific department bot
      instruction: |-
        template: task/create[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::ktr08a0fhc4':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: List Tasks
      description: List background tasks, optionally filtered by department bot
      instruction: |-
        template: task/list[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::mia0vcueg1k':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: Get Task Details
      description: Fetch the full details and output of a specific task
      instruction: |-
        template: task/fetch[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::b76at6kidk':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: Cancel Task
      description: Cancel a background task that is no longer needed
      instruction: |-
        template: task/delete[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::rjfcosb404g':
    type: ability
    data:
      skillsetId: '#skillset:::btsfg5th758'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Execute Command
      description: Run shell commands in the sandbox environment
      instruction: |-
        template: shell/exec
        parameters: {}
      meta: null
  '#ability:::elerf9minrc':
    type: ability
    data:
      skillsetId: '#skillset:::btsfg5th758'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Read File
      description: Read files from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::vi6cem2irbc':
    type: ability
    data:
      skillsetId: '#skillset:::btsfg5th758'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Write File
      description: Write files to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::3s5ipk5onfk':
    type: ability
    data:
      skillsetId: '#skillset:::v1hjmpl3grs'
      name: Fetch Web Page
      description: Fetch and extract content from a web page for research
      instruction: |-
        template: fetch/structured
        parameters: {}
      meta: null
  '#ability:::lqqrtoql9qo':
    type: ability
    data:
      skillsetId: '#skillset:::v1hjmpl3grs'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Read Workspace
      description: Read research notes and reports from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::ddsi9i9adco':
    type: ability
    data:
      skillsetId: '#skillset:::v1hjmpl3grs'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Write Workspace
      description: Write research reports and notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::fpc8evlhvs8':
    type: ability
    data:
      skillsetId: '#skillset:::g9k2kann11o'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Read Workspace
      description: Read customer notes and contact lists from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::j1ar1r7l068':
    type: ability
    data:
      skillsetId: '#skillset:::g9k2kann11o'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Write Workspace
      description: Write outreach drafts and customer notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#telegramIntegration:::uriknhugbp4':
    type: telegramIntegration
    data:
      name: Executive Assistant (Telegram)
      description: Access the Executive Assistant from Telegram
      botId: '#bot:::15vbisngdrg'
      botToken: ''
      allowFrom: |-
        @123456789
        @987654321
      contactCollection: false
      sessionDuration: 0
      attachments: true
  '#telegramIntegration:::prc8po41o7s':
    type: telegramIntegration
    data:
      name: Operations Bot (Telegram)
      description: Access the Operations Bot from Telegram
      botId: '#bot:::dddr7376sk4'
      botToken: ''
      allowFrom: |-
        @123456789
        @987654321
      contactCollection: false
      sessionDuration: 0
      attachments: true
  '#telegramIntegration:::hb5mal9fpt8':
    type: telegramIntegration
    data:
      name: Research Analyst (Telegram)
      description: Access the Research Analyst from Telegram
      botId: '#bot:::aoa48psevts'
      botToken: ''
      allowFrom: |-
        @123456789
        @987654321
      contactCollection: false
      sessionDuration: 0
      attachments: true
  '#telegramIntegration:::20p4va42n4o':
    type: telegramIntegration
    data:
      name: Customer Liaison (Telegram)
      description: Access the Customer Liaison from Telegram
      botId: '#bot:::k3o87eleues'
      botToken: ''
      allowFrom: |-
        @123456789
        @987654321
      contactCollection: false
      sessionDuration: 0
      attachments: true
positions:
  '#bot:::15vbisngdrg':
    x: 195
    'y': 165
  '#bot:::dddr7376sk4':
    x: 195
    'y': 870
  '#bot:::aoa48psevts':
    x: 195
    'y': 1470
  '#bot:::k3o87eleues':
    x: 195
    'y': 2070
  '#skillset:::uf15tajbgmc':
    x: 450
    'y': 165
  '#skillset:::btsfg5th758':
    x: 450
    'y': 870
  '#skillset:::v1hjmpl3grs':
    x: 450
    'y': 1470
  '#skillset:::g9k2kann11o':
    x: 450
    'y': 2070
  '#space:::3nnvi9u9c7':
    x: 1020
    'y': 1140
  '#ability:::n50v0f3jbt8':
    x: 660
    'y': 0
  '#ability:::o97u2jgap0o':
    x: 660
    'y': 180
  '#ability:::plucf27cn9':
    x: 660
    'y': 360
  '#ability:::r3l9p93mano':
    x: 660
    'y': 540
  '#ability:::ktr08a0fhc4':
    x: 1020
    'y': 0
  '#ability:::mia0vcueg1k':
    x: 1020
    'y': 180
  '#ability:::b76at6kidk':
    x: 1020
    'y': 360
  '#ability:::rjfcosb404g':
    x: 660
    'y': 780
  '#ability:::elerf9minrc':
    x: 660
    'y': 960
  '#ability:::vi6cem2irbc':
    x: 660
    'y': 1140
  '#ability:::3s5ipk5onfk':
    x: 660
    'y': 1380
  '#ability:::lqqrtoql9qo':
    x: 660
    'y': 1560
  '#ability:::ddsi9i9adco':
    x: 660
    'y': 1740
  '#ability:::fpc8evlhvs8':
    x: 660
    'y': 1980
  '#ability:::j1ar1r7l068':
    x: 660
    'y': 2160
  '#telegramIntegration:::uriknhugbp4':
    x: -120
    'y': 165
  '#telegramIntegration:::prc8po41o7s':
    x: -120
    'y': 870
  '#telegramIntegration:::hb5mal9fpt8':
    x: -120
    'y': 1470
  '#telegramIntegration:::20p4va42n4o':
    x: -120
    'y': 2070
notes: {}
images: {}
frames: {}
tools: {}

For each Telegram integration, paste the bot token you created in BotFather into the botToken field. Leave it empty in the blueprint code and fill it in through the Blueprint Designer UI after deploying.

Deploy the blueprint by clicking Build in the designer. Each Telegram integration will start listening for messages once the token is set.

Step 7: Restrict Access to Authorized Users

This is the most important security step. By default, anyone who finds your Telegram bot can message it. For a company that runs real operations, you need to lock each bot down to authorized users only.

Each Telegram integration has an allowFrom field that controls exactly who can interact with the bot. This is enforced at the platform level before the AI even sees the message - unauthorized users are rejected outright.

How allowFrom Works

The allowFrom field accepts a newline-separated or comma-separated list of entries. Messages from anyone not on the list are silently dropped.

Supported formats:

FormatExampleMatches
**Everyone (wildcard)
@userId@123456789A specific Telegram user by numeric ID (most reliable)
@username@bobA specific Telegram user by username (advisory - usernames can change)
#chatId#-1001234567A specific group or channel by chat ID
Raw positive integer123456789Treated as a user ID
Raw negative integer-1001234567Treated as a chat ID

Important: If allowFrom is empty, all messages are denied. You must either list specific users or use * to allow everyone. For a company setup, always list specific user IDs.

Tip: Find your Telegram user ID by messaging @userinfobot on Telegram. Use numeric IDs rather than usernames for security-sensitive restrictions, since usernames can be changed or transferred.

Configure Access for Each Department

  1. Open each Telegram integration in the Blueprint Designer.
  2. In the allowFrom field, enter the Telegram user IDs of people who should have access to that department.
  3. You can give different people access to different departments.

For example, you might restrict the Operations Bot to the founder and the operations lead, while giving the entire team access to the Research Analyst:

DepartmentWho has accessallowFrom value
Executive AssistantFounder, co-founder@123456789, @987654321
Operations BotFounder, ops lead@123456789, @555555555
Research AnalystEntire team@123456789, @987654321, @555555555, @444444444
Customer LiaisonFounder, sales lead@123456789, @666666666

This is enforced at the integration layer, not by the AI model. There is no way to bypass it through prompt injection or conversation tricks - the message never reaches the bot if the sender is not on the list.

Combining with Contact Collection

For additional visibility, enable Contact Collection alongside allowFrom. This creates a contact record in your ChatBotKit dashboard for every user who messages the bot, giving you an audit trail of who is interacting with each department:

  1. Set contactCollection: true on each Telegram integration.
  2. Review contacts in the ChatBotKit dashboard under Contacts.

Contact Collection is complementary to allowFrom - it does not replace it. Even with contact collection enabled, unauthorized users are still blocked by the allowFrom list.

Step 8: Add a Daily Briefing Trigger

The final piece is automation. Add a trigger that wakes the Executive Assistant every morning to prepare a daily briefing by reviewing the workspace.

resources:
  '#bot:::15vbisngdrg':
    type: bot
    data:
      name: Executive Assistant
      description: |
        Central coordinator for the AI-native company. Handles scheduling,
        priorities, delegation, and daily briefings via Telegram.
      backstory: |-
        You are the Executive Assistant for an AI-native company that
        operates entirely through Telegram. You are the primary point of
        contact for the founder.

        ## YOUR ROLE

        - Manage the founder's priorities and schedule
        - Delegate work to other department bots when appropriate
        - Provide daily briefings and status updates
        - Keep the shared workspace organized

        ## WORKSPACE

        You have access to a shared company workspace. Use it to:
        - Maintain a running priorities file at /priorities.md
        - Store daily briefings at /briefings/YYYY-MM-DD.md
        - Read outputs from other departments

        ## DELEGATION

        You can delegate work to any department using background tasks:
        1. List available department bots with "List Departments"
        2. Create a task with "Assign Task" specifying the department bot
        3. Check progress with "List Tasks" and "Get Task Details"
        4. Cancel or update tasks as needed

        Departments available:
        - Operations Bot: infrastructure, scripts, data processing
        - Research Analyst: market research, competitor analysis, reports
        - Customer Liaison: outreach, follow-ups, CRM updates

        ## RULES

        - Always confirm before delegating to another department
        - Keep the founder informed about task progress
        - Write concise, actionable briefings
        - When delegating, include a clear goal and expected output
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::uf15tajbgmc'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::dddr7376sk4':
    type: bot
    data:
      name: Operations Bot
      description: |
        Handles shell execution, data processing, file management, and
        infrastructure tasks in an isolated sandbox environment.
      backstory: |-
        You are the Operations Bot for an AI-native company. You handle
        all infrastructure, scripting, and data processing tasks.

        ## YOUR ROLE

        - Execute shell commands and scripts in a secure sandbox
        - Process and transform data files (CSV, JSON, text)
        - Manage files in the shared company workspace
        - Produce clean outputs that other departments can consume

        ## WORKSPACE

        You share a workspace with other departments. Organize your
        outputs cleanly:
        - /ops/scripts/ for reusable scripts
        - /ops/outputs/ for processed data
        - /ops/logs/ for execution logs

        ## RULES

        - Always log what you executed and the result
        - Write outputs to the workspace so other bots can read them
        - If a task is ambiguous, write your interpretation to the
          workspace before executing
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::btsfg5th758'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::aoa48psevts':
    type: bot
    data:
      name: Research Analyst
      description: |
        Gathers information, analyzes competitors, produces structured
        research reports, and writes findings to the shared workspace.
      backstory: |-
        You are the Research Analyst for an AI-native company. You handle
        all information gathering, competitive analysis, and report
        writing.

        ## YOUR ROLE

        - Research markets, competitors, and trends
        - Fetch and summarize web pages and articles
        - Produce structured reports with sources
        - Write findings to the shared workspace for other departments

        ## WORKSPACE

        Organize your outputs:
        - /research/reports/ for finished reports
        - /research/notes/ for raw notes and drafts
        - /research/competitors/ for competitive intelligence

        ## REPORT FORMAT

        Always structure reports with:
        1. Executive summary (3-5 sentences)
        2. Key findings (bulleted list)
        3. Supporting details
        4. Sources
        5. Recommended actions

        ## RULES

        - Cite sources for every claim
        - Distinguish between facts and speculation
        - Write reports that a non-expert can understand
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::v1hjmpl3grs'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#bot:::k3o87eleues':
    type: bot
    data:
      name: Customer Liaison
      description: |
        Manages outreach drafts, follow-up scheduling, customer notes,
        and relationship tracking in the shared workspace.
      backstory: |-
        You are the Customer Liaison for an AI-native company. You handle
        all customer-facing communication preparation and relationship
        management.

        ## YOUR ROLE

        - Draft outreach emails and messages for the founder to review
        - Track customer interactions and follow-up dates
        - Maintain a customer relationship log
        - Prepare talking points for meetings

        ## WORKSPACE

        Organize your outputs:
        - /customers/contacts.md for the master contact list
        - /customers/outreach/ for draft messages
        - /customers/notes/ for meeting notes and interaction logs
        - /customers/follow-ups.md for upcoming follow-up dates

        ## OUTREACH DRAFT FORMAT

        Every draft should include:
        1. Recipient name and context
        2. Purpose of the message
        3. Draft body text
        4. Suggested follow-up date

        ## RULES

        - Never send messages directly - always write drafts for review
        - Include context about the relationship history
        - Flag high-priority follow-ups clearly
        - The current date is ${EARTH_DATE}
      model: claude-4.6-sonnet
      skillsetId: '#skillset:::g9k2kann11o'
      privacy: false
      moderation: false
      visibility: private
      meta: null
  '#skillset:::uf15tajbgmc':
    type: skillset
    data:
      name: Executive Toolkit
      description: Scheduling, delegation, task management, and workspace access
      visibility: private
      meta: null
  '#skillset:::btsfg5th758':
    type: skillset
    data:
      name: Operations Toolkit
      description: Shell execution, file management, and data processing tools
      visibility: private
      meta: null
  '#skillset:::v1hjmpl3grs':
    type: skillset
    data:
      name: Research Toolkit
      description: Web fetching, workspace access, and report writing tools
      visibility: private
      meta: null
  '#skillset:::g9k2kann11o':
    type: skillset
    data:
      name: Customer Toolkit
      description: Workspace access for outreach drafts, contact management, and follow-up tracking
      visibility: private
      meta: null
  '#space:::3nnvi9u9c7':
    type: space
    data:
      name: Company Workspace
      description: |
        Shared workspace for all company departments. Store priorities,
        briefings, research reports, outreach drafts, and operational
        artifacts here.
      visibility: private
      meta: null
  '#ability:::n50v0f3jbt8':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Read Workspace
      description: Read files from the shared company workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::o97u2jgap0o':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Write Workspace
      description: Write files to the shared company workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::plucf27cn9':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: List Departments
      description: List all department bots available in this blueprint
      instruction: |-
        template: blueprint/resource/list
        parameters:
          type: bot
      meta: null
  '#ability:::r3l9p93mano':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: Assign Task
      description: Create a background task assigned to a specific department bot
      instruction: |-
        template: task/create[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::ktr08a0fhc4':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: List Tasks
      description: List background tasks, optionally filtered by department bot
      instruction: |-
        template: task/list[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::mia0vcueg1k':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: Get Task Details
      description: Fetch the full details and output of a specific task
      instruction: |-
        template: task/fetch[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::b76at6kidk':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: Cancel Task
      description: Cancel a background task that is no longer needed
      instruction: |-
        template: task/delete[by-bot-id]
        parameters: {}
      meta: null
  '#ability:::rjfcosb404g':
    type: ability
    data:
      skillsetId: '#skillset:::btsfg5th758'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Execute Command
      description: Run shell commands in the sandbox environment
      instruction: |-
        template: shell/exec
        parameters: {}
      meta: null
  '#ability:::elerf9minrc':
    type: ability
    data:
      skillsetId: '#skillset:::btsfg5th758'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Read File
      description: Read files from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::vi6cem2irbc':
    type: ability
    data:
      skillsetId: '#skillset:::btsfg5th758'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Write File
      description: Write files to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::3s5ipk5onfk':
    type: ability
    data:
      skillsetId: '#skillset:::v1hjmpl3grs'
      name: Fetch Web Page
      description: Fetch and extract content from a web page for research
      instruction: |-
        template: fetch/structured
        parameters: {}
      meta: null
  '#ability:::lqqrtoql9qo':
    type: ability
    data:
      skillsetId: '#skillset:::v1hjmpl3grs'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Read Workspace
      description: Read research notes and reports from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::ddsi9i9adco':
    type: ability
    data:
      skillsetId: '#skillset:::v1hjmpl3grs'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Write Workspace
      description: Write research reports and notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#ability:::fpc8evlhvs8':
    type: ability
    data:
      skillsetId: '#skillset:::g9k2kann11o'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Read Workspace
      description: Read customer notes and contact lists from the shared workspace
      instruction: |-
        template: shell/read
        parameters: {}
      meta: null
  '#ability:::j1ar1r7l068':
    type: ability
    data:
      skillsetId: '#skillset:::g9k2kann11o'
      linkedSpaceId: '#space:::3nnvi9u9c7'
      name: Write Workspace
      description: Write outreach drafts and customer notes to the shared workspace
      instruction: |-
        template: shell/write
        parameters: {}
      meta: null
  '#telegramIntegration:::uriknhugbp4':
    type: telegramIntegration
    data:
      name: Executive Assistant (Telegram)
      description: Access the Executive Assistant from Telegram
      botId: '#bot:::15vbisngdrg'
      botToken: ''
      allowFrom: |-
        @123456789
        @987654321
      contactCollection: false
      sessionDuration: 0
      attachments: true
  '#telegramIntegration:::prc8po41o7s':
    type: telegramIntegration
    data:
      name: Operations Bot (Telegram)
      description: Access the Operations Bot from Telegram
      botId: '#bot:::dddr7376sk4'
      botToken: ''
      allowFrom: |-
        @123456789
        @987654321
      contactCollection: false
      sessionDuration: 0
      attachments: true
  '#telegramIntegration:::hb5mal9fpt8':
    type: telegramIntegration
    data:
      name: Research Analyst (Telegram)
      description: Access the Research Analyst from Telegram
      botId: '#bot:::aoa48psevts'
      botToken: ''
      allowFrom: |-
        @123456789
        @987654321
      contactCollection: false
      sessionDuration: 0
      attachments: true
  '#telegramIntegration:::20p4va42n4o':
    type: telegramIntegration
    data:
      name: Customer Liaison (Telegram)
      description: Access the Customer Liaison from Telegram
      botId: '#bot:::k3o87eleues'
      botToken: ''
      allowFrom: |-
        @123456789
        @987654321
      contactCollection: false
      sessionDuration: 0
      attachments: true
  '#triggerIntegration:::nj3d9gf0p5':
    type: triggerIntegration
    data:
      name: Daily Morning Briefing
      description: |
        Wakes the Executive Assistant every morning to review the workspace,
        check task status across all departments, and send a briefing to
        the founder on Telegram.

        Morning briefing run. Prepare the daily briefing for the founder.

        1. Read /priorities.md for the current priority list.

        2. List tasks across all department bots and check for:
           - Completed tasks since yesterday
           - Failed or stalled tasks
           - Tasks still in progress

        3. Read any new outputs from departments:
           - /research/reports/ for new research
           - /ops/outputs/ for operational results
           - /customers/follow-ups.md for due follow-ups

        4. Write a concise daily briefing to
           /briefings/${EARTH_DATE}.md with:
           - Priority status
           - Overnight department activity
           - Action items for today
           - Any alerts or blockers

        5. Send the briefing summary to the founder on Telegram.
      botId: '#bot:::15vbisngdrg'
      authenticate: true
      sessionDuration: 300000
      schedule: daily
      meta: null
  '#ability:::q8v2tnr7k4':
    type: ability
    data:
      skillsetId: '#skillset:::uf15tajbgmc'
      name: Notify on Telegram
      description: Send a proactive message to a Telegram chat
      instruction: |
        template: telegram/conversation/start[by-id]
        params:
          telegramIntegrationId: '#telegramIntegration:::uriknhugbp4'
          chatId: ''
          text: ''
          context: ''
      meta: null
positions:
  '#bot:::15vbisngdrg':
    x: 195
    'y': 165
  '#bot:::dddr7376sk4':
    x: 195
    'y': 870
  '#bot:::aoa48psevts':
    x: 195
    'y': 1470
  '#bot:::k3o87eleues':
    x: 195
    'y': 2070
  '#skillset:::uf15tajbgmc':
    x: 450
    'y': 165
  '#skillset:::btsfg5th758':
    x: 450
    'y': 870
  '#skillset:::v1hjmpl3grs':
    x: 450
    'y': 1470
  '#skillset:::g9k2kann11o':
    x: 450
    'y': 2070
  '#space:::3nnvi9u9c7':
    x: 1020
    'y': 1140
  '#ability:::n50v0f3jbt8':
    x: 660
    'y': 0
  '#ability:::o97u2jgap0o':
    x: 660
    'y': 180
  '#ability:::plucf27cn9':
    x: 660
    'y': 360
  '#ability:::r3l9p93mano':
    x: 660
    'y': 540
  '#ability:::ktr08a0fhc4':
    x: 1020
    'y': 0
  '#ability:::mia0vcueg1k':
    x: 1020
    'y': 180
  '#ability:::b76at6kidk':
    x: 1020
    'y': 360
  '#ability:::q8v2tnr7k4':
    x: 1020
    'y': 540
  '#ability:::rjfcosb404g':
    x: 660
    'y': 780
  '#ability:::elerf9minrc':
    x: 660
    'y': 960
  '#ability:::vi6cem2irbc':
    x: 660
    'y': 1140
  '#ability:::3s5ipk5onfk':
    x: 660
    'y': 1380
  '#ability:::lqqrtoql9qo':
    x: 660
    'y': 1560
  '#ability:::ddsi9i9adco':
    x: 660
    'y': 1740
  '#ability:::fpc8evlhvs8':
    x: 660
    'y': 1980
  '#ability:::j1ar1r7l068':
    x: 660
    'y': 2160
  '#telegramIntegration:::uriknhugbp4':
    x: -120
    'y': 165
  '#telegramIntegration:::prc8po41o7s':
    x: -120
    'y': 870
  '#telegramIntegration:::hb5mal9fpt8':
    x: -120
    'y': 1470
  '#telegramIntegration:::20p4va42n4o':
    x: -120
    'y': 2070
  '#triggerIntegration:::nj3d9gf0p5':
    x: -120
    'y': -120
notes: {}
images: {}
frames: {}
tools: {}

The trigger runs on a daily schedule. It wakes the Executive Assistant, which reviews the entire workspace, checks on department tasks, and sends you a Telegram summary. You wake up to a briefing instead of having to ask for one.

Tip: Change schedule: daily to schedule: quarterhourly if you want more frequent check-ins, or use a custom cron expression for a specific time.

Running Your AI Company

With everything deployed, here is how a typical workday looks:

Morning: The daily briefing trigger fires and sends you a summary on Telegram via the Executive Assistant bot.

Throughout the day: You message different department bots directly on Telegram:

  • To the Executive Assistant: "Delegate a competitor analysis on Acme Corp to the Research Analyst"
  • To the Operations Bot: "Write a Python script that converts the CSV in /ops/outputs/sales.csv to JSON"
  • To the Research Analyst: "What is the latest pricing for Acme Corp's enterprise plan?"
  • To the Customer Liaison: "Draft a follow-up email to John Smith about the partnership discussion"

Cross-department workflows: Tell the Executive Assistant to coordinate multi-step work:

  • "Ask the Research Analyst to analyze our top 5 competitors, then have the Customer Liaison draft outreach messages based on the findings"
  • "Have Operations process last month's sales data, then ask the Research Analyst to write a trends report"

Checking on delegated work:

  • To the Executive Assistant: "What tasks are running right now?"
  • To the Executive Assistant: "Show me the results of the competitor analysis"

Privilege Separation and Security Summary

The architecture enforces natural privilege boundaries:

BotCan Execute CodeCan Access WebCan DelegateCan Send Telegram
Executive AssistantNoNoYesYes (via trigger)
Operations BotYes (sandboxed)NoNoNo
Research AnalystNoYesNoNo
Customer LiaisonNoNoNoNo

This means:

  • The Executive Assistant can read the workspace and route tasks, but cannot run arbitrary code or fetch external URLs. If its conversation is compromised, the blast radius is limited to reading files and creating tasks.
  • The Operations Bot can run shell commands, but only in an isolated sandbox. It cannot access the web or delegate to other bots.
  • The Research Analyst can fetch web pages but cannot execute code. A malicious web page it reads cannot lead to code execution.
  • The Customer Liaison can only read and write files. It has the smallest attack surface of all.

Combined with Telegram access restrictions (Step 7), you have a multi-layered defense:

  1. Integration layer - The allowFrom field blocks unauthorized users before the AI sees the message
  2. Capability layer - Each bot only has the abilities it needs
  3. Sandbox layer - Shell execution runs in ephemeral, isolated containers
  4. Behavioral layer - Backstory instructions enforce operational rules

Troubleshooting

Bot does not respond on Telegram Verify the bot token is correctly entered in the Telegram integration. Check that the blueprint is deployed. Try sending /start to the bot.

Executive Assistant cannot find department bots The "List Departments" ability uses blueprint/resource/list. Ensure all four bots are part of the same blueprint.

Tasks are created but never complete Background tasks require the target bot to have the abilities needed to fulfill the request. Verify the department bot's skillset includes the necessary tools.

Daily briefing does not fire Check that the trigger integration is deployed and the schedule is set. The trigger needs authenticate: true and a valid botId pointing to the Executive Assistant.

Next Steps

  • Add more departments - Add a Finance Bot with Google Sheets abilities, or a Marketing Bot with social media tools.
  • Add proactive notifications - Give each department a Telegram notification ability so they can push updates to the founder without waiting to be asked.
  • Connect external services - Add Google Calendar to the Executive Assistant, Gmail to the Customer Liaison, or Stripe to a new Finance Bot using ability templates and OAuth secrets.
  • Add a heartbeat - Change the daily trigger to a more frequent heartbeat (every 15 minutes) for real-time operational awareness. See the Heartbeat Async Operator blueprint for the pattern.
  • Scale with sub-accounts - As the company grows, move departments into separate sub-accounts with shared resources. See Setting Up Resources in the Master Account and Using Them in Sub-Accounts.