Documentation

Three reading paths: use Historis, connect your assistant, or go deep with the developer reference

Reading paths

01Using Historis

Track contacts and events day to day. No AI required.

Getting started

Create your account and get going in minutes

01

Create an account

Free signup, no credit card required.

02

Create your first event

Describe what happened. Historis organizes the rest.

03

Connect your assistant

Optional: connect your assistant and let it write things down for you.

Key concepts

The building blocks of Historis

Events

The basic unit. An event contains free-form text, a status (open, in progress, closed), a due date, and a follow-up date. It's your working memory.

Persons

Your contacts: clients, suppliers, partners. Each person has a name, phone, email, and notes. Link them to events to build a history.

Tags

Classify your events and persons with tags. Counters update automatically. Filter by tag to find what matters.

Statuses

Lifecycle: Open → In Progress → Closed. Add a resolution when closing. Filter by status to see what's left to do.

Teams

Organize your members into teams. Teams are the foundation for visibility control — restrict who can see specific events and contacts. The Free plan includes one team; paid plans are unlimited.

Visibility

Control who sees what. Each event and contact has a visibility level: Organization (everyone), Teams (only assigned teams), or Private (only you). Set visibility when creating or editing.

Rules

Plain-language instructions saved for your whole organization. Historis indexes them; your connected assistant finds the relevant rule and applies it, marked ◆, never executed server-side.

02Connect your assistant

Your assistant reads your history and writes things down for you; what it writes is marked ◆.

Connect your assistant

Your assistant reads your history and writes things down for you

Historis works entirely without AI. But if you already use an assistant like Claude or ChatGPT, you can connect it: it reads your history to catch you up, and writes things down for you. Everything it writes is marked ◆, the mark of entries added by an assistant: dated, signed, correctable. You choose what each assistant can read or write, and every action it takes shows up in the activity log.

MCP Server URL

https://api.historis.app/mcp

Claude Desktop

Add this block to your claude_desktop_config.json:

{
  "mcpServers": {
    "historis": {
      "url": "https://api.historis.app/mcp"
    }
  }
}

ChatGPT

In ChatGPT Settings → MCP Servers → Add Server. Paste the URL above and authorize via OAuth.

Cursor

In Settings → MCP → Add server. Same JSON config as Claude Desktop.

Rules

Reusable instructions your assistant follows

A rule is a short instruction written in plain language and saved once for your whole organization. Historis stores and indexes your rules but never runs them itself: when your assistant works on something that matches, it finds the relevant rule and applies it, marking what it did with ◆. Because rules live with your organization, every teammate's assistant follows the same playbook.

How it works

  • Each rule is indexed by keywords and the people it mentions, so your assistant surfaces it exactly when it is relevant, not on every event.
  • Rules are saved at the organization level, so they apply across your whole team. Write a convention once and everyone's assistant follows it.
  • Your assistant reads the rule and acts on it: tagging, linking, routing, setting a follow-up. Every change it makes is marked ◆ so you can tell its work from yours.
  • Historis never executes a rule on its own. Nothing happens server-side and no event is changed behind your back; rules only guide the assistant you connect.

Teach your assistant, and let it improve

  • Just tell your assistant in chat: "From now on, file anything from a supplier under #wholesale." Ask it to save that as a rule and it becomes part of the playbook.
  • Caught it mis-tagging or routing something to the wrong place? Tell it what was wrong and ask it to record the rule. The next time, for you or any teammate, it gets it right.
  • You can also write rules yourself in plain markdown from the Rules page. No special syntax, no conditions to configure — a clear sentence is enough.

Example rules

Anything that looks like an invoice or a quote → tag it #accounting and link the supplier.
Events tagged #repair → assign to the workshop and set a follow-up in 3 days.
When a contact is a reseller, tag their orders #wholesale and apply the reseller pricing notes.
For any professional contact, always record the company first, then the individual, then the relationship between them.
Anything involving a VIP client → flag it so it surfaces at the top of the daily brief.

03Developer reference

Full technical depth: the MCP protocol, the tools, webhooks and authentication.

MCP Tools Reference

All tools available to your agent

Context & briefing

ToolDescription
get_organization_contextCold-start briefing: organization, members, teams, frequent tags, stats, recent activity
manage_organizationWrite org context via action: set_description (org), set_team_context (team), set_member_context (member, owner only)
get_daily_briefMorning brief: overdue, due today, upcoming, and stale events in one structured snapshot
get_person_contextFull context for a person: identity, tags, open events, recent history, summary stats

Events

ToolDescription
create_eventCapture an event: free-form text, tags, persons, deadlines, idempotent on external source ids
search_eventsSearch and filter events: text, status, tags, person, dates, deadlines (due_before, due_today)
manage_eventSingle-event operations via action: get, update, delete, add_update, link_events, link_person, link_tag, thread, batch_update_status, close_loop
bulk_create_eventsBatch import up to 50 events from a JSON array, idempotent per (source_type, source_id)

Persons

ToolDescription
search_personsDiscover contacts by full-text search across all their fields (accent-insensitive) and by the relationship graph: filter by kind and by a role on linked contacts (with_role / without_role)
search_or_create_personFind a person by name (optionally email), create if not found, upsert tags
bulk_create_personsBatch-create up to 50 contacts from a JSON array, skipping duplicates by email
manage_personPerson operations via action: update (name, contact info, notes, tags, visibility), delete
manage_relationshipContact-to-contact links via action: list, create, update (note), delete

Tags

ToolDescription
manage_tagsTag operations via action: list (by usage), analyze_duplicates, update (description), merge, keep_separate

Rules

ToolDescription
find_applicable_rulesPreview which active rules would match a draft event before creating it
manage_rulesRule operations via action: list, get, search, create, update, toggle, delete -- create/update can scope a rule to a team via team_name

Knowledge

ToolDescription
search_knowledgeSearch knowledge notes: full-text always (accent-insensitive French), a semantic branch fused with the full-text results when a query embedding is supplied, filters by tag, status, person or event
manage_knowledgeDurable knowledge notes via action: get, create, update, archive, link, unlink, supersede -- tagged decision/reflection/observation and linked to the contacts and events they concern

Spotlight — the daily brief

get_daily_brief

The most differentiating tool. One call returns a structured snapshot of everything that needs attention: overdue work, deadlines due today, what is coming up, and stale open events. Your agent turns it into a morning briefing.

Example prompt
"What happened, what should I know, what needs handling today?"
Typical response
Two things are overdue: the quote for Martin (due Friday) and the supplier callback. Due today: delivery follow-up for the Dupont order. Coming up this week: the workshop restock. Also, 3 open events have not moved in over a week — want me to list them?

Incoming webhooks

Let your other apps push events into Historis automatically.

An incoming webhook is a URL you can POST to. Whenever something happens in another tool — a payment, a form submission, a closed deal — that tool sends a small JSON payload to your webhook URL and Historis turns it into an event. No code required on the Historis side.

01

Create an endpoint

In Settings -> Webhooks, click New endpoint (Pro or Business) and give it a name like "Stripe payments".

02

Copy the URL and token

Historis shows the endpoint URL and a secret token once. Store the token securely — it is shown only at creation.

03

Send your events

Point your app (or Zapier / Make / n8n) at the URL with the token in the Authorization header. Each request creates an event.

Example request

curl -X POST https://api.historis.app/api/webhooks/ingest/YOUR_ENDPOINT_ID \
  -H "Authorization: Bearer whk_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pi_3abc123" \
  -d '{
    "content": "Payment received — 450 EUR",
    "status": "open",
    "tags": ["payment"],
    "person": { "name": "Pierre Dupont", "email": "pierre@example.com" },
    "metadata": { "external_id": "pi_3abc123", "source": "stripe" }
  }'
  • Only content is required. status, tags, person (name, email) and metadata are optional — a person is matched by email, or created automatically.
  • Idempotency: send an Idempotency-Key header (or metadata.external_id) so a retried delivery is de-duplicated instead of creating a second event.
  • The token is a secret: send it over HTTPS in the Authorization header, never in the URL. Revoke an endpoint anytime to cut it off instantly.
  • Works with anything that can POST JSON — Zapier, Make, n8n, or your own backend.

Authentication

How access works

OAuth 2.1

OAuth 2.1 with PKCE — the standard flow for MCP agents. Authorization is automatic: your agent will ask you to approve access the first time.

API Tokens

For direct integrations, create a token in Settings → API Tokens. The token is shown only once.

FAQ

How do I create an event from my assistant?

Just tell your assistant: "Create an event in Historis: meeting with John about the website quote". It writes the event down for you, marked ◆.

My assistant isn't applying a rule

Rules are not run by Historis: your assistant applies one when it finds a relevant match. Check that the rule is active and that its keywords (or linked people) match what you are working on, then ask your assistant to look for applicable rules.

How do I find overdue events?

Ask your assistant: "What needs handling today?". It pulls the daily catch-up: overdue, due today, upcoming and stale events, in one pass. Deadline filters for targeted searches are covered in the developer reference below.

MCP authentication is failing

The OAuth token may have expired. Disconnect and reconnect the MCP server in your assistant's settings.

Resources

Every Historis documentation link, product and legal, in one place.