bulk_archive_leads
ChatGPTArchives 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
ChatGPTArchives 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
ChatGPTMoves 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
ChatGPTConverts 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
ChatGPTUnified 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
ChatGPTRecords 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
ChatGPTCreates 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
ChatGPTDeletes 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
ChatGPTExports 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
ChatGPTFetches 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
ChatGPTReturns 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.
global_search
ChatGPTSearches Coevera CRM records of several entity types at once for a text, like the CRM's search bar: "find Acme", "everything about John Smith", "which record is +1 555 0100". No field names are needed. The best matches come first. Matching: case- and accent-insensitive. A record matches when EVERY word appears somewhere in its searched fields (as a substring; words may be in different fields), OR when the whole text is a close fuzzy match for one field, so a multi-word query can also return near misses. Words of 1–2 characters only match the start of a word. A phrase in double quotes must appear exactly as written and is never matched fuzzily: quote names, emails and phone numbers for precise results. Searched entities: Account, Contact, Lead, Opportunity, Task, Appointment, Project, CloudObject and custom entities with global search enabled (see global_search in meta_list_entity_types; meta_describe_entity lists the fields searched). Only records the user may see are returned. A record can match on any of its searched fields, including ones not shown in its card (for example a custom field), so the card does not always show why it matched. Response shape: • counts — {<entity>: number of matches} for entities with at least one match • total — sum of counts • results — [{entity, id, name, summary, archived, url}], a compact card per record • next_cursor — pass as cursor, with the same query and entity_names, to get the next page; null on the last page. counts and total always cover all pages. Use get_records with entity and id for full details. Use search_records instead when filtering by field values (status, dates, owner) or for entities not listed above.
me
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTReturns 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
ChatGPTAggregates 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
ChatGPTSearches 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
ChatGPTSets 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
ChatGPTPartially 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
ChatGPTInitiates 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
Claudebulk_archive_opportunities
Claudebulk_move_opportunities
Claudebulk_qualify_leads
Claudechange_ownership
Claudecomplete_step_checklist_item
Claudecreate_records
Claudeget_records
Claudeget_step_checklist_status
Claudeme
Claudemeta_describe_entity
Claudemeta_list_entity_types
Claudesearch_records
Claudeupdate_records
Claude