Session priming
Run this at the start of every agent session to ground the agent in your workspace.get_workspace_context → loads workspace-specific AI knowledge
list_entity_types → discovers available CRM schemas and slugs
get_entity_type_schema → learns field names for types you'll work with
Discover and create an entity
1. list_entity_types()
→ slug: "deal"
2. get_entity_type_schema(object_type_slug="deal")
→ fields: title, value, stage, close_date, contacts (relation)
3. create_entity(
object_type_slug="deal",
fields={"title": "Acme Q3", "value": 50000, "stage": "proposal"}
)
→ { id: "deal-uuid", ... }
4. link_entities(
entity_id="deal-uuid",
attribute_slug="contacts",
target_entity_id="person-uuid"
)
Find and update an entity
1. search_entities(query="Alice Johnson pricing discussion")
→ [{ entity_id: "uuid", score: 0.94, title: "Alice Johnson" }]
2. get_entity(entity_id="uuid")
→ full fields, relations, settings
3. update_entity(entity_id="uuid", fields={"stage": "negotiation"})
4. create_activity(
activity_type="meeting",
entity_id="uuid",
subject="Q3 pricing call",
description="Budget confirmed. Follow up by Friday."
)
Task management
# Create a follow-up task
create_activity(
activity_type="task",
subject="Send proposal to Alice",
entity_id="deal-uuid",
due_date="2026-06-27T09:00:00Z",
priority="high"
)
# List open tasks for a deal
list_activities(entity_id="deal-uuid", activity_type="task", status="not_started")
# Accept an AI-generated suggestion as a task
list_task_suggestions(entity_type="deal", entity_id="deal-uuid")
accept_task_suggestion(suggestion_id="sug-uuid", due_date="2026-06-28T10:00:00Z")
Research and note-taking
# Search knowledge base before a call
search_kb_documents(q="Acme pricing terms")
get_kb_document(document_id="doc-uuid")
# Take a post-call note
create_note(
entity_id="person-uuid",
entity_type="person",
title="Q3 call — 2026-06-22",
body="## Key points\n- Budget confirmed $50k\n- Decision by July 1\n- Legal review needed"
)