Giant Context
Giant ContextAsk for early access

CRM

Manage contacts, companies, activities, and CRM data.


GET

Get one activity's description, writing app and JSON data payload

/organizations/{organizationId}/projects/{projectId}/apps/crm/{appId}/activities/{activityId}
Parameters
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
activityIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { activities } = await gc.crm.listCrmActivities({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const { activity } = await gc.crm.getCrmActivity({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  activityId: activities[0].id,});
GET

List the activity timeline for a whole CRM app, newest first, searchable

/organizations/{organizationId}/projects/{projectId}/apps/crm/{appId}/activities
Parameters
page
query · number
pageSize
query · number
lite
query · string
sort
query · string
search
query · string
contactId
query · string
companyId
query · string
writtenBy
query · string
createdAt
query · string
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});
const { activities } = await gc.crm.listCrmActivities({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
POST

Log a past-tense sentence onto a contact or company timeline, append-only

/organizations/{organizationId}/projects/{projectId}/apps/crm/{appId}/activities
Parameters
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
BodyRequired
data
object
companyId
string
contactId
string
writtenBy
string
descriptionRequired
string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});
const result = await gc.crm.logCrmActivity({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  data: { type: "note", content: "Followed up with customer" },});
GET

List a company's activity timeline, newest first, whatever app logged it

/organizations/{organizationId}/projects/{projectId}/apps/crm/{appId}/companies/{companyId}/activities
Parameters
page
query · number
pageSize
query · number
lite
query · string
sort
query · string
search
query · string
writtenBy
query · string
contactId
query · string
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
companyIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { companies } = await gc.crm.listCrmCompanies({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const { activities } = await gc.crm.listCrmCompanyActivities({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  companyId: companies[0].id,});
GET

List contacts linked to one company, paginated, alphabetical by last name

/organizations/{organizationId}/projects/{projectId}/apps/crm/{appId}/companies/{companyId}/contacts
Parameters
page
query · number
pageSize
query · number
lite
query · string
sort
query · string
search
query · string
status
query · string
source
query · string
title
query · string
department
query · string
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
companyIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { companies } = await gc.crm.listCrmCompanies({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const { contacts } = await gc.crm.listCrmCompanyContacts({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  companyId: companies[0].id,});
GET

A company's timeline — its people's happenings, one stream

/organizations/{organizationId}/projects/{projectId}/apps/crm/{appId}/companies/{companyId}/edges
Parameters
page
query · number
pageSize
query · number
lite
query · string
limit
query · integer
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
companyIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { companies } = await gc.crm.listCrmCompanies({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const { edges } = await gc.crm.listCrmCompanyEdges({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  companyId: companies[0].id,});
GET

Get one company with its profile fields and count of linked contacts

/organizations/{organizationId}/projects/{projectId}/apps/crm/{appId}/companies/{companyId}
Parameters
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
companyIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { companies } = await gc.crm.listCrmCompanies({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const { company } = await gc.crm.getCrmCompany({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  companyId: companies[0].id,});
GET

List companies in one CRM app, alphabetical by name, each with contact count

/organizations/{organizationId}/projects/{projectId}/apps/crm/{appId}/companies
Parameters
page
query · number
pageSize
query · number
lite
query · string
sort
query · string
search
query · string
name
query · string
industry
query · string
size
query · string
email
query · string
website
query · string
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});
const { companies } = await gc.crm.listCrmCompanies({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});

BuiltAutonomously With AI
This content was built autonomously. Giant Context analyzed the site, determined what was missing, created and submitted an idea and draft, which Giant Context staff accepted and published.
Giant Context
Product
  • How It Works
  • Mind
  • Create
  • Capture
  • Nurture
  • Optimize
  • Publishing
  • Pricing
  • Use Cases

© 2026 Giant Context
Privacy PolicyTermsCookie PolicyAcceptable Use
Powered by
CRM | Giant Context