← KensoCONTENT HISTORY

Update to Kenso

Snapshot Nov 3, 2026 · 12:13 UTC · version 1.3.4

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save Kenso and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Set up a workspace end to end - confirm intent, research the website, propose the company profile and logo, suggest teammate invites, explain the blocklist, integrations, and sending infrastructure with links, then hand off to campaign build. The canonical response to \"Please set up my workspace\". Works on every plan including Free.",
  "included_files": [
    {
      "relative_path": "references/company-context-guide.md",
      "size_in_bytes": 3487
    },
    {
      "relative_path": "references/setup-messages.md",
      "size_in_bytes": 2217
    }
  ],
  "name": "setup-workspace",
  "skill_md_contents": "---\nname: setup-workspace\ndescription: Set up a workspace end to end - confirm intent, research the website, propose the company profile and logo, suggest teammate invites, explain the blocklist, integrations, and sending infrastructure with links, then hand off to campaign build. The canonical response to \"Please set up my workspace\". Works on every plan including Free.\n---\n\n# Setup Workspace\n\nOnboarding for a new Kenso workspace. Works on every plan, including Free.\n\nTrigger on \"Please set up my workspace\", \"set up my workspace\", \"onboard me\", \"get me started\", or a fresh workspace with empty company settings.\n\n## Posture\n\n- Conversational and stepwise. Announce the steps once, then work through them in order.\n- **Approval gate:** every write is shown first and made only after the user says yes. Reads never need approval. One proposed write at a time.\n- Never abort the whole setup because one step failed. Mark it skipped and keep going.\n\nSteps to announce:\n\n1. Confirm intent and workspace\n2. Research the website\n3. Company profile and logo\n4. Invite teammates\n5. Blocklist and integrations\n6. Sending infrastructure\n7. Hand off to campaign build\n\n## Tools\n\nThe only call here is `list_workspaces`: the workspaces this user can access, with their ids. These tools cannot read or change the company profile, members, invitations or the plan, so every write in this flow is a page in the app. You draft and propose; the user saves:\n\n| Need | Page |\n|------|------|\n| Company name, website, LinkedIn page, company context, logo | https://app.ken.so/<workspace id>/settings/company |\n| Members, pending invitations, invites | https://app.ken.so/<workspace id>/settings/users |\n| Plan and credits | https://app.ken.so/<workspace id>/settings/billing |\n\nResearch the website with your own web browsing when you have it; otherwise ask the user to paste the text of their home and about pages. This skill never writes workspace files.\n\nNever buy domains or inboxes, never provision sending infrastructure, never create API keys or webhooks, and never handle credentials (API keys, OAuth tokens, passwords) in chat. Link to the page instead.\n\n**Role:** saving the company profile and inviting teammates need the workspace **admin** role. If the user is a member or view-only, draft anyway, explain what an admin needs to save, and skip the saves.\n\n## Step 1 - Confirm intent and workspace\n\nConfirm the user wants to set up this workspace now and say what you will cover.\n\nAsk once how much cold email they have run, and match your pace to the answer:\n\n- **New to it:** explain each step in a sentence before you act.\n- **Has run campaigns before:** skip the explanations and keep each step short.\n- **Expert:** offer to jump to the steps they want and skip the rest. The approval gate still applies to every write.\n\nResolve the workspace before any other call:\n\n1. Call `list_workspaces`. With one workspace, confirm its name with the user.\n2. With several, show them and ask which one to set up. Every app link below is for that workspace.\n\nThen ask for the plan, shown on https://app.ken.so/<workspace id>/settings/billing: Free, Platform (the self-serve plan), Core, VIP, or grandfathered Starter / Growth / Dfy. Platform, Core / VIP and the grandfathered paid plans count as paid. If the user does not know, continue with the plan **unknown**. Never block setup on it.\n\nOn Free, say early: \"You're on Free - the company profile, invites, and guidance all work. Sending domains and inboxes unlock when you upgrade.\"\n\n## Step 2 - Research the website\n\nAsk the user to open https://app.ken.so/<workspace id>/settings/company and tell you what is in Company Name, Website, LinkedIn Profile and Context, and whether a logo is set. Note which are empty.\n\nIf the website is empty, ask for it. Then run the research tool on it. Use only what the research returns plus what the user tells you:\n\n- Prefer facts from the site. A field the sources do not support stays empty - never invent customers, metrics, or product claims.\n- The company name is the real company name on the site, not a product name alone.\n- The LinkedIn company URL must be a `linkedin.com/company/...` link found on the site (usually the footer). A personal `linkedin.com/in/...` profile is not the company page.\n\nIf research fails or returns little, say so and draft from what the user tells you. For a deeper pass later, the `knowledge-setup` skill covers it.\n\n## Step 3 - Company profile and logo\n\nName, website, LinkedIn company URL, and company context are all part of setup, not extras. Every downstream campaign reads them for research, qualification, and personalization. Fill each one you can and ask once for each you cannot.\n\nDraft the company context with these exact section headers:\n\n**Company / What we do / Who we serve / Value prop & differentiation / Voice & tone / Don'ts (optional)**\n\nCondensed rules (full guide: `references/company-context-guide.md`):\n\n- Extract, don't invent\n- Campaign-agnostic: no filters, no numeric disqualifiers, no case studies, no offers or CTAs\n- First-person plural (\"we\")\n- Target 400-700 tokens\n\nShow the full proposed profile (name, website, LinkedIn URL, company context) and ask for approval or edits. On approval, the user saves it on https://app.ken.so/<workspace id>/settings/company: Company Name, Website, LinkedIn Profile, and the approved draft in Context, then Save.\n\nOnly those four fields belong to this step. Change only the fields that changed, and never clear one unless the user asked. After they save, say which of the four are set and which are still empty, and offer edits to the voice and tone.\n\n**Logo:** saving a Website or LinkedIn Profile on that page fetches the logo when it can. Otherwise the user uploads an image file in the logo section of the same page. Skippable.\n\n## Step 4 - Invite teammates\n\nAsk who is already in: members and pending invitations are on https://app.ken.so/<workspace id>/settings/users. Do not re-invite a member or someone with a pending invite; an expired invite can be sent again.\n\nSuggest inviting the people who will review campaigns or handle replies. Confirm the list of emails, then the user invites each one on that page: Invite Member, Email Address, Role, Send Invitation. Kenso sends the invitation email.\n\n- An admin can change roles later on the same page.\n- If the app says the seat limit is reached, relay its message and the upgrade path on https://app.ken.so/<workspace id>/settings/billing, then continue.\n- If the invite fails because the workspace is not linked to an organization, do **not** invite as a staff user and do not retry. Tell the user Kenso support needs to link the workspace to its owner's organization first (give them the workspace id and the owner's email), then invites will work.\n\nInvites are skippable.\n\n## Step 5 - Blocklist and integrations\n\nPure guidance. No writes. Message shapes: `references/setup-messages.md` (unbranded; fill its `<... link>` placeholders with the links in this file).\n\n**Blocklist (state the policy verbatim):**\n\n> Blocklist upload stays in-platform. Do not ask the user to paste their client list or upload a CSV into this conversation - guide them to the blocklist page instead.\n\nExplain that the blocklist keeps current clients, partners, and anyone they cannot contact from ever getting cold email, and that they upload or maintain it themselves at https://app.ken.so/<workspace id>/settings/blocklist. Never ingest a client list, never solicit a paste, and never add entries for them.\n\n**Integrations:** optional and low pressure. Connect when ready at https://app.ken.so/<workspace id>/settings/integrations:\n\n- CRM sync: https://app.ken.so/<workspace id>/settings/integrations/crm\n- Calendar: https://app.ken.so/<workspace id>/settings/integrations/calendar\n- LinkedIn accounts connect from https://app.ken.so/<workspace id>/delivery?tab=linkedinAccounts\n- API keys, when they need them: https://app.ken.so/<workspace id>/settings/integrations/api-keys\n\nOAuth stays in the browser. Never claim setup connected anything.\n\n## Step 6 - Sending infrastructure\n\nExplain, then link. Never buy, import, or provision anything in this flow.\n\nCold email goes out from separate sending domains (never the main company domain) with a few inboxes on each. A Google or Microsoft inbox sends about 25 emails a day, so volume comes from several inboxes, and new inboxes warm up before they reach full volume.\n\nBranch on the Step 1 preflight:\n\n- **Free:** \"Paid plans unlock sending domains and inboxes. Upgrade anytime at https://app.ken.so/<workspace id>/settings/billing, then set them up on the domains and inboxes page.\" Do not surface any plan error to a Free user; this branch is the graceful path.\n- **Paid** (Platform, Core / VIP or a grandfathered paid plan): buy new sending domains, connect ones they own (BYOD), and see inboxes on the domains and inboxes page, https://app.ken.so/<workspace id>/delivery?tab=inboxes. Capacity is daily emails, so do not quote a mailbox count as an allowance.\n- **Unknown plan:** give the Free line and the domains and inboxes link in one sentence each.\n\nA paid user who wants help sizing and setting this up can load `infra-planning`, `domain-selection` or `connect-domains` with `load_ken_skill` later. The purchase and import happen in the app.\n\n## Step 7 - Hand off to campaign build\n\n1. Show the steps with **done** / **skipped** for each.\n2. Offer the first campaign: \"You're ready to build your first campaign.\" When they agree, create it as a Draft with `create_campaign` and send them to https://app.ken.so/<workspace id>/campaigns to build its audience and copy in Kenso. A Draft sends nothing until a person launches it.\n\n## Plan limits and errors\n\nPlan limits are information, not failure. When the app shows a plan limit (domains, inboxes, seats or AI credits), relay its message and the upgrade path on https://app.ken.so/<workspace id>/settings/billing as friendly next steps, and continue.\n\nIf `list_workspaces` fails, retry once, then continue with the workspace the user names. If a page refuses the user, that part is not available to their account: continue without it.\n\n## Free-plan success bar\n\nA Free user reaches the hand-off with the company profile and context drafted and saved in the app, the logo set (if they had one), invites sent within seats, blocklist and integrations guidance given, and an upgrade pointer for sending infrastructure, with zero error-shaped plan output.\n"
}

SHA-256 of public snapshot: adf5473a0a37a3670f205be004001d0e7ff5e6ac6f4d0733c3f36e2a20850c43