Overview
The AI Playbook is the company context Enginy uses to personalize messaging: company information, products and services, ideal customer profiles (ICPs), competitors, testimonials, and FAQs. Two endpoints cover it:- Read the playbook:
GET /v1/ai-playbook— scopeWORKSPACE_READ - Update the playbook:
PUT /v1/ai-playbook— scopeWORKSPACE_WRITE
get_ai_playbook and update_ai_playbook.
Write semantics
PUT /v1/ai-playbook is additive on purpose. It is designed to be safe for an AI assistant that only
knows about the part of the playbook it is currently working on.
Removal is only ever possible through
deleteIds. There is no way to make this endpoint clear a
section.
How items are matched
Items are matched by their natural key, not by id:
Matching is exact after trimming whitespace. Call
GET /v1/ai-playbook first if you need the current
values and ids.
Fields required to create
When a key does not exist yet, the item is created and a few fields become mandatory. When the key already exists, every field is optional and only what you send is written.What cannot be written
idealCompanies— generated by Enginy from your playbook.linkedInFilterson an ideal customer profile — regenerated automatically whenever the profile changes.
The main product
At most one product or service can be the main one. SettingisMainProduct: true on a product
promotes it and unsets the previous main product. If the workspace ends up with products but no main
one, the first product in your payload is promoted automatically.
Recommendations refresh
Enginy derives list and search recommendations from your playbook. When an update changes something those recommendations depend on — the company overview, or any product, ICP, competitor, or testimonial — a refresh runs in the background once the write has committed. FAQ-only updates, and updates that touch only other company fields, do not trigger one. The refresh is asynchronous and best-effort: it never delays or fails your request, and repeated updates collapse onto a single in-flight refresh per workspace.Examples
Add one FAQ and leave the rest of the playbook alone:Response
The response returns the full playbook after the write, exactly asGET /v1/ai-playbook would, plus a
changes object so you can verify what the call actually did:
Errors
The endpoint validates the whole request before writing anything, so a rejected request changes nothing at all.Limits
- Up to 50 items per section in
upsert, and up to 50 ids per section indeleteIds. - Unknown keys are rejected, so a typo fails loudly instead of being silently dropped.