OnePageCRM integration
OnePageCRM is an action-focused sales CRM. An agent can list, search, create, update and delete contacts, companies, deals, next actions, notes, calls and meetings, move contacts between statuses, owners, tags and sales cycles, read the action stream and team stream, and manage the account's statuses, lead sources, custom, company and deal fields, predefined actions and items, relationship types, pipelines, filters, notifications and webhooks. Contact, company, user, note, call and meeting tools return personal data (names, email addresses, phone numbers, addresses, and what was noted about people). An update replaces the whole record unless partial=true is passed. The bootstrap and API key rotation routes (they return the API key), the pre-signed S3 upload form and the attach-file routes that depend on it are not exposed, and webhook signing secrets are stripped from answers. Authentication is HTTP Basic: your user_id as username and your api_key as password, both on the OnePageCRM API settings page (Configuration tab).
Say what should happen.
The workflow builds itself.
What you can do with OnePageCRM
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Action, 7 operations
create_actionCreate actionPOSTCreates an action on a contact. contact_id and text are required, text is the step to take, max 140 characters. status sets the action type: asap, date, date_time, waiting or queued (default date); assignee_id defaults to the calling user.create_contact_actionCreate contact actionPOSTCreates an action on this contact. text is required, the step to take, max 140 characters. status sets the action type: asap, date, date_time, waiting or queued (default date); assignee_id defaults to the calling user.delete_actionDelete actionDELETEDeletes an action. Repeat the same request with undo=true to restore it.get_actionGet actionGETReturns one action, including its computed weight, higher means more urgent.list_actionsList actionsGETReturns actions in Action Stream order: ASAP first, then dated actions by due date (overdue first), then waiting-for, then queued actions without a date, then completed.list_company_actionsList company actionsGETReturns actions across the contacts that belong to this company, with the same paging, sorting and date filters as list_actions. This covers the company's own contacts, not contacts merely linked to it.list_contact_actionsList contact actionsGETReturns the actions on this contact, with the same paging, sorting and date filters as list_actions. Pass status to narrow to asap, waiting, date, queued or done.
Call, 7 operations
create_callCreate callPOSTLogs a phone call against a contact. contact_id is required; record the outcome with call_result (from the account's configured results), plus the number dialled and an optional recording link.create_contact_callCreate contact callPOSTLogs a phone call against this contact. Record the outcome with call_result (from the account's configured results), plus the number dialled and an optional recording link.delete_callDelete callDELETEDeletes a logged call permanently, the API has no undo, unlike the web app. Its attachments go with it, it leaves the contact's timeline, and the author's call targets are recalculated.get_callGet callGETReturns one logged call, its text, author, result, call time, phone number, the contact it belongs to, and any attachments. Any user who can see the call's contact can read it, not just its author. Returns personal data.list_callsList callsGETReturns calls logged against your contacts, each with its result, phone number and notes. Returns personal data.list_company_callsList company callsGETReturns calls logged against the contacts that belong to this company, most recently updated first, the company's own contacts only, not contacts merely linked to it. Paging and date filters match list_calls. Returns personal data.list_contact_callsList contact callsGETReturns the calls logged against this contact, most recently updated first, with the same paging and date filters as list_calls. Each call carries its result, call time and any attachments. Returns personal data.
Deal, 7 operations
create_contact_dealCreate contact dealPOSTCreates a deal on this contact. name is required (up to 60 characters; longer names are truncated). status is pending, won or lost (default pending); stage is a per-pipeline integer and applies to pending deals only.create_dealCreate dealPOSTCreates a deal on a contact. contact_id and name are required (name up to 60 characters; longer names are truncated). status defaults to pending; stage is a per-pipeline integer and applies to pending deals only.delete_dealDelete dealDELETEDeletes a deal. Only users with the delete deals permission can delete deals.get_dealGet dealGETReturns one deal, including its stage, financial fields and any deal items.list_company_dealsList company dealsGETReturns deals across the contacts that belong to this company, with the same paging, sorting and filters as list_deals. This covers the company's own contacts, not contacts merely linked to it.list_contact_dealsList contact dealsGETReturns the deals on this contact, with the same paging, sorting and filters as list_deals, including filtering by status, stage, pipeline_id or owner_id.list_dealsList dealsGETReturns the account's deals. Each deal belongs to one primary contact and moves through your pipeline as pending, then won or lost.
Meeting, 7 operations
create_contact_meetingCreate contact meetingPOSTLogs a meeting against this contact. place is free-form text (max 100 characters); meeting_time records when it happened.create_meetingCreate meetingPOSTLogs a meeting against a contact. contact_id is required; place is free-form text (max 100 characters) and meeting_time records when it happened.delete_meetingDelete meetingDELETEDeletes a meeting permanently, the API has no undo, unlike the web app. Its attachments go with it, it leaves the contact's timeline, and the author's meeting targets are recalculated.get_meetingGet meetingGETReturns one meeting, its text, author, meeting time, place, the contact it belongs to, and any attachments. Any user who can see the meeting's contact can read it, not just its author. Returns personal data.list_company_meetingsList company meetingsGETReturns meetings logged against the contacts that belong to this company, most recently updated first, the company's own contacts only, not contacts merely linked to it. Paging and date filters match list_meetings. Returns personal data.list_contact_meetingsList contact meetingsGETReturns the meetings logged against this contact, most recently updated first, with the same paging and date filters as list_meetings. Each meeting carries its time, place and any attachments. Returns personal data.list_meetingsList meetingsGETReturns meetings logged against your contacts, each with its time, place and notes. Returns personal data.
Note, 7 operations
create_contact_noteCreate contact notePOSTLogs a note against this contact. text carries the note body; link a deal with linked_deal_id. Logging a note updates the contact's last activity date.create_noteCreate notePOSTLogs a note against a contact. contact_id is required; text carries the note body; link a deal with linked_deal_id. Logging a note updates the contact's last activity date.delete_noteDelete noteDELETEDeletes a note permanently, the API has no undo, unlike deleting from the web app. Its attachments are removed with it and the note disappears from the contact's timeline. Any user who can see the contact can delete it.get_noteGet noteGETReturns one note, its text, author, date, the contact it belongs to, any attachments, and the linked deal if there is one. Any user who can see the note's contact can read it, not just its author. Returns personal data.list_company_notesList company notesGETReturns notes logged against the contacts that belong to this company, most recently updated first, the company's own contacts only, not contacts merely linked to it. Paging and date filters match list_notes. Returns personal data.list_contact_notesList contact notesGETReturns the notes logged against this contact, most recently updated first, with the same paging and date filters as list_notes. Each note carries its attachments and linked deal, if any. Returns personal data.list_notesList notesGETReturns notes logged against your contacts. A note can also be linked to a deal. Returns personal data.
Company field, 4 operations
create_company_fieldCreate company fieldPOSTOnly admins can create company fields.delete_company_fieldDelete company fieldDELETEOnly admins can delete company fields.get_company_fieldGet company fieldGETReturns one company custom field by ID, including its type and, for select_box and multiple_choice fields, the choices available. Company fields are numbered separately from contact and deal fields.list_company_fieldsList company fieldsGETReturns the custom fields defined for companies on your account, id, name, type, position and, for select_box and multiple_choice fields, their choices. These are separate from contact custom fields and deal fields.
Contact, 4 operations
create_contactCreate contactPOSTCreates a contact. Provide last_name or company_name, one of the two is required. owner_id defaults to the calling user and status_id to lead.delete_contactDelete contactDELETEDeletes a contact. Only users with the delete_contacts permission can delete contacts. Repeat the same request with undo=true to restore the most recent deletion for that ID, the restore window depends on the account plan, from 1 day up to 60 days.get_contactGet contactGETReturns one contact: names, company link, status, tags, communication lists (phones, emails, urls, addresses) and custom fields. Returns personal data.list_contactsList contactsGETReturns the contacts you can access, sorted by name, with names, emails, phones and addresses (personal data). Filter by company_id, email, phone, tag, status_id, starred, owner_id and more.
Custom field, 4 operations
create_custom_fieldCreate custom fieldPOSTOnly admins can create custom fields.delete_custom_fieldDelete custom fieldDELETEOnly admins can delete custom fields.get_custom_fieldGet custom fieldGETReturns one contact custom field by ID, including its type and, for select_box and multiple_choice fields, the list of choices available. Anniversary fields also carry reminder_days.list_custom_fieldsList custom fieldsGETReturns the custom fields defined for contacts on your account, id, name, type, position and, for select_box and multiple_choice fields, their choices. Filter by type, and sort by position (the default), created_at or modified_at.
Deal field, 4 operations
create_deal_fieldCreate deal fieldPOSTOnly admins can create deal fields.delete_deal_fieldDelete deal fieldDELETEOnly admins can delete deal fields.get_deal_fieldGet deal fieldGETReturns one deal custom field by ID, including its type and, for select_box and multiple_choice fields, the choices available. Unlike contact custom fields, deal fields cannot be of type anniversary.list_deal_fieldsList deal fieldsGETReturns the custom fields defined for deals on your account, id, name, type, position and, for select_box and multiple_choice fields, their choices. Deal fields are separate from contact and company custom fields.
Lead source, 4 operations
create_lead_sourceCreate lead sourcePOSTCreates a lead source. text is required and limited to 40 characters; the id is server-generated. Admin only. Adding one re-sorts the list, which is kept in alphabetical order.delete_lead_sourceDelete lead sourceDELETEDeletes a lead source. Admin only. Contacts and webhooks referencing it have their lead_source cleared. The last remaining lead source cannot be deleted, an account must always keep at least one.get_lead_sourceGet lead sourceGETReturns one lead source with its contact counts. The path id is the source's system_id, the value contacts carry in their lead_source field, which is separate from the record's internal id.list_lead_sourcesList lead sourcesGETReturns the account's lead sources with per-user and total contact counts, in alphabetical order. Each id is the source's system_id, the value contacts reference in their lead_source field.
Predefined action, 4 operations
create_predefined_actionCreate predefined actionPOSTCreates a predefined action template. text (max 140 characters) and days are required; text can embed placeholders like [first name] that are substituted when the action is applied to a contact.delete_predefined_actionDelete predefined actionDELETEDeletes a predefined action template. Actions already created from it on contacts are untouched. If this leaves its group with fewer than two members, the group is dissolved automatically.get_predefined_actionGet predefined actionGETReturns one predefined action template: its text, days offset and, when it belongs to a group, that group's action_group_id. A group's ID returns not-found here: use get_predefined_action_group for groups.list_predefined_actionsList predefined actionsGETReturns the account's predefined actions, reusable next-action templates, each with the text to apply and a days offset used to calculate the due date. Actions that belong to a group are included, and carry that group's action_group_id.
Predefined action group, 4 operations
create_predefined_action_groupCreate predefined action groupPOSTCreates a predefined action group. text is required and action_ids must list at least two existing, currently ungrouped predefined actions. Names longer than 127 characters are truncated on save.delete_predefined_action_groupDelete predefined action groupDELETEDeletes a predefined action group. The action templates it contained are kept and simply become ungrouped, deleting a group never deletes its actions.get_predefined_action_groupGet predefined action groupGETReturns one predefined action group, including action_ids, the templates that currently belong to it, resolved live. Passing a plain predefined action's ID here returns not-found.list_predefined_action_groupsList predefined action groupsGETReturns the account's predefined action groups. A group bundles two or more predefined action templates so they can all be applied to a contact in one request, each with its own due date.
Predefined item, 4 operations
create_predefined_itemCreate predefined itemPOSTCreates a predefined item. name is required and must be unique on the account; description, cost and price are optional. Requires the deal items permission. Accounts are capped at 1000 predefined items.delete_predefined_itemDelete predefined itemDELETEDeletes a predefined item. Requires the deal items permission. Line items already added to deals keep their own copy of the name, cost and price, so existing deals are unaffected.get_predefined_itemGet predefined itemGETReturns one predefined item, a reusable product or service with its name, description, cost and price, used as a template for deal line items.list_predefined_itemsList predefined itemsGETReturns the account's predefined items, reusable products or services with a name, description, cost and price that can be dropped onto a deal as line items. Search by name, and page through with page and per_page.
Predefined item group, 4 operations
create_predefined_item_groupCreate predefined item groupPOSTCreates a predefined item group. name is required and must be unique on the account; deal_items lists the IDs of the predefined items to bundle (up to 200). The group's cost and price are derived from its members.delete_predefined_item_groupDelete predefined item groupDELETEDeletes a predefined item group. The predefined items it bundled are not deleted, only the grouping is removed.get_predefined_item_groupGet predefined item groupGETReturns one predefined item group with the items it bundles. Its cost and price are the totals of its member items, and subcount is the number of item IDs the group holds.list_predefined_item_groupsList predefined item groupsGETReturns the account's predefined item groups. A group bundles predefined items under one name, and its cost and price are the sums of its members. Pass include_items to embed the items themselves.
Relationship, 4 operations
create_contact_relationshipCreate contact relationshipPOSTLinks this contact to another. related_contacts must hold exactly two entries, one of them this contact, each with the variant_id for its end. No reverse record is created; the relationship is a single document covering both.delete_contact_relationshipDelete contact relationshipDELETEDeletes a relationship between two contacts. Repeat the same request with undo=true to restore it.get_contact_relationshipGet contact relationshipGETReturns one relationship for this contact, naming both parties and the variant label at each end. The contact in the path must be one of the two parties, otherwise the request is rejected as invalid.list_contact_relationshipsList contact relationshipsGETReturns the relationships this contact is part of. Each one is a single record naming both contacts, with the variant label that applies to each end. Filter by relationship_type_id or narrow to a specific pair.
Relationship type, 4 operations
create_relationship_typeCreate relationship typePOSTCreates a relationship type from a variants list: one variant name makes a symmetrical type (Partner/Partner), two make a directional one (Manager/Reports to). Whether a type is symmetrical is derived from that count, not set directly.delete_relationship_typeDelete relationship typeDELETEDeletes a relationship type and every relationship using it, including ones that were soft-deleted and could otherwise have been restored. This cascade is permanent, so check usage before calling it.get_relationship_typeGet relationship typeGETReturns one relationship type with its variants. A single variant means the type is symmetrical and both contacts get the same label; two variants mean each end of the relationship gets a different one.list_relationship_typesList relationship typesGETReturns the relationship types defined on your account, each with its variants, the labels used for the two ends of a relationship. A type with one variant is symmetrical (Partner/Partner); one with two is directional (Manager/Reports to).
Status, 4 operations
create_statusCreate statusPOSTCreates a contact status. text (max 20 characters) and color are required, description (max 33) is optional. Admin only. color must be one of the allowed palette values; the system id is server-assigned.delete_statusDelete statusDELETEDeletes a contact status. Admin only. Contacts, companies and webhooks using it fall back to the lead status. The built-in lead status itself cannot be deleted.get_statusGet statusGETReturns one contact status with its counts. The path id is the status's own ObjectId, not the short system id in the status field, note this differs from lead sources, which are addressed by system id.list_statusesList statusesGETReturns the account's contact statuses with per-user and total counts, in their configured order. The status field carries the system id (lead, custom1…) that contacts reference.
Filter, 3 operations
get_filterGet filterGETReturns a saved filter's definition together with the contacts that meet its criteria. Returns personal data.list_contacts_by_filterList contacts by filterGETReturns the contacts matching a saved filter, alongside the filter's own definition. Results come back in Action Stream order and are fixed at 25 per page, per_page is accepted but ignored here. Returns personal data.list_filtersList filtersGETReturns the account's saved contact filters, each with its name and the conditions that define it, the filter definitions themselves, not the contacts they match. To get matching contacts, use list_contacts_by_filter.
Webhook, 3 operations
delete_webhookDelete webhookDELETEDeletes a webhook subscription. OnePageCRM stops posting events to its endpoint.get_webhookGet webhookGETReturns one webhook subscription: its id, name and target URL. The signing secret is not returned by this tool.list_webhooksList webhooksGETReturns the account's webhook subscriptions: each one's id, name and target URL. The signing secret is not returned by this tool.
Cascade, 2 operations
list_contacts_cascadeList contacts cascadeGETDefaults to contacts owned by the logged user, alpha sorted. This endpoint can get contacts above the 10,000 contact. Results returned in batches of 100. Returns personal data.list_contacts_cascade_afterList contacts cascade afterGETDefaults to contacts owned by the logged user, alpha sorted. This endpoint can get contacts above the 10,000 contact. Results returned in batches of 100. Returns personal data.
Company, 2 operations
get_companyGet companyGETReturns one company with its shared details and roll-ups. Company size is the count of its non-deleted contacts. Returns personal data.list_companiesList companiesGETReturns the account's companies, sorted by name, each with its contacts and pending deals. Returns personal data.
Contact photo, 2 operations
create_contact_photoCreate contact photoPOSTUse this endpoint to add a new photo to an existing contact. It takes a parameter `image`, which must be a Base64 encoded string of the image data. Images will be cropped to a centered square and resized to 200x200 pixels.delete_contact_photoDelete contact photoDELETERemoves a contact's photo and returns the updated contact, whose photo_url is then empty. No placeholder or default avatar is substituted by the API.
Linked contact, 2 operations
link_company_contactLink company contactPOSTNotes: Cannot link a contact to the company they already work at.; A company is not allowed to have more than 100 linked contacts.list_company_linked_contactsList company linked contactsGETReturns contacts from other companies that have been linked to this company's own contacts. Each entry carries linked_with, listing which of this company's contacts it is linked to. Paging and sorting only, no filters. Returns personal data.
Notification, 2 operations
get_notificationGet notificationGETReturns one of your notifications by ID. The type field identifies what it is about, for example an assigned action, a note, call, meeting, email or contact assignment, and read shows whether it has been seen.list_notificationsList notificationsGETReturns all notifications (except emails and links) for the given user
Pinned attachment, 2 operations
list_company_pinned_attachmentsList company pinned attachmentsGETThe list of attachments is collected from the attachments pinned to all the contacts in this company. The list of attachments is sorted based on "pinned_at" field, i.e. most recent attachments come first, the list of attachments is paginated.list_contact_pinned_attachmentsList contact pinned attachmentsGETThe list of pinned attachments is sorted based on "pinned_at" field, i.e. most recent attachments come first, the list of attachments is paginated.
Pipeline, 2 operations
get_pipelineGet pipelineGETReturns one pipeline with its ordered stages. Each stage has a numeric stage position and a label; a pipeline holds between one and nine stages. default reflects whether it is your own default pipeline.list_pipelinesList pipelinesGETReturns the account's deal pipelines, each with its ordered stages. default marks the pipeline that is default for you specifically, and stages carry a numeric position and a label.
User, 2 operations
get_userGet userGETReturns one user on your account by ID: name, email, photo, role and account rights (personal data). bcc_email and google_contacts_email are only included when the ID is your own.list_usersList usersGETReturns every user on your account: name, email, photo, role and account rights (personal data). Your own record also includes bcc_email and google_contacts_email. The full team is returned, unpaginated.
Action stream, 1 operation
list_action_streamList action streamGETReturns the logged API user's action stream: contacts prioritized by their next action, with their details (personal data). Accepts the contact filters of list_contacts.
Assign tag, 1 operation
assign_contact_tagAssign contact tagPUTAdds the tag to the contact. Tag names match the account's existing tags case-insensitively.
Attachment, 1 operation
delete_attachmentDelete attachmentDELETEDeletes an attachment from the note, call, meeting or deal it was uploaded to. The file stops being returned by the API immediately; the stored copy is retained rather than purged straight away.
Call result, 1 operation
list_call_resultsList call resultsGETReturns the account's call results: each result key (the value create_call accepts as call_result), its label, and how often you and your team used it.
Change owner, 1 operation
change_contact_ownerChange contact ownerPUTSets the contact's owner.
Change status, 1 operation
change_contact_statusChange contact statusPUTSets the contact's status. The status must be one of the account's configured statuses.
Close sales cycle, 1 operation
close_contact_sales_cycleClose contact sales cyclePUTOnly do this when you are no longer actively trying to sell to this contact. Add an optional closing comment with the `comment` field in the request body.
Country, 1 operation
list_countriesList countriesGETReturns every country OnePageCRM supports, sorted by ISO-3166 country code, each with its name, code and phone prefix.
Delete, 1 operation
delete_contactsDelete contactsDELETEDeletes multiple contacts by ID. Only users with the delete_contacts permission can delete contacts.
Force close sales cycle, 1 operation
force_close_contact_sales_cycleForce close contact sales cyclePUTThis will first delete any actions assigned to the contact. Add an optional closing comment with the `comment` field in the request body.
Logo, 1 operation
delete_company_logoDelete company logoDELETEDelete logo in the given company. When successfully deleted the `photo_url` field value is `null` in the company
Mark all as read, 1 operation
mark_all_notifications_as_readMark all notifications as readPOSTMarks all users' notifications as read
Mark as done, 1 operation
mark_action_as_doneMark action as donePUTMarks the action complete.
Mark as read, 1 operation
mark_notification_as_readMark notification as readPOSTMarks given notification as read
Team stream, 1 operation
list_team_streamList team streamGETReturns the action stream for the entire account in a single list: contacts prioritized by their next action (personal data). Pass user_id to see the stream of one account user.
Showing the first 120 of 158 endpoints. The rest are in the product, searchable from the workflow builder and from chat.
Use OnePageCRM from Claude Code, Cursor or Codex
Connect OnePageCRM in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its OnePageCRM operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect OnePageCRM
- Create your workspace
Sign up free. Nothing to install.
- Connect OnePageCRM once
Add your OnePageCRM connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
OnePageCRM integration FAQ
What can you do with the OnePageCRM integration?
LiveContext exposes 158 operations on OnePageCRM, covering action, call, deal and meeting.
