Help

Getting started guide

Help for this page

  • How do I connect Kennu to other tools (API, webhooks, AI assistants)?

    Owners and admins find everything under Organization → Developers: create API keys (full access or read only), add webhook endpoints, and see the log of API requests. The full reference is at kennu.io/docs/api.

    With the API your CRM or calendar tooling can create meetings, add attendees and content, send the briefing and see who read it. Webhooks tell your systems when that happens; deliveries are signed so you can verify them.

    AI assistants that support MCP (such as Claude) can use Kennu too — “who am I meeting tomorrow?” — through the MCP server with an API key. A read-only key lets an assistant read but not change anything.

All topics

  • What is Kennu?

    Kennu prepares meetings between organizations. Before the meeting, everyone gets a briefing: who will be in the room, what each organization does, and what the meeting is about.

    After the meeting you stay connected to the people you met. When someone changes roles or a team updates what it offers, you see it.

  • How does signing in work?

    Kennu has no passwords. Enter your email and we send you a sign-in link. The link works once and expires after one hour; you can open it on any device.

    No email? Check your spam folder, make sure the address is spelled correctly, and request a new link. New here? The same link creates your account.

  • How do I create a meeting?

    Open Meetings and choose New meeting. Add a title, date, time and purpose, pick colleagues, add external attendees by name and email, and choose the content that fits the conversation.

    Everyone in the meeting sees who will attend and the content you shared. You can edit or cancel the meeting at any time.

    Paste the meeting link (or the ready-made invitation text) into your Zoom, Google Meet or Teams invite. Everyone on the Kennu attendee list opens the briefing with it; anyone else can only request access.

  • How do templates work?

    A template is a set of content for a recurring type of meeting — for example an interview in HR or a partnership kickoff — plus a default duration and purpose. Create templates under Content → Templates; department members manage their department's templates.

    When you create a meeting, choose "Start from a template": its content, duration and purpose are preselected and you can still change everything. Templates point to modules, so briefings always show the latest version.

  • How do I plan a follow-up?

    On the meeting page, choose "Plan follow-up". The new meeting starts with the same attendees and content, one week later — adjust what you need.

    The briefing shows "Follow-up to …" with a link to the previous meeting, but only to people who attended it. New attendees see a normal briefing.

  • How do I know who has read the briefing?

    On your meeting page you see who opened the briefing and when — so you can skip the round of introductions with confidence.

    Send the briefing from the same page. Guests get a personal link; colleagues get a heads-up. Use Resend if someone can't find the email.

  • I got a meeting invite — what now?

    Open the link in the email. The first time, it signs you in and shows the briefing right away: who will be in the room and what the other side shares. Add your name and role so they know who you are.

    The link is personal. After the first use, or if you already have a Kennu account, you sign in with your email as usual. Guests never pay.

    Already on Kennu? New invitations also appear on your dashboard. The others only see your profile once you open the briefing.

  • How do I share my company's content in someone else's meeting?

    Context flows both ways: as a guest you can add your own organization's content — company overview, services, contacts — to the briefing you were invited to.

    Open the briefing and use “Share your side”: tick the modules you want to share and save. Everyone in the meeting sees them under your organization's name; you can change the selection at any time.

    Not on Kennu with your company yet? “Create organization” in the briefing sets it up in a minute and brings you right back. The organizer can't change what you share, and you can't change theirs.

  • Can I ask questions before a meeting?

    Yes. Every briefing has “Questions for the meeting”: add a question or a topic you'd like to cover, so everyone can prepare. All attendees see it — guests included.

    Organizers mark questions as covered, can remove them, and can switch questions off for a meeting on its page. They get at most one email a day about new questions.

    It's deliberately not a chat: questions are for preparing the meeting, not for discussing it in writing.

  • Why can't I open a meeting link someone forwarded?

    Meetings are private: only attendees can open them, even with the link. If you're not on the list, you can ask the organizer for access with a short note.

    The organizer approves or declines. You get an email either way; if approved, the briefing opens with your account.

  • What are connections?

    After a meeting has taken place, you're connected to the people from other organizations you met, and to those organizations. Colleagues from your own organization aren't connections — you find them under Organization.

    A connection shows what the meeting already showed you: the person's current profile, the meetings you had together, and the content their organization shared with you. Nothing else becomes visible.

    Mute a connection to stop update emails about it, or remove it to hide it. If you meet again in a later meeting, you're connected again.

  • How do updates from my connections work?

    When someone you're connected to changes their profile — a new role, new contact details — or their organization changes content it shared with you, Kennu shows it under “What's new” on Connections and on your dashboard.

    Only real changes count: confirming that content is “still correct” or fixing a typo twice in a row doesn't flood you. Opening a connection marks its updates as seen.

    You get at most one update email a day, never about muted connections. Switch update emails off in your profile, or with the unsubscribe link in any email.

  • Who can see a meeting?

    Only its attendees and the people who manage it (the organizer and your organization's owners and admins). Meetings are never searchable, and the meeting link alone grants no access.

    External attendees are stored as name and email only, until they join Kennu.

  • How do I set up my organization?

    Open Organization in the menu and create it with a name and website. You become its owner.

    Add departments (for example Legal or Sales) so each team can keep its own content, then invite colleagues and assign them a department.

  • How do I invite colleagues?

    Owners and admins invite colleagues by email under Organization. Each invite is personal: it only works for the address it was sent to and expires after 14 days.

    Roles: owners manage everything, admins manage members and all content, members maintain their own profile and their department's content. During early access, everyone can organize meetings.

  • Why add a backup owner?

    A backup owner is like two-factor authentication for your organization. If you're away, leave the company or lose access to your email, a second owner can still manage members, roles and content.

    You're asked for one when you create the organization; you can skip it and add one later under Organization → Invite colleagues, with the role Owner. Only owners can invite owners.

  • What do department managers do?

    Each department can have managers — at least two are recommended, so the department keeps running when one is away (like a backup owner, but for a team). Managers have equal rights.

    Managers invite colleagues into their department (optionally as managers too), add members without a department to it or remove them from it, and name or remove other managers. They also maintain the department's content and templates, like every member of the department.

    Owners and admins name the first manager: under Organization, invite someone with “Department manager” ticked, or use “Make manager” next to a member. Roles, departments themselves and removing people from the organization stay with owners and admins.

  • What is content and who maintains it?

    Content modules describe your organization: About us, Products & services, Contacts by topic, or anything custom. Each belongs to the whole company or to one department.

    Owners and admins can edit everything; department members edit their department's modules. Each module shows when it was last updated, so you can spot stale information before sharing it.

    You can attach PDF files and images (up to 10 per module, 10 MB each), for example a product sheet. Editable formats like Word or Excel aren't accepted, and files are always downloaded, never opened in the browser.

  • How do freshness reminders work?

    Content goes stale: people change roles, offerings change. Kennu reminds whoever looks after content when it hasn't been updated or checked for a while — by default every 6 months.

    Department managers set the interval for their department (3, 6 or 12 months, or no reminders) on the Content page; owners and admins set it for company-wide content. Departments without a manager are looked after by owners and admins.

    Nothing to change? Click “Still correct”: the content counts as checked, and your connections don't get an update. When picking content for a meeting, organizers see what's due and can ask for a review with one click.

    You get at most one reminder email a week, and you can switch it off in your profile. Your own profile asks “still correct?” every 6 months.

  • Who can see my profile?

    Only people you share a meeting with, and people you're connected to through a meeting. Your profile is never public or searchable.

    You maintain it once; every meeting shows the latest version. Your photo is stored privately and shown through short-lived links.

  • How do I change my photo or details?

    Open Profile in the menu. Change any field and select Save. To change your photo, select Change photo (JPG, PNG or WebP up to 2 MB) — it's saved right away.

    Name and role matter most: they're what people see first in a briefing.

  • What are signed-in devices?

    Devices shows every browser where your account is signed in, with an approximate location and when it was last active.

    Don't recognize one? Select Sign out next to it, or sign out all other devices at once. They're signed out immediately.

  • How do calendar and Zoom integrations work?

    Organizers can connect Google Calendar (including Google Meet), Microsoft Outlook (including Teams) or Zoom under Settings → Integrations.

    Every few minutes Kennu looks at meetings you organize in the next 60 days. A meeting with at least one person from outside your organization becomes a briefing draft, with the attendees, date and time. Meetings with colleagues only, recurring series and all-day events are skipped.

    Nobody hears from Kennu until you add content and send the briefing. Then the briefing link is added to the calendar event or the Zoom agenda, so everyone finds it where the meeting is.

    Until you send the briefing, the draft follows changes in your calendar (time, title, cancellation). Disconnect any time: Kennu deletes its stored access. Owners and admins see all connected accounts under Organization → Integrations.

  • How do I change the language?

    Use the language menu at the top of the page. When you're signed in, the choice is saved to your profile and also used for emails from Kennu.

    Kennu is available in English, Spanish, French and German.

  • What's in the activity log?

    Kennu records who did what and when: sign-ins, invites, role changes, content edits, meetings, briefings sent and opened, access requests and more. Entries can't be changed or deleted.

    Owners and admins see their organization's log under Organization → Activity, with filters for person, type, meeting and date. Organizers see each meeting's activity on its page. Everyone sees their own under Profile → Your activity, including who opened briefings they're part of.

    IP addresses are stored only for sign-ins and denied access attempts, and are never shown in the app. When someone deletes their account, their entries stay but no longer identify them.

  • What do the metrics show?

    Metrics (under Organization; owners and admins, and department managers for their own department) answer one question: do people read the briefing before the meeting? The read rate counts attendees who opened it before the meeting started, for colleagues and guests separately.

    You also see how many meetings had a briefing sent, the median time from sending to first opening, and how much of your content is up to date. Filter by period and department.

    Metrics are aggregated — they never show what one person did. Who opened a specific briefing is on that meeting's page.

  • How do I verify my company's domain?

    Under Organization → Domains, add your domain (e.g. company.com). Kennu shows a TXT record: add it at your domain provider, then click “Verify DNS record”. DNS changes can take a few minutes.

    Once verified, briefings show “Verified” next to your organization — guests know the content really comes from you. A domain can be verified by only one organization.

    Optionally, let people with an @company.com address join without an invite, or limit organization invites to your domain. Meeting guests are never affected.

  • What happens with my data?

    Your data is used to run Kennu, nothing else. There is no advertising, no tracking cookies and no session recording; page statistics are anonymous and cookieless.

    Important actions — like sign-ins and profile changes — are recorded in a security log; a view of your own account activity is coming. Delete your account at any time under Profile → Delete account; for a copy of your data, write to legal@kennu.io.

  • Do invited guests pay?

    No. People you invite to a meeting never pay — they sign up from the invite with just a name and a role.

    Kennu is free during early access. Later, only the people who organize meetings will need a paid seat.

Kennu API

The Kennu API lets your systems create meetings, add attendees and content, send briefings and see who has read them. Webhooks tell your systems when something happens; the MCP server lets AI assistants do the same on your behalf.

  • Base URL: https://dev.kennu.io/api/v1
  • JSON in, JSON out, UTF-8
  • Every request is authenticated with an API key of your organization

Quickstart

  1. In Kennu, open Organization → Developers → API keys (owners and admins) and create a key with Full access. Copy it — it's shown once.
  2. Create a meeting:
curl https://dev.kennu.io/api/v1/meetings \
  -H "Authorization: Bearer kn_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: crm-event-4711" \
  -d '{
    "title": "Partnership kickoff",
    "starts_at": "2026-11-03T15:00:00Z",
    "duration_minutes": 45,
    "purpose": "Agree on the pilot scope.",
    "attendees": [{ "email": "priya@brightwater.example", "name": "Priya Nair" }],
    "template_id": "4f1c..."
  }'
  1. Send the briefing: POST /api/v1/meetings/{id}/send. Put the briefing_url from the response into your calendar or video-call invite.

Authentication

Send your key in the Authorization header: Authorization: Bearer kn_live_.... Keys start with kn_live_ in production and kn_test_ elsewhere.

PermissionAllows
Full accessEverything below
Read onlyGET requests only

A key belongs to your organization, not to a person. Meetings created through the API are organized by organizer_email (a member who may organize meetings) or, if you leave it out, by the member who created the key. Revoke keys you no longer need under Developers → API keys.

Errors

Errors use HTTP status codes and a consistent body:

{ "error": { "type": "validation_error", "message": "starts_at: Invalid ISO datetime" } }
StatusTypeMeaning
401missing_api_key, invalid_api_keyNo key, or a revoked or unknown key
403insufficient_permission, not_an_organizerRead-only key, or the organizer may not organize
404not_foundNot in your organization
409meeting_cancelledThe meeting was cancelled
422validation_error, invalid_request, invalid_organizerThe request body isn't valid
429rate_limit_exceededSlow down (see below)
500internal_errorOur fault — try again

Rate limits

About 10 requests per second per key. Above that you get 429 with a Retry-After header.

Idempotency

Send an Idempotency-Key header with POST, PATCH and DELETE requests. Repeating a request with the same key within 24 hours returns the first response (with Idempotent-Replayed: true) instead of doing it twice — useful for retries.

Pagination

Lists return { "object": "list", "data": [...], "has_more": true }. Use ?limit=1..100 (default 20) and ?after=<id of the last item> for the next page.

Meetings

The meeting object

{
  "object": "meeting",
  "id": "8f0e...",
  "title": "Partnership kickoff",
  "starts_at": "2026-11-03T15:00:00+00:00",
  "duration_minutes": 45,
  "purpose": "Agree on the pilot scope.",
  "organizer": { "id": "5777...", "name": "Mara Lindqvist" },
  "briefing_url": "https://dev.kennu.io/m/kIR3P-...",
  "briefing_sent_at": null,
  "cancelled_at": null,
  "created_at": "2026-10-20T19:20:00+00:00",
  "attendees": [
    { "email": "priya@brightwater.example", "name": "Priya Nair", "role": null, "organization": null, "status": "invited", "briefing_viewed_at": null }
  ],
  "modules": [{ "id": "38e3...", "title": "About Halden Logistics", "type": "about", "organization_id": "8719..." }]
}

status is invited until the person opens the briefing (joined); a guest's profile is shared only from then on.

List meetings

GET /api/v1/meetings — newest first, paginated.

Create a meeting

POST /api/v1/meetings

FieldType
titlestring, requiredUp to 200 characters
starts_atISO 8601 date-time with offset, required
duration_minutesinteger 5–600Default 30, or the template's
purposestringUp to 5,000 characters, or the template's
organizer_emailstringA member who may organize; default: the key's creator
attendeesarray of { email, name? }Members of your organization join as colleagues, everyone else as guests
module_idsarray of idsYour organization's content; default: the template's
template_ididPreselects content, duration and purpose

Returns the meeting (201). Nobody is emailed until you send the briefing.

Retrieve a meeting

GET /api/v1/meetings/{id} — includes attendees and who opened the briefing.

Update a meeting

PATCH /api/v1/meetings/{id} with any of title, starts_at, duration_minutes, purpose.

Cancel a meeting

DELETE /api/v1/meetings/{id} — the meeting stays, marked as cancelled; attendees see that on the briefing.

Send the briefing

POST /api/v1/meetings/{id}/send — emails everyone not yet invited: guests get a personal, one-time link, colleagues a notice. The response lists recipients, emailed, and links for any guest who couldn't be emailed.

Content, templates, members

EndpointReturns
GET /api/v1/modulesYour organization's content: title, type, department, Markdown, freshness
GET /api/v1/templatesBriefing templates with their modules and defaults
GET /api/v1/membersMembers with email, role, department and whether they may organize

Webhooks

Add an endpoint under Organization → Developers → Webhooks and choose events (none ticked means all).

EventWhen
meeting.createdA meeting was created (app or API)
meeting.updatedTitle, time, duration or purpose changed
meeting.cancelledThe meeting was cancelled
briefing.sentThe briefing was sent
briefing.viewedAn attendee opened the briefing for the first time
attendee.joinedAn invited attendee opened their invitation
access.requestedSomeone asked for access via a forwarded link
question.askedAn attendee added a question for the meeting
content.review_requestedAn organizer asked for a content review

Each delivery is a POST with a JSON body { "type", "created_at", "data" } and the Standard Webhooks headers webhook-id, webhook-timestamp and webhook-signature. Verify the signature with your endpoint's signing secret (whsec_...):

import { Webhook } from "standardwebhooks";

const wh = new Webhook(process.env.KENNU_WEBHOOK_SECRET);
const event = wh.verify(rawBody, {
  "webhook-id": req.headers["webhook-id"],
  "webhook-timestamp": req.headers["webhook-timestamp"],
  "webhook-signature": req.headers["webhook-signature"],
});

The signature is v1, + base64(HMAC-SHA256(secret, "{webhook-id}.{webhook-timestamp}.{body}")), with the secret base64-decoded after whsec_. Answer with any 2xx within 10 seconds. Failed deliveries are retried after 1 minute, 5 minutes, 30 minutes, 2 hours, 8 hours and 24 hours; every attempt is listed on the Webhooks page.

MCP server

AI assistants that speak the Model Context Protocol (Claude, ChatGPT, Cursor and others) can use Kennu on your behalf through the MCP server at https://dev.kennu.io/api/mcp (Streamable HTTP). Authenticate with an API key:

{
  "mcpServers": {
    "kennu": {
      "url": "https://dev.kennu.io/api/mcp",
      "headers": { "Authorization": "Bearer kn_live_..." }
    }
  }
}
ToolDoes
list_meetingsUpcoming (or past) meetings with attendees and read status
get_briefingA meeting's briefing: purpose, people, shared content
create_meeting_draftCreates a meeting (nobody is emailed)
send_briefingSends a meeting's briefing
list_contentYour organization's content

The assistant can do what the key can do — use a read-only key to let it read but not change anything.