Sales Engine
API documentation
FrameworksOperation frameworks.create

Frameworks create

Add a framework. It joins routing at once when it is active and needs no data the writer cannot see.

POST/api/v1/frameworks
Scope write: Create and edit lists, research, sequences, campaigns, memory, signals and learning; queue jobs.

Parameters

Body

A JSON object. Fields not listed are ignored.

NameInDescription
namerequiredbodyFramework name.
categoryrequiredbodyWhere it sits: opener, follow_up, closing, or sequence (several emails from the first). One of opener, follow_up, closing, sequence.
typebodyTwo or three words naming the approach, such as Problem agitate solve.
step_frombody, integerEarliest email it suits: 1 is the first email, 2 the first follow-up.
step_tobody, integerLatest email it suits; null for any later email.
needsbody, arrayData it depends on: signal, content, new_role, relationship, website_visit, behavior, asset, channel, investor, earnings. Only signal and content are seen on a lead; any other need means it is used only when a campaign names it.
structurebody, arrayThe parts in order: [{label, text}].
how_it_worksbody, arrayTwo or three short points on why it works.
examplebody, arrayComplete example emails in order: [{label, subject, body}]; several for a sequence.
example_kindbodyemails when the examples are a run of emails in order, variants when they are alternatives (one per role, angle or trigger). One of emails, variants.
statusbodyactive is routed, paused is not. One of active, paused.

Example

curl
curl -X POST "https://crm.ashwanth.dev/api/v1/frameworks" \
  -H "Authorization: Bearer $SALES_ENGINE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "",
  "category": "opener",
  "type": "",
  "step_from": 0,
  "step_to": 0,
  "needs": [],
  "structure": [],
  "how_it_works": [],
  "example": [],
  "example_kind": "emails",
  "status": "active"
}'
CLI
sales-engine frameworks create --name "..." --category opener

The JSON above lists every documented field with a typed placeholder; send only the ones you mean.

Response

A 200 with the result under data, on creation too. Errors come back as an error object with a stable code; see Errors.

Shape
{
  "data": { ... }
}

Run it below to see the live shape for your workspace.

Try it

Runs against this server, as the workspace behind the key.
Kept in this page while you browse the docs, gone on reload, never stored. Signed in to the app? Leave it blank and the call runs as you.
Every documented field is listed above; leave out the ones you do not need.
Request
POST /api/v1/frameworks

Also in Frameworks