CallNotesAI

Getting started

Last updated 2026-10-25 · by Surge Software

Sign up, name your workspace and pick your notes template, then record or upload your first meeting. Every meeting gets a transcript with speakers, notes from your template, action items, highlights and speaker analytics — usually a few minutes after the upload finishes.

Capture

  • Meeting bot (coming soon) — paste a Zoom, Google Meet or Teams link (or connect your calendar's ICS address and turn on auto-join). The bot joins as “{bot name}”, posts your consent notice in chat, records, and leaves when everyone else has.
  • Browser recorder — on desktop Chrome/Edge choose “Mic + this tab's audio” for an online call; on phones use mic only. A recording banner is always visible. Install it to your home screen (it's a PWA).
  • Upload — mp3, m4a, wav, ogg/opus, webm, mp4, amr, 3gp up to 500 MB. Plaud and other recorder exports work too.
  • Phone calls — upload files from Android call recorders, Samsung, MIUI, Truecaller or WhatsApp. We read the number, contact and time from the file name; stereo recordings are split by side for perfect speaker labels.

Languages

English, transcribed on our own Whisper server. Indian languages are built and switched off at launch.

Custom vocabulary (Settings → Workspace): add product names, people and jargon. They are given to the speech model as a glossary, and near-miss spellings in every transcript are corrected (“Sarwam” → “Sarvam”, “hub spot” → “HubSpot”).

Notes, templates, translation

Built-in templates: General meeting, Sales discovery (BANT), Stand-up, Interview, 1:1, Customer support call, Board / investor update. Create your own in Settings → Templates. Any summary can be re-generated with another template from the meeting page. Translated summaries come with Indian languages (coming soon).

AI runs on Surge's own GPU server first. A second model is used only if ours fails a quality check (valid structure, every action item and quote must appear in the transcript).

Commitments tracker

Every promise (“I'll send the deck by Friday”) becomes a commitment with an owner and a due date. When a later meeting says it's done (“I've sent the deck”), it closes automatically with a link to the moment. Past-due promises show as slipped.

Integrations (coming soon)

Sending to these tools is not switched on yet. Today every push is built and kept in the outbox, so you can see exactly what each tool would receive.

  • Slack (Share) — needs incoming webhook url.
  • Notion (Share) — needs internal integration token, database id.
  • Email recap (Share) — needs send to (comma-separated).
  • HubSpot (CRM) — needs private app token.
  • Salesforce (CRM) — needs instance url, access token.
  • Zoho CRM (CRM) — needs api domain, oauth access token.
  • Jira (Tasks) — needs site url, account email, api token, project key.
  • Asana (Tasks) — needs personal access token, project gid.
  • Linear (Tasks) — needs api key, team id.

Every push is logged in Settings → Integrations → Outbox with its status. Once sending is switched on, a failed push can be retried with one click.

Where your data lives

The app, its database and your recordings run on Surge's own servers in Bengaluru. Notes and answers come from our own AI model on those servers. Two outside services are involved: Claude (Anthropic, outside India) as a backup model only when ours fails a quality check, and Resend for emails. Choose per workspace:

  • Bengaluru servers only (no backup model) — Audio, transcripts and AI run only on Surge's servers in Bengaluru (plus Sarvam, India-hosted, if Indian languages are on). No Claude fallback, no third-party meeting bot. Emails still go through Resend.
  • Bengaluru servers + backup model — Stored on Surge's servers in Bengaluru. Our own AI model first; Claude (outside India) only when ours fails a quality check.
  • Global — Stored on Surge's servers in Bengaluru; any approved processor may be used, including ones outside India.

REST API

Create a key in Settings → API keys. Send it as Authorization: Bearer sn_….

GET  /api/v1/meetings                 list meetings
GET  /api/v1/meetings/{id}            transcript, notes, action items
POST /api/v1/meetings  (multipart)    [email protected]  kind=upload|phone  language=hi
POST /api/v1/meetings  (json)         {"meetingUrl": "…"}   meeting bot: coming soon