MCP App Store
by KeenEthics
Coevera icon

Coevera

By Pipelinersales Corporation

Get New App Alerts

Overview

Connect ChatGPT to your Coevera (formerly Pipeliner CRM) and work with your sales data conversationally. Search accounts, contacts, leads, opportunities, tasks, and appointments using natural-language queries, then create follow-up tasks or update deal stages directly from chat. The server supports standard fields, custom fields, and custom entities, with filters for precise queries. Useful for sales reps preparing for calls, managers reviewing pipeline health, and ops teams running ad-hoc reports without exporting to CSV.

Tools

bulk_archive_leads

ChatGPT
Archives a set of leads. This is a business operation, not a plain is_archived flag update — it triggers server-side logic: AI fitness indicator snapshot, timeframe-in-step tracking, approval removal, optional memo creation, and task completion. Key differences from bulk_archive_opportunities: • entity_fields is optional. When omitted, all validations are skipped entirely. When provided, conditional field requirements are enforced. • Activity completion (complete_activity_ids) is scoped to Tasks only — appointments and other activity types are not affected. • No quote archiving — leads do not own quotes. • No recurrence spawn — leads have no recurrence configuration. Async behaviour: batches of 20 or more leads are processed asynchronously via a background job. In that case the response includes an asyncOperationId to track progress. lead_ids: IDs of the leads to archive. entity_fields: Optional dict of field api_name→value to apply before archiving (e.g. {"reason_of_close_id": "..."}). memo_text: Optional text for a Memo linked to each lead. complete_activity_ids: Optional list of task IDs to mark as completed (Tasks only). rollback_method: ROLLBACK_ALL (default) or ROLLBACK_FAILED.

bulk_archive_opportunities

ChatGPT
Archives a set of opportunities. This is a business operation, not a plain is_archived flag update — it triggers server-side logic: AI fitness indicator snapshot, approval removal, optional memo creation, activity completion, and quote archiving (transitions linked quotes to Lost). Important side effect: if an opportunity has a recurrence configured with a Lost condition, archiving may spawn a new copy of the opportunity at the recurrence step with a computed next closing date. Unlike bulk_move_opportunities, archiving cannot accept quotes — only archive them. Async behaviour: batches of 20 or more opportunities are processed asynchronously via a background job. In that case the response includes an asyncOperationId to track progress. opportunity_ids: IDs of the opportunities to archive. entity_fields: Optional dict of field api_name→value to apply before archiving (e.g. {"reason_of_close_id": "...", "closing_date": "2024-12-31"}). memo_text: Optional text for a Memo linked to each opportunity. complete_activity_ids: Optional list of activity IDs to mark as completed. archive_quote_ids: Optional list of quote IDs to transition to Lost status. rollback_method: ROLLBACK_ALL (default) or ROLLBACK_FAILED.

bulk_move_opportunities

ChatGPT
Moves a set of opportunities to a new pipeline step. This is a business operation, not a plain field update — it triggers server-side logic: timeframe-in-step tracking, optional memo creation, activity completion, and quote status transitions. Constraints: • The target step must belong to the same pipeline as each opportunity; cross-pipeline moves are not allowed (use changePipeline instead). • Moving backward (lower sort order) skips validation; moving forward runs full validation including conditional field requirements. • The target step may have checklist requirements (mandatory fields, linked activities, documents) configured by the pipeline admin. These are enforced server-side on move; if any required items are unmet, individual records will fail validation. • An opportunity with a pending approval is move-locked and cannot be moved until the approval is resolved; this operation does not remove approvals. Async behaviour: batches of 20 or more opportunities are processed asynchronously via a background job. In that case the response includes an asyncOperationId to track progress. opportunity_ids: IDs of the opportunities to move. step_id: ID of the destination pipeline step. memo_text: Optional text for a Memo linked to each opportunity. complete_activity_ids: Optional list of activity IDs to mark as completed on each opportunity. accept_quote_ids: Optional list of quote IDs to transition to Accepted status. archive_quote_ids: Optional list of quote IDs to transition to Lost status. rollback_method: ROLLBACK_ALL (default) or ROLLBACK_FAILED — controls whether a per-opportunity failure aborts the entire batch (ROLLBACK_ALL) or only that record (ROLLBACK_FAILED).

bulk_qualify_leads

ChatGPT
Converts a set of leads into opportunities. This is a destructive entity-type promotion — each Lead is physically deleted from the database and replaced by a new Opportunity that shares the same primary key. What happens server-side per lead: • Common fields are copied from Lead to Opportunity (skipping non-applicable fields like reason_of_close). • The target step is set from step_id; any additional opportunity_fields are merged in. • Both the Lead's step checklist and the Opportunity's target-step checklist are enforced. • The resulting Opportunity is flagged was_qualified=True (permanent audit marker used by changelog). • Active email sequences are re-pointed from the lead ID to the opportunity ID. Choosing the right step_id: A Step entity belongs either to a Lead Process (has lead_process_id) or an Opportunity Pipeline (has pipeline_id). Only steps with pipeline_id are valid targets for qualification — steps with lead_process_id are lead-only and will cause a 'Cannot qualify lead to lead process step' error. The final (Won) step of a pipeline is also rejected. Use search_records on Step with fields=['id','name','pipeline_id','lead_process_id'] to identify the correct step before calling this tool. Validation — qualification runs full Opportunity validation: Required Opportunity fields and required relations must be satisfied either on the source Lead already or via opportunity_fields. Common failures: • closingDate missing — pass it in opportunity_fields as {"closingDate": "YYYY-MM-DD"}. • No primary account relation — create a LeadOpptyAccountRelation with is_primary=true on the lead before qualifying, or the pipeline step's checklist may block qualification. • Step checklist requirements — inspect the step's checklist fields if validation errors persist. opportunity_fields field names: Keys must use the GraphQL/API camelCase names, NOT the CRM schema snake_case names. Correct: {"closingDate": "2026-12-31", "ownerId": "<uuid>"} Incorrect: {"closing_date": "2026-12-31", "owner_id": "<uuid>"} No async chunking: all leads are converted synchronously regardless of batch size. lead_ids: IDs of the leads to qualify. step_id: ID of the target Opportunity pipeline step (must have pipeline_id, not lead_process_id). opportunity_fields: Optional dict of additional camelCase field name→value pairs for the resulting opportunities (e.g. {"closingDate": "2026-12-31"}). Do not include stepId here. rollback_method: ROLLBACK_ALL or ROLLBACK_FAILED. Note: the BulkQualifyLead mutation has no server-side default — omit to let the server decide.

change_ownership

ChatGPT
Unified ownership reassignment across supported CRM entity types. Supported entities and their dispatch path: • Task → changeOwnershipTask GraphQL mutation (per record, sequential). Requires unit_id. • Opportunity → changeOwnershipOpportunity GraphQL mutation (per record, sequential). Requires unit_id. • Contact, Account, Appointment → plain owner_id update via REST. unit_id is optional. • Lead, Memo → plain owner_id update via REST. unit_id is optional. Warning: after reassignment the service account loses write and ownership permissions on these records and cannot self-revert. • All other entity types → unsupported error, no CRM call is made. Returns a list with one entry per record: {"id": "...", "url": "..."} on success {"id": "...", "error": "..."} on per-record failure (mutation path) {"id": "...", "url": "...", "warning": "..."} for Lead/Memo transfers entity_name: CRM entity type to reassign (e.g. 'Opportunity', 'Task', 'Contact'). record_ids: UUIDs of the records to reassign. Must not be empty. owner_id: UUID of the new owner (Client entity). unit_id: UUID of the new sales unit. Required for Task and Opportunity. (SalesUnit entity) options: Entity-specific flags. Unknown keys are silently ignored; missing keys default to False. keep_owner_as_editor (Task, Opportunity) — keep the displaced owner as a sharing Editor. transfer_linked_records (Opportunity) — cascade-reassign linked records owned by the displaced owner.

complete_step_checklist_item

ChatGPT
Records that a step checklist requirement has been satisfied for a specific opportunity, lead, or quote by creating a LeadOpptyStepCheckListRelation record. Each checklist item type requires different evidence — supply the matching ID field: Default / CreateInfluenceMap — set item_checked=true (no evidence ID needed) ActivityType — supply activity_id pointing to an existing Task or Appointment of the type the checklist item requires CreateNote — supply note_id pointing to an existing Note linked to the record AttachDocument / UseDocumentTemplate — supply cloud_object_id pointing to an uploaded document SendEmail — supply email_id pointing to a sent Email FieldType — no relation record needed; set the field value directly on the Opportunity via update_records instead step_checklist_id: UUID of the StepChecklist item being satisfied. lead_oppty_id: UUID of the Opportunity or Lead. Mutually exclusive with quote_id. quote_id: UUID of the Quote. Mutually exclusive with lead_oppty_id. item_checked: Set to true for Default-type items that have no linked evidence. activity_id: UUID of the Task or Appointment that satisfies an ActivityType item. note_id: UUID of the Note that satisfies a CreateNote item. cloud_object_id: UUID of the uploaded document for AttachDocument / UseDocumentTemplate items. email_id: UUID of the sent Email for SendEmail items.

create_records

ChatGPT
Creates one or more records in a Coevera CRM entity. Each record is a dict of field api_name → value pairs. Returns a result list in the same order as the input: each entry is either {"id": "...", "url": "..."} on success or an error object with a "code" field on failure. Invoke to add new records to the CRM.

delete_records

ChatGPT
Deletes records by ID from a Coevera CRM entity. This is a soft delete: records are flagged as deleted in the CRM, not physically removed. Deleting can also affect related records — e.g. deleting a recurring Appointment also deletes its occurrences, deleting an Email also deletes draft replies to it, and deleting an Account re-parents its child accounts. Only entities with delete permission in meta_list_entity_types can be deleted; the number of IDs per call is limited. Returns a result list in the same order as record_ids: each entry is either {"id": "..."} on success or an error object ("code" for CRM errors, "error" for invalid IDs or tool errors); failures do not prevent the remaining records from being deleted. Invoke only when the user explicitly asks to delete specific records.

export_records

ChatGPT
Exports Coevera CRM records to a CSV file and returns a one-time download link instead of the records. The response holds no rows, only the link and a description of the file. search_records and get_records return the records themselves, up to 100 per call; run_report computes counts, sums and breakdowns in the CRM without a file. The link: • works for one download: the first download, by anyone, uses it up; a second request gets HTTP 410; • needs no login: whoever has it can download the file until it is used or expires (expires_in_seconds); • can be opened in a browser or downloaded by code (curl, Python). The file is not stored on the server; it is read from the CRM during the download. Each call creates a new, independent link. Response shape: • download_url, expires_in_seconds — null when nothing matches • row_count — rows in the file; total_matching — records that match the filter • truncated, truncated_reason — the file has fewer rows than total_matching: "max_rows" (only the first max_rows records), "crm_error" (the CRM failed to load a record and the file stops before it; see crm_error, failed_after_id), "time_budget" / "crm_rate_limit" (counting stopped early) • file — how the file is written: encoding, delimiter, decimal separator, date formats, booleans, null • columns — one entry per column in file order: name (the header), type, content, references, options, currency • inaccessible_fields — fields left out because the user's role cannot read them Values: headers are field api_names, composite parts are dotted (value.base_value). References (owner, step, types, currency), relations (primary_account, primary_contact) and dropdowns hold names and labels, not ids, also in *_id columns; with include_ids, each of them is followed by an id column. Date-times are UTC. Only records and fields the user may see are exported, and exporting requires the Export permission of the user's CRM role.

get_records

ChatGPT
Fetches records by ID from a Coevera CRM entity. Returns {entity, count, records} where records is the full list of matching records in the same order as record_ids (records not found in the CRM are simply absent). fields: list of field api_names to include in each record. expand (optional): list of field api_names to expand as nested objects. Only supported for relation fields. Invoke when specific record IDs are already known and their field values are needed.

get_step_checklist_status

ChatGPT
Returns the checklist items configured on a pipeline step — the requirements that must be satisfied before an opportunity can advance to that step. step_id: UUID of the pipeline step to inspect. opportunity_id: Optional UUID of a specific opportunity. When provided, each item is annotated with is_complete (True/False) showing whether that requirement is already satisfied for that opportunity. When omitted, only the definitions are returned. item_type values: FieldType — a specific CRM field must have a value (field_id identifies which) ActivityType — a task or appointment of a specific type must be linked or completed (activity_type_id identifies the type; item_validation specifies whether linking or completing is required) CreateNote — a note must be created on the record AttachDocument — a file must be attached UseDocumentTemplate — a document template must be filled and attached SendEmail — an email must be sent from the record EnrollToEmailSequence — record must be enrolled in an email sequence RunProcess — a process automation must be triggered Default — generic manual requirement item_validation values (relevant for ActivityType items): Required — the activity must exist RelatedActivityLinked — a matching activity must be linked to the record RelatedActivityCompleted — a matching activity must be completed Results are ordered by sort_order ascending.

me

ChatGPT
Returns identity information for the authenticated user: connected Pipeliner space (space_id), user ID, granted OAuth scopes, OAuth client ID, token expiry, and resource audience. Invoke when user identity, connected space, or OAuth permissions need to be determined.

meta_describe_entity

ChatGPT
Returns the field schema for a named Coevera CRM entity. The response includes entity metadata and a fields array. Each field entry contains: api_name, label, data type, required (bool), read_only (bool), filterable (bool) default_value, and — for dropdown fields — an options list of allowed values. Composite fields include a composite_field descriptor. Invoke when field names, types, or constraints are needed to construct a search filter or a create/update payload.

meta_list_entity_types

ChatGPT
Returns all entity types available in the Coevera CRM for the authenticated user. Each entry includes the entity name, display label, kind (primary or relation), api_name, custom_name, description, and the user's CRUD permissions (read, update, write, delete as booleans). Invoke when the entity name is unknown or when available entities and permissions need to be enumerated.

run_report

ChatGPT
Aggregates Coevera CRM records in a single call: counts, sums, averages, minimum and maximum, optionally grouped by up to 3 fields. Use it for totals and breakdowns such as "open pipeline value by step and owner", "weighted forecast", "deals closing per quarter" or "leads by source" instead of paging through search_records and adding values up. Response shape: • groups — [{key: {<group field>: value}, metrics: {<metric>: number}}], largest first • totals — the same metrics over all scanned records • group_count / groups_truncated — number of groups and whether only the top limit_groups are returned • scanned / total_matching / truncated / truncated_reason / scan_cap — how many records were read. When truncated is true, only the first scanned matching records were aggregated: truncated_reason "scan_cap" (the cap was reached), "time_budget" (the call ran out of time) or "crm_rate_limit" (the CRM refused more requests). Narrow the filter for exact totals, and say the result is partial • base_currency — currency of all currency amounts (present when a currency field is aggregated) Group keys for users, steps, sales units, currencies and dropdown fields are returned as {id, name}. Date fields can be grouped by period with ':month', ':quarter' or ':year' (e.g. "closing_date:quarter"); periods use the stored date (UTC for date-times). Currency fields (e.g. Opportunity value) are aggregated in the space's base currency. Group by '<currency field>.currency_id' (e.g. "value.currency_id") for a per-currency breakdown. weighted=true (Opportunity only) adds weighted_value = value × probability of the deal's current step, counted for open opportunities only (won and lost deals add nothing). To report on open pipeline only, filter by status, e.g. {"status": {"eq": ["1"]}} (Opportunity status: 1 Open, 2 Lost, 3 Won). Only records the user is allowed to see are included. Use meta_describe_entity first to find field api_names.

search_records

ChatGPT
Searches a Coevera CRM entity and returns all matching records for the current page. Response shape: • entity — entity name • count — number of records returned in this page • records — list of all normalized matching records • pagination — {has_next_page: bool, next_cursor: str|null} To fetch the next page, pass the returned next_cursor as the after parameter. fields: list of field api_names to include in each record. filter (optional): boolean filter tree — see schema for structure. Omit to match all records. order_by (optional): list of sort objects mapping a field name to 'Asc' or 'Desc'. limit: number of records to return per page (default 100, max 100). after (optional): pagination cursor from a previous response's next_cursor. Omit for the first page. expand (optional): list of field api_names to expand as nested objects. Only supported for relation fields. Invoke when records matching specific field criteria need to be found.

set_record_picture

ChatGPT
Sets the picture of an Account (logo), Contact (photo) or Product (product image), replacing the current picture. Two phases: this call checks the record and returns a one-time upload_url; then POST the image to it as multipart/form-data, e.g. curl -X POST {upload_url} -F file=@/path/to/logo.png. Accepted formats: PNG, JPEG, GIF, WebP; the file content is checked, not only its name. Check the file size against max_file_bytes BEFORE uploading; a larger file is rejected with HTTP 413 and the one-time upload_url is then spent. The upload endpoint responds with entity_name, record_id, record_url and the stored picture (id, filename, mime_type, size, width, height, url). Files uploaded with upload_cloud_object_document are documents and cannot be used as a picture.

update_records

ChatGPT
Partially updates existing records in a Coevera CRM entity; only the fields provided in each record dict are changed. Each record dict must include the record's "id" field to identify the target. Returns a result list in the same order as the input: each entry is either {"id": "...", "url": "..."} on success or an error object on failure. Records with missing id or read-only field violations are skipped and reported as errors; valid records are still submitted. Invoke to modify one or more existing records.

upload_cloud_object_document

ChatGPT
Initiates a two-phase file upload to Coevera CRM. Returns upload_url, upload_token, cloud_object_id, expires_in_seconds, max_file_bytes and max_file_mib. Check the file size against max_file_bytes BEFORE uploading — larger files are rejected with HTTP 413 and the one-time upload_url is then spent. After receiving these, upload the file binary to upload_url via: curl -X POST {upload_url} -F file=@/path/to/file The upload endpoint responds with the stored file nested under createCloudObject.cloudObject (id, filename, mimeType, size, url, publicUrl).

bulk_archive_leads

Claude

bulk_archive_opportunities

Claude

bulk_move_opportunities

Claude

bulk_qualify_leads

Claude

change_ownership

Claude

complete_step_checklist_item

Claude

create_records

Claude

get_records

Claude

get_step_checklist_status

Claude

me

Claude

meta_describe_entity

Claude

meta_list_entity_types

Claude

search_records

Claude

update_records

Claude

Capabilities

Writes

Similar Apps