The whole platform

17 modules on shared data, and the layer under them.

One page, every module: what it does, its screens, its walkthrough, and a session with the assistant beside it. One permission model, one audit log and one MCP server sit under all of them.

Instead of a stack of accounts

What you run today, and what it becomes.

One login, one permission model, and a project, a person and a month that mean the same thing everywhere.

The board
AsanaJiraTrelloFreelo
TasksProjectsBoards, sprints, initiatives, dependencies, labels.
The wiki
NotionConfluence
WikiMarkdown pages, meeting notes, tables, guest sharing.
The timesheet
TogglClockifyHarvest
TimeCalendar and list, monthly approval, locked months.
Capacity
FloatSloneek
PlanningPeopleAllocations, roadmap, vacations, utilisation.
The CRM
HubSpotPipedriveRaynet
CustomersPipeline, rules, sequences, a reader for every conversation.
Invoicing
FakturoidiDoklad
FinanceInvoices from approved hours, ISDOC inside the PDF, the ledger.
Campaigns
MailchimpEcomailBrevo
MarketingLists, topics, consent, your own sending domain.
Forms
TypeformGoogle Forms
FormsPublic forms that file a lead and fire a webhook.
The website
MacalyWebflowWebnode
SitesPages your assistant drafts; publish and roll back, one button each.
The store
Payment linksA small shop
OrdersProducts, order pages, subscriptions, the funnel.
Signing
DocuSign
SigningTimestamped signatures, signers in turn, reminders.
Consents
A spreadsheetThe lawyer
ComplianceAuditConsents, requests, the breach clock, the Article 30 register.
The glue
ZapierMaken8n
DatasetsAppsMCPYour data, your mini-apps, your assistant.

Projects & work

Projects · Wiki · Tasks · Datasets · Apps

Projects, tasks, project knowledge, the data your automations write, and the mini-apps your team runs on it all.

Projects

The whole project on one page.

See the team, capacity, time, deadlines, tasks, customer context and project knowledge in one place.

Compare planned and tracked time before the project runs over budget.

A project detail page: a team and capacity table, planned against tracked time, and wiki and task widgets.
ClaudeOpelli · Northwind Studio
Set up the Aurora phase-two project: key AUR2, Mira and Nina on it, and a first wiki page from the proposal.
Used create_projectUsed set_project_memberUsed create_wiki_page

Created AUR2 with both of them as members and a "Proposal" page holding the accepted scope. The page is private to the project until you share it.

How is Storefront Revamp doing this month?
Used planning_project_summaryUsed tracking_project_summary

Planned 240 h, tracked 154 h so far, burn at 64 % with nine days left. Two milestones on track, one slipped a week.

Reply…

The project wiki

Where the work gets written down.

Every project has a wiki for meeting notes, decisions and product briefs — written together, connected to tasks and shared only where you choose.

A wiki page in reading view: page tree with nested subpages, breadcrumbs, an embedded interactive flow chart, and linked task pills.
The wiki editor on a meeting note: attendee chips, the Markdown text and an insert menu offering a task, a page, an image and a flow chart.
Everyone edits the same page at once Diagrams and tables directly in the page A linked task, straight from the note
  • Collaborative project knowledgeEdit pages together and keep meeting notes, decisions and product briefs in one place.
  • Turn decisions into workCreate linked tasks directly from meeting notes.
  • Share only what a client needsGive guests access to selected pages without exposing the rest of the project.
  • Discuss work in contextComment on exact passages and keep the conversation with the source material.
  • Use rich content without lock-inAdd diagrams, tables and files, then import or export in Markdown.
1:38
ProjectsOne page per engagement: people, tasks and knowledge.

The wiki is part of the Projects walkthrough.

ClaudeOpelli · Northwind Studio
Find where the sync note talks about the checkout, and add a line that the API contract is STORE-118.
Used find_in_wiki_pageUsed edit_wiki_page

Found it under "Decisions". Added the line right after; the edit is one exact replacement, so nothing else on the page moved.

Share the onboarding page with Aurora's guest account.
Used list_wiki_pagesUsed api_request

Shared the "Onboarding" subtree with the guest. They see those pages and nothing else in the project.

Reply…

Tasks

A board that stays small.

Types, six statuses — "Won't do" is an answer too — one assignee and one level of subtasks. Small enough that the board stays a view of the work.

The Tasks board: status columns with typed task cards, assignees and due dates.
A task opened read-first: the description up front, a P0–P3 priority control and quick status and owner selects in the sidebar, and the Weekly sync meeting note it came from linked below.

Compact mode fits the whole sprint on one screen.

The same board in compact mode: one line per card with the key, the title, a due date and the owner's avatar, and every status column visible at once.
  • A focused task boardTrack status, priority, ownership and deadlines without turning the board into a second job.
  • Plan in sprintsKeep current work together and carry unfinished items forward.
  • Connect code and workLink GitHub activity to the tasks it belongs to.
  • Keep the contextFiles, comments and linked wiki pages stay with the task.
ClaudeOpelli · Northwind Studio
Turn the decisions in Friday's sync note into tasks in the running sprint, assigned as agreed.
Used get_wiki_pageUsed create_task

Four tasks, STORE-131 to STORE-134, each linked back to the note. Two are Mira's, one Nina's, one yours.

The payment one is the blocker: P0, blocked by STORE-118.
Used update_task

Done. Mira got the P0 message and the board shows the blocked chip.

Reply…

Datasets

A row a day, next to the roadmap.

Some of the numbers a team lives by are written by machines — the app's store figures every morning, a monitor checking the site every five minutes, an assistant reporting what it read overnight. Each gets a dataset under its project, appends one row at a time, and the wiki shows the history as a live table or chart.

A dataset of the mobile app's daily store metrics: one profile card per column with a histogram or the most common values, the sortable table of rows beneath, and the ingest token with its ready-made curl snippet beside it.
A wiki page with the same dataset embedded as a live chart of daily actives and a filtered table of Android stability beneath a paragraph of commentary.
POST /datasets/12/rows
Authorization: Bearer opds_…
Idempotency-Key: ios-2026-08-22
Content-Type: application/json

{ "timestamp": "2026-08-22T06:30:00+02:00", "platform": "ios",
  "installs": 113, "dau": 3359, "crash_free_pct": 99.8, "rating": 4.4 }

→ 201  { "inserted": 1, "duplicates": 0, "ids": [4471] }
  • Append, never re-uploadEvery record is one row added with one request — there is no file to fetch, edit and put back, so two writers can never overwrite each other. Send an Idempotency-Key and a retried request is stored once.
  • A token that can do one thingEach dataset has its own ingest token, and all it can do is append rows to that dataset. Rotate or revoke it from the dataset page, which also hands you the curl, RouterOS and Python snippets ready to run.
  • Free-form, or declaredRows are JSON. Declare the columns and their types and a malformed record is refused with the key named; leave them undeclared and the dataset takes what comes — an uptime monitor's status and response time, say.
  • Profiled, charted, in the wikiThe dataset opens on a column profile — type, count, a histogram or the most common values — above a table that sorts and filters on any column and a time range, a chart of the numeric columns, and JSONL, CSV or JSON exports. Save a sort, filters and a chart as a named view, then type /dataset in a page to embed it: it reads the current rows every time the page opens, and stays as private as the page.
  • Written by an assistant, tooA scheduled assistant that scans the news, social media and research papers each morning appends what it found — source, title, relevance — and the team reads the table in the wiki. The same goes for a CI job, a router or a sensor: anything that can make one request can keep a dataset.
  • Bounded on purposeA dataset keeps up to 100 000 rows and ages old ones out on the retention you choose. A secret download link for a dashboard outside Opelli is off until you switch it on, and says plainly what holding it means.

Ask for it

From the day's rows to a chart on the page.

Your assistant finds the dataset, reads the month out of it, saves what it read as a named view and puts that view on the wiki page — as a live chart that keeps growing with each morning's row.

ChatGPTOpelli · Northwind Studio
What were daily actives on Android last week, and how does that compare with the week before?
Used query_dataset_rowsUsed dataset_stats

Android averaged 4 210 daily actives, up 6 % on the previous week. Crash-free sessions held at 99.4 %.

Save that as a view called "Android · weekly" with the chart.
Used save_dataset_view

Saved. It is a tab on the dataset now, and /dataset in any wiki page can embed it.

Reply…

Apps

The tool your team built, running inside Opelli.

Some tools are yours alone — a wall of the numbers your datasets already hold, a screen for the kitchen, an estimator nobody else would want. Upload the built app, or let your assistant write it, and it opens for signed-in members right in Opelli: versions, rollback, storage and sign-in already taken care of.

The detail page of an app called Studio wall: the numbered version history with one version live, the app's saved state — shared keys and the viewer's own — and the ready-made CI workflow snippet beside them.
An app open in Opelli: a product wall drawn from a dataset — daily actives as a stacked area chart, install columns, a crash-free gauge and the store rating, running full width under the top bar.
  • Versions, never edits-in-placeAn upload is a numbered version and nothing changes for the team until you press Publish. Every earlier version keeps a Roll back button, so a bad release is one click old.
  • Project-wide or org-wideAn app belongs to a project and opens for its members — or to the whole organization. External guest accounts never see it either way.
  • Runs as the person using itAn app runs with each viewer's own sign-in, so what it can read and change is exactly what that person could anyway — a dashboard over a dataset shows each member their own permitted slice, with no credentials anywhere in its code. Publishing asks for one consent in return: publish only what you wrote or reviewed. Every publish is recorded in the security trail.
  • State without a backendApps that need to remember things get built-in storage: per-person state for drafts and preferences, shared state for a board everyone sees — saved on the server, with concurrent updates handled safely.
  • From GitHub on every pushThe app page hands you a ready-made CI snippet: push to main, and the build lands as a new version — published only when the workflow says so, with an API key that can touch apps and nothing else.
  • Your assistant builds it end to endA connected assistant can create an app, read its source, make edits, stage a version and publish — the same loop it uses for microsites, now for internal tools.

Ask for it

From a sentence to a tool the team opens.

Your assistant creates the app, writes its files and publishes the first version — a wall for the kitchen screen that reads people, plans and tickets as whoever opens it, ready before anybody asks where the numbers live.

ClaudeOpelli · Northwind Studio
Write a small wall for the studio: daily actives from the app dataset as an area chart, installs as columns. Org-wide.
Used create_appUsed write_app_files

Staged as version 1 of "Studio wall", org-wide, unpublished. It reads the dataset as whoever opens it, so nobody sees more than they could anyway.

Looks right. Publish it.
Used publish_app

Live. Every publish is in the security trail, and the earlier version keeps its Roll back button.

Reply…

Planning & people

Planning · Time · People

Plan capacity, track time and approve monthly timesheets.

Planning

Who works on what, at a glance.

See capacity and conflicts across the team, then adjust the plan directly in the schedule.

  • Plan in hours, days or FTE while Opelli keeps one consistent view of capacity.
  • Use monthly limits for flexible contractors without forcing artificial project splits.
  • Open an initiative on the Roadmap to see its stories, bugs and tasks on the sprints they are planned for — drag one to another sprint, plan the next sprint in a click, add work right there.
The Planning schedule: each person's allocations across a two-month timeline.

The Roadmap: an initiative opened to its tasks, each on the sprint it is planned for.

The Roadmap with an initiative expanded: its tasks listed with type, status and owner, each drawn as a bar over its sprint or a marker on its due day, the project’s sprints above as a strip with a dashed slot for the next one, and an “Add a task…” row at the bottom.
ClaudeOpelli · Northwind Studio
Who is over capacity in October?
Used list_allocationsUsed list_time_off

Mira at 118 % and Tomáš at 106 %. Lucie is out 13 to 17 October, which the schedule already shows as a striped band.

Move half of Mira's Aurora booking to Petr for that month.
Used update_allocationUsed create_allocation

Mira is at 84 % now, Petr at 74 %. Both bars moved on the schedule and the change is in the activity log.

Reply…
The Time week calendar with time entries laid out across the week.
The Time list view: a stacked per-project volume chart above day-grouped entries with totals.

Time

Track the week, close the month.

A calendar for the week's work and a list for the numbers. Turn approved time into an invoice without retyping.

  • Log time manually or turn calendar events into project entries with your assistant.
  • Compare planned and tracked time by person, project and month.
  • Submit monthly timesheets for approval and lock approved periods.
  • Connect calendars and Toggl, or export the month for further processing.
  • Keep time correct for teams working across time zones.
ChatGPTOpelli · Northwind Studio
Start a timer on STORE-134, and what did I track yesterday?
Used start_timerUsed list_time_entries

Timer running since 09:41. Yesterday: 6.5 h on Storefront Revamp, 1 h on Internal Ops, all billable.

Send my August hours for review.
Used api_request

Sent, one statement per project, to each project's Time reviewer. You can withdraw until they act.

Reply…

People

A directory connected to real work.

See each person's projects, capacity, tasks and tracked time together.

The People list: titles, skills, projects, load today and month-to-date utilization per person.
A person's page: five projects stacked into one utilization bar for the month, each in its project color, with the per-project table below.
  • View the team as a list, by project or in an org chart.
  • Manage profiles and time off where the team already works.
ClaudeOpelli · Northwind Studio
Who on the team knows React Native, and are they free in November?
Used list_peopleUsed list_allocations

Maya and Adam list it. Maya is at 92 % in November, Adam at 60 %.

Book Adam's vacation, 3 to 7 November.
Used create_time_off

Booked. It shows on his profile, the schedule and every task card that names him.

Reply…

Sales & finance

Customers · Orders · Finance · Marketing · Sites · Forms

CRM, orders, invoicing, campaigns, sites and forms.

Customers

A pipeline that remembers.

Keep every customer, conversation and opportunity in one place, with a clear next step for each deal.

  • See pipeline conversion, time in stage and win rate without rebuilding the report in a spreadsheet
  • Look up Czech companies through ARES when creating a customer
  • Amounts are shown only to users with the right permission
The Customers pipeline: deal cards in Lead, Prospect, Qualified, Proposal and Won columns with values, next steps and owners.
A customer's page: headline figures across the top, the deals table, the day-by-day history of notes, calls and emails, with contacts and customer details down the side.
ChatGPTOpelli · Northwind Studio
Anything from Aurora in the mail queue? File it and read it.
Used list_mail_queueUsed file_mailUsed read_entry_with_agent

One message from Charles, filed on Aurora Retail. Summary: they accept the phase-two scope. Next step proposed: revised proposal by Friday. New name: Lucy Marsh, marketing lead.

Accept the step, move the deal to Proposal, and set a rule: any deal without a next step for 7 days pings its owner.
Used update_dealUsed create_crm_rule

Deal moved. Rule "No next step, 7 days" is active and runs once a day; it fires once per stall.

Reply…

Orders

Sell it, and take the money for it.

Share an order page where customers can choose, enter billing details and pay without creating an account.

One paid order opened as a page: the lines and frozen totals, the address the buyer chose, the card payment with its fee, and the fulfilment recorded beside the billing details.
The public order page: a themed card with the price per seat and term, the team size, billing period and address the buyer chooses, two add-ons, and the live total above Continue.
  • Payments through your StripePayments go directly to your connected Stripe account.
  • From order to deliveryTrack orders, delivery and subscriptions in one place.
  • Financial details stay protectedAccess to financial data is controlled by permissions.

What is still being billed, grouped by customer — seats and add-ons on one card even when they run on different periods.

The Subscriptions tab grouped by customer: a past-due alert at the top, and one account billing yearly seats and monthly add-ons on a single card, expanded to its items and period.

It closes the loop the rest of this page opens. The deal is won in Customers, the order is placed and paid here, and Finance issues the invoice for it — over one set of customers, one set of permissions and one audit trail.

ClaudeOpelli · Northwind Studio
Which order pages sold this week, and where did people drop off?
Used list_ordersUsed traffic_summary

Studio Hosting: 9 paid of 31 who reached checkout. Onboarding workshop: 4 paid, no drop-off after checkout. Both counted per person, no cookies.

Mark the two workshop orders as fulfilled.
Used update_order_fulfilment

Done, both. The buyers can see it on their order pages.

Reply…

Finance

The month's hours, as an invoice.

Turn approved project time into a ready-to-issue invoice with Czech tax details and a payment QR code.

  • Use the right historical rate automatically and see revenue, cost and margin by project
  • Create recurring drafts for retainers and review them before issue
The invoice builder: the customer, period and lines on the left — two of them drawn from approved months — and the finished invoice on the right with the letterhead, VAT, totals and a payment QR code.

Billing and cost are separate permissions — a bookkeeper can run invoicing end to end while cost rates and margins stay with the people who set them.

The Rates table: each person's cost and bill rate with the months it applies to, one rate overridden for a single project, and the margin beside them.
ClaudeOpelli · Northwind Studio
Draft the August invoice for Aurora from approved hours on Storefront, in Czech, with the QR code.
Used api_request

Draft created: four lines at the August rates, Czech document, QR payment code, due in 14 days. Issuing allocates the number, so I stop here until you say so.

Issue it, send it with the PDF, and give me the ISDOC for the accountant.
Used api_requestUsed download_invoice_isdoc

Issued as 2026-091 and emailed with the PDF, ISDOC embedded. The bare ISDOC file is attached.

Reply…

Marketing

Campaigns, from the same context.

The people you'd write to are already in the CRM, and the voice you'd write in is already on file.

The campaign editor: Markdown source and recipient lists on the left, the live-rendered email in the Studio theme on the right.
  • Campaigns in contextBuild messages from the contacts and brand material already in Opelli.
  • Personalize before you sendPreview the subject and message with real recipient data.
  • Reusable designsCreate a consistent email style without editing code.
  • Clear results and lasting opt-outsFollow campaign performance and respect an unsubscribe across every list.
ChatGPTOpelli · Northwind Studio
Draft the October newsletter from the three wiki posts tagged "changelog", in our house tone, to the newsletter list.
Used list_tone_guidelinesUsed get_wiki_pageUsed create_campaign

Draft saved with three sections and a first-name variable. 1 940 subscribed recipients on the list. Nothing is sent until you press send in Opelli.

Add the sign-ups from the Aurora form to the list under the topic "loyalty".
Used list_form_responsesUsed add_list_members

Added 212 addresses under "loyalty". Duplicates and unsubscribed ones were skipped.

Reply…

Sites

The page your campaign points at.

A small marketing site sits beside the project it belongs to — a launch page, a webinar sign-up, a one-pager for a customer.

  • Create a campaign page from the material already in the project.
  • Preview every version and publish only when it is ready.
  • Use your own domain and connect sign-ups directly to the project's forms.
  • Return to an earlier version whenever you need to.
  • See how many people the page reached — counted without cookies, so nobody is identified.
The site assistant: a rendered landing page in the preview pane marked “Previewing version 5 — not published”, and a chat beside it where two instructions each came back with a summary of what changed.

Every answer is a new version. Publishing is one button — and so is going back to the one before.

A microsite in Opelli: the version list — five versions, three written by the assistant, one marked Live, with Preview, Publish and Roll back beside the others — a picture of the page each version is, the last thirty days of visits, and a box to point your own domain at it.
ClaudeOpelli · Northwind Studio
Draft a launch page for Aurora Loyalty from the project's brief, with a sign-up box.
Used get_wiki_pageUsed create_siteUsed write_site_files

Staged as version 1, unpublished, preview attached. The copy comes from the brief's "What members get" section.

Publish it and tell me tomorrow how it did.
Used publish_siteUsed traffic_summary

Live on its built-in address; your domain is one DNS record away. I will read the traffic tomorrow: visits and visitors, no cookies.

Reply…

Forms

Ask the outside world.

Questionnaires, polls and sign-up pages. Build the questions, share the link.

The Forms results view: per-question charts for the rating and choice questions, latest text answers, and the response table under the public link.
The public form page: a studio-themed card with rating, choice and long-text questions, the company name on top and an accent Submit button.
  • Ask it your wayChoose from six question types and match the form to your brand. Mark any question as required and change its order.
  • You control intakeOpen and close intake when you choose.
  • Results as they arriveCollect responses without requiring an account and see results as they arrive.
  • No visitor trackingNo visitor tracking is stored with responses.
ClaudeOpelli · Northwind Studio
Make a three-question feedback form for the workshop: a rating, one free text, an email. Open it.
Used create_formUsed open_form

Open at its public link. Ratings and the consent tick land in the ledger; the email question is what a reply can be sent to.

What came in so far?
Used form_summary

14 responses, rating average 4.6, eleven left a comment. Two asked for a follow-up session.

Reply…

Security & control

Access · Security · Governance · Signing

Permissions, security, compliance, audit records and signed documents.

Access

Share the work without oversharing.

Every feature carries a permission level — none, read, write, delete — set per role or per person. Access can be limited to records from the projects a person is a member of.

The Access console: features × roles grid with per-level pickers and an expanded 'what each level allows' capability matrix.
  • Documented, not impliedEach feature spells out what every permission level allows, right where you assign it.
  • Roles & overridesAdmin, manager, member and guest out of the box; custom roles and per-person exceptions when you need them.
  • The guest boundaryCustomer-side guests are labelled everywhere, see only the wiki pages shared with them and can never enter CRM or Finance — no permission grant can change that.
  • Two money permissionsWhat you pay someone and what you charge for their time are granted separately, so invoicing can be delegated without opening cost data.
  • Locked monthsAn approved timesheet locks its month — no silent edits after sign-off.
  • Personal connectionsScripts and assistants connect through personal, module-scoped keys that act only as their owner. Revoke any connection at any time.

Part of the platform under every module; see the walkthroughs of the modules it protects.

ChatGPTOpelli · Northwind Studio
What can this connection actually reach?
Used whoamiUsed list_endpoints

You are Mark Hale on Northwind Studio. This key reaches projects, tasks, wiki, time, customers and sites. Nothing under finance or people's pay; a path absent from the list does not exist for this key.

Then update the Aurora invoice.
Used api_request

Refused: finance is outside this key's scope. Widen the key in Settings → API keys if that is intended.

Reply…

Security

Built for audits.

The commitments that matter when you buy: where your data lives, how it is protected and how sign-in works.

  • Isolated by organizationEach customer's data is kept in a separate environment.
  • Protected in transit and at restApplication data and files are encrypted and processed in the EU.
  • Use your identity providerSign in with Google, or Microsoft Entra under an enterprise arrangement, and keep 2FA under your control.
  • Recoverable by designAutomated backups support recovery from accidental loss.

The GDPR machinery you'd ask about — consent records, subject requests on a 30-day clock, a map of where personal data sits — is in the product itself.

Part of the platform under every module; see the walkthroughs of the modules it protects.

ClaudeOpelli · Northwind Studio
Sign me out everywhere and rotate the key this connection uses.
Used api_request

Every session on every device is ended on your next action. Key management never answers to a key, so rotating it is yours to do in Settings → API keys; the new one is shown once.

Reply…

Compliance & Audit

Everything on the record.

Two modules for the questions customers, auditors and investors eventually ask: what your legal texts say and who agreed to which version — and what actually happened here last month.

Compliance

Your GDPR posture, run like the rest of the company.

Terms, a privacy policy, consent texts — drafted in Markdown and published as immutable versions to a Privacy Center at your own address. The exact text someone agreed to stays reproducible forever, and old versions stay linkable.

  • A consent ledger: who agreed to what, which version, when — every consent with its own withdraw link
  • Data-subject requests with the 30-day clock counting down, from the public portal or logged by hand
  • A locator that finds a person's email across CRM contacts, mailing lists, form responses and accounts
  • "Manage my data": a private link listing someone's consents and requests — no account, no way to probe who's in the system
  • Each document belongs to a project and picks the look of its public page
A published privacy policy on the Privacy Center: the document title and version, a sticky table of contents built from its headings, and numbered sections.

Audit

What happened, and the report of it.

Every notable thing lands in one org-wide activity log — tasks closed, deals moved, people added to projects, pages published, campaigns sent. Read it as a day-by-day stream, or render the same range as one Markdown document and mail it.

  • Everyone sees their own slice, filtered by the permissions they hold and the projects they belong to
  • Lose access to a project and its history goes with it, immediately
  • Summaries name things, never values — no deal amounts, no phone numbers
  • An admin-only security trail: roles, permission changes, keys minted and revoked
  • A delivery record of everything Opelli sent, in the same stream
  • The same document a connected assistant asks for when it wants to know what changed
The Audit activity stream: events grouped by day with a module label per row, range and module filters, and a security-trail toggle.

…and the same range, rendered as one Markdown document you can copy or mail.

The Report view: a summary with per-module tallies and tracked hours, then the detail grouped by project, above Copy markdown and Email report buttons.
ClaudeOpelli · Northwind Studio
A customer asked what we hold on marta@example.com. Everything, as one file.
Used locate_personal_dataUsed export_personal_data

Found her in Customers, two form responses and one consent. Exported as one Markdown file; the download is logged.

And what happened across the company last night, as a document?
Used generate_report

Here it is: one Markdown report, only the rows you are allowed to see, grouped by module and project with the hours rolled up.

Reply…

Signing

Counter-sign the contract they sent.

Sign a PDF with your own certificate, including one the other side has already signed — their signature stays valid, and Opelli never holds your key.

  • Their signature survivesA signed document is only ever appended to, never rewritten, so a qualified signature the other party put on it stays intact — the check every recipient's reader makes.
  • Nothing is storedThe document, your .p12 certificate and its passphrase travel through one request and the signed PDF comes straight back. No key ever rests on the platform, so a hijacked session has nothing to sign with.
  • Timestamped, optionally visibleEvery signature carries a trusted RFC 3161 timestamp, and you can place a "Signed by … via Opelli" mark on the page of your choice.
  • Inspect before you signThe screen first lists the signatures already on the document and whether each is still intact. What remains afterwards is an audit entry — the document's fingerprint and the certificate's identity, never key material.

Ask for it

It can read the signatures. It cannot sign.

Ask your assistant to counter-sign and it checks the signatures already on the document, then hands it over: the certificate and its passphrase never pass through an assistant or the platform, so the one who signs is you.

ClaudeOpelli · Northwind Studio
Send the Aurora services agreement for signing: me first, then their CFO.
Used create_signing_requestUsed send_signing_request

Sent. You are first and your link is in your mail. I cannot sign for you: the certificate and its passphrase never pass through me or the platform.

Where does it stand?
Used signing_statusUsed remind_signing_request

Your signature is on it since Tuesday; the CFO has not opened hers. Reminder sent.

Reply…

AI & assistants

Markdown · Agents · MCP

Opelli agents and MCP for the assistant you already use.

Context in Markdown

An assistant is only as good as what it can read.

Opelli writes in Markdown from the start — wiki pages, meeting notes, briefs and reports. The material an assistant needs is the material your team already wrote, in a format a model reads well.

  • Export your wiki without losing its structure — and import it back the same way
  • Give your assistant the same material your team already works with
  • Nothing is locked in: your content stays portable
The Audit module's Report view: a time range rendered as a Markdown document, grouped by module and project, with copy and email actions.

Part of the platform under every module; see the walkthroughs of the modules it protects.

ChatGPTOpelli · Northwind Studio
Give me the onboarding wiki as Markdown so I can read it here.
Used get_wiki_page

Here is the page with its subpages, headings as breadcrumbs. Tables, checklists and the embedded dataset came through as Markdown too.

Reply…

Opelli agents

AI prepares. You decide.

Opelli's built-in agents read what is already in the system — a customer conversation, project material — and come back with a suggestion next to the thing it came from. Nothing changes until you accept it.

A forwarded customer email on the customer timeline with a 'Read this' button and, below it, the suggestions: summary, next step, due date, signal, the amount the message mentioned, and the two people it named — one with an Add button, one already a contact.
  • Read a conversationGet a summary, the next step with its date, the amounts mentioned and the people named — ready to file on the customer.
  • Suggestions, not changesNo record is edited and no deal is moved for you. A drafted page is saved as an unpublished version — the live site changes only when you approve it.
  • Under your controlSensitive credentials are removed before content is sent to a model, and administrators can disable individual agents or the entire AI layer.

Administrators see a record of every model call.

The Agents activity log: one card per model call with the model and token counts, one payload unfolded to show what actually left, a run blocked by the private-key rule, and one whose password was removed before sending.
ClaudeOpelli · Northwind Studio
Read the three unread messages in the mail queue and tell me which need a reply today.
Used read_mail_with_agent

Two do: Aurora (a proposal by Friday) and Bright Labs (a question about the invoice). The third is a newsletter. Each reading is a proposal on the message; nothing was filed yet.

Look up the new Aurora contact.
Used lookup_person

One strong match on Aurora's own team page, with the source linked and each field's origin recorded. Nothing was invented; the email was not on the page, so it stays empty.

Reply…

MCP server

Or connect your own AI assistant and just ask.

Opelli speaks the Model Context Protocol. Add Opelli as a connector in Claude, ChatGPT or another MCP-capable assistant and work with projects, tasks, planning, time, customers and published content — more than 90 tools, in plain language.

You

Catch me up on the latest customer conversation and update the opportunity when I ask.

search_customersupdate_deal
You

Turn a meeting note into linked tasks without copying decisions by hand.

get_wiki_pagecreate_task
You

Create a draft launch page from project material; the published version changes only when you approve it.

create_sitepublish_site
You

And update the Globex opportunity while you're at it.

customers · refused
Assistant

This connection does not have access to CRM, so I cannot update that opportunity.

Every tool call follows your own permissions: feature permissions, access limited to specific projects, and the rules for guest accounts. How to connect an assistant, and the full security rules, are covered in the documentation.

Part of the platform under every module; see the walkthroughs of the modules it protects.

ClaudeOpelli · Northwind Studio
Which Opelli am I talking to, and what can you do here?
Used whoamiUsed list_endpoints

Northwind Studio, as Mark Hale. This key reaches every module; the route list is the real one the server mounts, filtered to this key.

Do something outside the list.
Used api_request

Refused by name, not quietly allowed. That is what makes "there is no such endpoint" a provable answer.

Reply…

See it on your own operations.

A short call on your projects and your month, with the assistant you already use connected to a copy of your company.