An API that reaches only what it was given.
Organizations connect a helpdesk, a CRM or a bot of their own. People let an app act for them, with the permissions they chose. Every token reaches a fixed set of routes, every webhook is signed, and nothing an app does is passed off as a person.
Specification
- Apps
- Added on the organization’s page. Each has its own bot on the team, a token shown once, and a webhook signed with a secret shown once. Replace either and the old one stops at once.
- Permissions
inbox:read,messages:read,messages:write,threads:write,updates,kits: given one by one. A route the token can’t use answers 403.- Webhooks
business.message,business.thread,kit.posted,kit.moved,ping. Signed, https only, no private addresses, one deadline for the whole exchange.- Your own cards
- Define a kind of card with fields and states. Your bot sends it, the team and the customer move it, and you hear when they do.
- Idempotent
- Every write carries a
clientId. Sending it again returns the first result, never a second message. - Rate
- 600 requests a minute per token.
- The sdk
@caime/sdk: a typed client for every route an app reaches, and the webhook check. Built from the repository until it is on npm.- Personal tokens
- A person makes a token for their own scripts (
profile:read,messages:read,messages:write,actions:read,actions:write). It never reaches the account itself. - OAuth
- Third-party apps ask people for consent (OAuth 2.0; errors as RFC 6749 and 7009 say), hold only what they were given, and can be revoked any time from Settings.
- The guide
- In the app: Settings → Developer, and beside each app on the organization’s page.
The bar for the marketplace
- Permissions
- Each one is asked for because the app uses it today, never for a feature to come. Reading everything is looked at closer.
- Connect
- Caime follows Connect to the end, as a person would, before it lists the app.
- Help and privacy
- A support address and a privacy policy that open, both on the listing. One that stops working takes the app out.
- Never
- Exporting or backing up conversations wholesale, deleting in bulk, copying Caime’s own app, taking payments through Caime, training a model on what it reads, or one account shared by several people.
- A model
- An app that puts people’s words through a model says which, what it keeps, for how long and where. The listing shows it as Caime shows its own processors.
- Age
- Apps act for people over 18.
- The listing
- A tagline, a category, how it’s paid for, its languages, up to 5 screenshots at 8:5, where to get help and its privacy policy.
- Changes
- A change to what the listing shows asks again. An app left broken is taken out, with a note to its developer.
- The order
- By how many people connected it, then the newest. No paid placement, no ratings.