atmon docs

REFERENCE/TOOLKITS/PIPEDRIVE.MD

Pipedrive

Sales CRM. Manage deals, people and organizations, leads, and activities, log notes, and look up pipelines, stages, and products.

PropertyValue
Slugpipedrive
Definition version0.1.0
Base URLhttps://api.pipedrive.com
Auth schemesapi_key
Action tools39
By class20 read, 12 write, 7 destructive
Triggers0
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

78 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 39 cases written by hand and 39 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-135/7844.9%
top-866/7884.6%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

api_key

PropertyValue
Placementheader
Namex-api-token
Rendered as{key}

Submit the key with ConnectionsService rather than putting it in a request; it is sealed at rest and never returned.

Tools

39 action tools. The catalog-wide slug is pipedrive.<tool>, which is what search_tools returns and call_tool takes.

pipedrive.create_deal

Create a new Pipedrive deal: a sales opportunity moving through a pipeline toward a close. Use when the user wants to open, start, or log a sale, not a lead (create_lead is for an unqualified inquiry) or a support case. Requires a title; value, currency, pipeline, stage, and the linked person or organization are optional.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /api/v2/deals.

Arguments:

ArgumentTypeRequiredNotes
currencystringnoThree-letter currency code, e.g. "USD". Defaults to the account's.
expected_close_datestringnoExpected close date, "YYYY-MM-DD".
org_idintegernoId of the organization this deal belongs to, from search_organizations.
owner_idintegernoUser id the deal is assigned to, from list_users.
person_idintegernoId of the person this deal belongs to, from search_persons.
pipeline_idintegernoPipeline id the deal starts in, from list_pipelines. Omits to the default pipeline.
stage_idintegernoStage id the deal starts in, from list_stages.
titlestringyesDeal's name, e.g. "Acme Corp - annual contract".
valuenumbernoDeal's monetary value, e.g. 15000.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.currencystring
data.idinteger
data.org_idinteger
data.owner_idinteger
data.person_idinteger
data.pipeline_idinteger
data.stage_idinteger
data.statusstring
data.titlestring
data.valuenumber

Also retrieved by: "open a new sales opportunity in pipedrive", "start tracking a potential sale in pipedrive", "log a new opportunity in the pipedrive pipeline", "add a prospective sale to pipedrive".

pipedrive.get_deal

Get one Pipedrive deal's full record by id: title, value, stage, pipeline, status, and the linked person or organization. Use when the user names a specific deal or opportunity. For finding a deal by name use search_deals instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/deals/{{params.deal_id}}.

Arguments:

ArgumentTypeRequiredNotes
deal_idintegeryesPipedrive deal id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.currencystring
data.expected_close_datestring
data.idinteger
data.lost_reasonstring
data.org_idinteger
data.owner_idinteger
data.person_idinteger
data.pipeline_idinteger
data.stage_idinteger
data.statusstring
data.titlestring
data.update_timestring
data.valuenumber

Also retrieved by: "pull up the details on a pipedrive opportunity", "what's the status of this pipedrive sale", "show me everything about this pipedrive opportunity", "check where this pipedrive sale stands".

pipedrive.update_deal

Update fields on an existing Pipedrive deal: title, value, stage, or status. Use when the user wants to move a deal to the next stage, reprice it, or mark it won or lost, not create a new opportunity. Setting status to "lost" without a lost_reason still closes the deal.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /api/v2/deals/{{params.deal_id}}.

Arguments:

ArgumentTypeRequiredNotes
currencystringnoThree-letter currency code, e.g. "USD".
deal_idintegeryesPipedrive deal id.
expected_close_datestringnoExpected close date, "YYYY-MM-DD".
lost_reasonstringnoFree-text reason, used when status is "lost".
org_idintegernoId of the organization to link the deal to.
owner_idintegernoUser id to reassign the deal to.
person_idintegernoId of the person to link the deal to.
stage_idintegernoStage id to move the deal to, from list_stages.
statusstring, one of open, won, lostnoDeal status. Set "won" or "lost" to close the deal.
titlestringnoDeal's name.
valuenumbernoDeal's monetary value.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idinteger
data.stage_idinteger
data.statusstring
data.titlestring
data.update_timestring
data.valuenumber

Also retrieved by: "move this pipedrive opportunity to the next stage", "change the value of the sale in pipedrive", "mark this pipedrive opportunity as won", "close this pipedrive sale as lost".

pipedrive.delete_deal

Permanently delete a Pipedrive deal. Use when the user wants to remove or erase an opportunity entirely, not mark it lost, which keeps the record. Irreversible past Pipedrive's own trash window.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /api/v2/deals/{{params.deal_id}}.

Arguments:

ArgumentTypeRequiredNotes
deal_idintegeryesPipedrive deal id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idinteger

Also retrieved by: "erase this pipedrive opportunity for good", "wipe this sale from the pipedrive pipeline", "get rid of this pipedrive deal record entirely", "remove this pipedrive opportunity permanently".

pipedrive.search_deals

Search Pipedrive deals by title or free text across the pipeline. Use when the user describes an opportunity rather than naming a known deal id, for example finding a deal by customer name or keyword.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/deals/search.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
limitintegernoPage size, up to 500. Default 100.
organization_idintegernoRestrict results to deals linked to this organization.
person_idintegernoRestrict results to deals linked to this person.
statusstring, one of open, won, lostnoRestrict results to deals in this status. Omit for all.
termstringyesFree-text search over the deal's title and notes.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataobject
data.itemsarray of object
data.items[].itemobject
data.items[].result_scorenumber

Also retrieved by: "find the pipedrive opportunity for a customer", "look up a pipedrive sale by name", "dig up a pipedrive opportunity I'm forgetting the id for", "track down a sale in the pipedrive pipeline".

pipedrive.list_deals

List Pipedrive deals, most recently updated first, paginated and filterable by stage, status, or owner. Use for browsing or exporting the pipeline rather than looking for one specific deal.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/deals.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
limitintegernoPage size, up to 500. Default 100.
owner_idintegernoRestrict results to deals owned by this user.
pipeline_idintegernoRestrict results to deals in this pipeline, from list_pipelines.
stage_idintegernoRestrict results to deals in this stage.
statusstring, one of open, won, lost, deletednoRestrict results to deals in this status. Omit for all but deleted.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataarray of object
data[].idinteger
data[].stage_idinteger
data[].statusstring
data[].titlestring
data[].valuenumber

Also retrieved by: "show me everything in the pipedrive pipeline", "what pipedrive opportunities are open right now", "browse all the sales in progress in pipedrive", "see every pipedrive opportunity by stage".

pipedrive.add_product_to_deal

Attach a product line item to a Pipedrive deal, with a price and quantity. Use when the user wants to add what's being sold onto an opportunity, for a quote or an invoice, not to create the product itself (products are managed elsewhere in Pipedrive).

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /api/v2/deals/{{params.deal_id}}/products.

Arguments:

ArgumentTypeRequiredNotes
commentsstringnoFree-text note on this line item.
deal_idintegeryesPipedrive deal id.
discountnumbernoDiscount applied to this line item, read with discount_type. Default 0.
discount_typestring, one of percentage, amountnoWhether discount is a percentage or a flat amount. Default "percentage".
item_pricenumberyesUnit price for this line item.
product_idintegeryesProduct id to attach, from list_products.
quantitynumberyesQuantity of the product on this deal.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idinteger
data.item_pricenumber
data.product_idinteger
data.quantitynumber

Also retrieved by: "attach an item to this pipedrive opportunity", "put a line item on the quote for this sale in pipedrive", "add what we're selling onto this pipedrive opportunity", "include a priced item on this pipedrive sale".

pipedrive.list_deal_products

List the product line items attached to a Pipedrive deal: each product's price and quantity on that deal. Use when the user asks what's on a quote or order for a specific opportunity.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/deals/{{params.deal_id}}/products.

Arguments:

ArgumentTypeRequiredNotes
deal_idintegeryesPipedrive deal id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataarray of object
data[].idinteger
data[].item_pricenumber
data[].namestring
data[].product_idinteger
data[].quantitynumber

Also retrieved by: "what's on the quote for this pipedrive opportunity", "show the line items for the sale in pipedrive", "see what's been added to this pipedrive opportunity's order", "check the priced items on this pipedrive sale".

pipedrive.create_person

Create a new Pipedrive person: an individual contact, distinct from an organization. Use when the user wants to add someone to the CRM by name, not a company. Requires a name; email, phone, and the linked organization are optional.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /api/v2/persons.

Arguments:

ArgumentTypeRequiredNotes
emailsarray of objectnoPerson's email addresses. Pipedrive holds several per person, so this is a list even for one address.
emails[].labelstringnoWhat the address is for, e.g. "work" or "home".
emails[].primarybooleannoWhether this is the person's main address.
emails[].valuestringyesThe email address, e.g. "jane@acme.com".
namestringyesPerson's full name.
org_idintegernoId of the organization this person works at.
owner_idintegernoUser id this person record is assigned to.
phonesarray of objectnoPerson's phone numbers, a list for the same reason emails is.
phones[].labelstringnoWhat the number is for, e.g. "work" or "mobile".
phones[].primarybooleannoWhether this is the person's main number.
phones[].valuestringyesThe phone number, e.g. "+1 555 0100".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.emailsarray of object
data.emails[].labelstring
data.emails[].primaryboolean
data.emails[].valuestring
data.idinteger
data.namestring
data.org_idinteger
data.owner_idinteger
data.phonesarray of object
data.phones[].labelstring
data.phones[].primaryboolean
data.phones[].valuestring

Also retrieved by: "add a new contact to the pipedrive crm", "log someone's info as a new pipedrive contact", "create a pipedrive record for a person I just met", "add an individual to pipedrive".

pipedrive.get_person

Get one Pipedrive person's full record by id: name, email, phone, and linked organization. Use when the user names a specific contact already in the CRM. For finding a person by name or email use search_persons instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/persons/{{params.person_id}}.

Arguments:

ArgumentTypeRequiredNotes
person_idintegeryesPipedrive person id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.emailsarray of object
data.emails[].labelstring
data.emails[].primaryboolean
data.emails[].valuestring
data.idinteger
data.namestring
data.org_idinteger
data.owner_idinteger
data.phonesarray of object
data.phones[].labelstring
data.phones[].primaryboolean
data.phones[].valuestring
data.update_timestring

Also retrieved by: "pull up someone's pipedrive contact record", "what does pipedrive have on file for this contact", "show me this individual's pipedrive details", "look up a specific contact's info in pipedrive".

pipedrive.update_person

Update fields on an existing Pipedrive person: name, email, phone, or the linked organization. Use when the user wants to correct or edit a contact's record, not create a new one.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /api/v2/persons/{{params.person_id}}.

Arguments:

ArgumentTypeRequiredNotes
emailsarray of objectnoPerson's email addresses. Pipedrive holds several per person, so this is a list even for one address.
emails[].labelstringnoWhat the address is for, e.g. "work" or "home".
emails[].primarybooleannoWhether this is the person's main address.
emails[].valuestringyesThe email address, e.g. "jane@acme.com".
namestringnoPerson's full name.
org_idintegernoId of the organization to link this person to.
owner_idintegernoUser id to reassign this person record to.
person_idintegeryesPipedrive person id.
phonesarray of objectnoPerson's phone numbers, a list for the same reason emails is.
phones[].labelstringnoWhat the number is for, e.g. "work" or "mobile".
phones[].primarybooleannoWhether this is the person's main number.
phones[].valuestringyesThe phone number, e.g. "+1 555 0100".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.emailsarray of object
data.emails[].labelstring
data.emails[].primaryboolean
data.emails[].valuestring
data.idinteger
data.namestring
data.phonesarray of object
data.phones[].labelstring
data.phones[].primaryboolean
data.phones[].valuestring
data.update_timestring

Also retrieved by: "fix this pipedrive contact's phone number", "change this individual's email on file in pipedrive", "edit someone's pipedrive contact details", "correct this person's pipedrive record".

pipedrive.delete_person

Permanently delete a Pipedrive person record. Use when the user wants to remove a contact from the CRM entirely, not just detach them from an organization or deal.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /api/v2/persons/{{params.person_id}}.

Arguments:

ArgumentTypeRequiredNotes
person_idintegeryesPipedrive person id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idinteger

Also retrieved by: "remove this contact from the pipedrive crm entirely", "erase someone's pipedrive record for good", "wipe this individual out of pipedrive", "get rid of this pipedrive contact permanently".

pipedrive.search_persons

Search Pipedrive persons by name, email, or phone. Use when the user describes a contact rather than naming a known person id, for example matching an email address to someone in the CRM.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/persons/search.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
limitintegernoPage size, up to 500. Default 100.
organization_idintegernoRestrict results to persons linked to this organization.
termstringyesFree-text search over name, email, and phone.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataobject
data.itemsarray of object
data.items[].itemobject
data.items[].result_scorenumber

Also retrieved by: "find someone in pipedrive by their email address", "look up a pipedrive contact by name", "match an email to someone in the pipedrive crm", "track down an individual's pipedrive record".

pipedrive.list_persons

List Pipedrive persons, most recently added first, paginated. Use for browsing or exporting the contact database rather than looking for one specific person.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/persons.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
limitintegernoPage size, up to 500. Default 100.
owner_idintegernoRestrict results to persons owned by this user.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataarray of object
data[].emailsarray of object
data[].emails[].primaryboolean
data[].emails[].valuestring
data[].idinteger
data[].namestring
data[].phonesarray of object
data[].phones[].primaryboolean
data[].phones[].valuestring

Also retrieved by: "show every contact in the pipedrive crm", "browse the whole pipedrive contact database", "see all the individuals we've logged in pipedrive", "export the full pipedrive contact list".

pipedrive.merge_persons

Merge two Pipedrive person records into one, keeping the primary contact and folding the duplicate's deals and activity history into it. Use when the user has found a duplicate contact. Irreversible: the merged-away person id stops existing.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls PUT /v1/persons/{{params.person_id}}/merge.

Arguments:

ArgumentTypeRequiredNotes
merge_with_idintegeryesId of the person that gets folded in and stops existing.
person_idintegeryesId of the person that survives the merge.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idinteger
data.namestring

Also retrieved by: "combine two duplicate pipedrive contact records", "fold one pipedrive person's record into another", "these are the same individual in pipedrive, join them", "collapse a duplicate pipedrive contact into the original".

pipedrive.create_organization

Create a new Pipedrive organization: a company or account record, distinct from an individual person. Use when the user wants to add a business to the CRM, not a contact. Requires a name.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /api/v2/organizations.

Arguments:

ArgumentTypeRequiredNotes
namestringyesOrganization's name.
owner_idintegernoUser id this organization record is assigned to.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.idinteger
data.namestring
data.owner_idinteger

Also retrieved by: "add a new company to the pipedrive crm", "log a business as a new pipedrive account", "create a pipedrive record for a company we're working with", "add a new account record to pipedrive".

pipedrive.get_organization

Get one Pipedrive organization's full record by id: name, owner, and timestamps. Use when the user names a specific company already in the CRM.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/organizations/{{params.organization_id}}.

Arguments:

ArgumentTypeRequiredNotes
organization_idintegeryesPipedrive organization id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.idinteger
data.namestring
data.owner_idinteger
data.update_timestring

Also retrieved by: "pull up pipedrive details on this company", "what does pipedrive know about this account", "show me this business's pipedrive record", "look up a specific company's info in pipedrive".

pipedrive.update_organization

Update fields on an existing Pipedrive organization: name or owner. Use when the user wants to rename a company record or reassign it, not create a new one.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /api/v2/organizations/{{params.organization_id}}.

Arguments:

ArgumentTypeRequiredNotes
namestringnoOrganization's name.
organization_idintegeryesPipedrive organization id.
owner_idintegernoUser id to reassign this organization record to.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idinteger
data.namestring
data.update_timestring

Also retrieved by: "rename this company's pipedrive record", "reassign this pipedrive account to someone else", "change the name on file for this business in pipedrive", "edit this pipedrive account's details".

pipedrive.delete_organization

Permanently delete a Pipedrive organization record. Use when the user wants to remove a business from the CRM entirely, along with its link to any deals and people, not just rename it.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /api/v2/organizations/{{params.organization_id}}.

Arguments:

ArgumentTypeRequiredNotes
organization_idintegeryesPipedrive organization id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idinteger

Also retrieved by: "remove this company from the pipedrive crm entirely", "erase this pipedrive account's record for good", "wipe this business out of pipedrive", "get rid of this company's pipedrive record permanently".

pipedrive.search_organizations

Search Pipedrive organizations by name or free text. Use when the user describes a company rather than naming a known organization id.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/organizations/search.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
limitintegernoPage size, up to 500. Default 100.
termstringyesFree-text search over the organization's name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataobject
data.itemsarray of object
data.items[].itemobject
data.items[].result_scorenumber

Also retrieved by: "find a company in pipedrive by name", "look up a business in the pipedrive crm", "track down a pipedrive account by its name", "match a company name to a pipedrive record".

pipedrive.list_organizations

List Pipedrive organizations, most recently added first, paginated. Use for browsing or exporting the company directory rather than looking for one specific organization.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/organizations.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
limitintegernoPage size, up to 500. Default 100.
owner_idintegernoRestrict results to organizations owned by this user.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataarray of object
data[].idinteger
data[].namestring

Also retrieved by: "show every company in the pipedrive crm", "browse the whole pipedrive account directory", "see all the businesses we've logged in pipedrive", "export the full pipedrive company list".

pipedrive.create_activity

Create a Pipedrive activity: a scheduled call, meeting, or task tied to a deal, person, or organization. Use when the user wants a reminder or follow-up logged in the CRM, distinct from a Jira ticket or a calendar event elsewhere. Requires a subject; due date and the linked record are optional.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /api/v2/activities.

Arguments:

ArgumentTypeRequiredNotes
deal_idintegernoDeal this activity is tied to.
due_datestringnoWhen the activity is due, "YYYY-MM-DD".
due_timestringnoTime of day the activity is due, "HH:MM".
durationstringnoLength of the activity, "HH:MM".
notestringnoFree-text detail about the activity.
org_idintegernoOrganization this activity is tied to.
person_idintegernoPerson this activity is tied to.
subjectstringyesOne-line activity subject, e.g. "Follow-up call".
typestringnoActivity type, e.g. "call", "meeting", "task", "email".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.doneboolean
data.due_datestring
data.idinteger
data.subjectstring
data.typestring

Also retrieved by: "schedule a follow-up call in pipedrive", "set a pipedrive reminder to check in with a client", "log a meeting on this pipedrive opportunity", "put a task on the calendar for this pipedrive contact".

pipedrive.get_activity

Get one Pipedrive activity's full record by id: subject, type, due date, and whether it's done. Use when the user names a specific scheduled call, meeting, or task.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/activities/{{params.activity_id}}.

Arguments:

ArgumentTypeRequiredNotes
activity_idintegeryesPipedrive activity id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.deal_idinteger
data.doneboolean
data.due_datestring
data.due_timestring
data.idinteger
data.org_idinteger
data.person_idinteger
data.subjectstring
data.typestring

Also retrieved by: "what's this pipedrive reminder about", "pull up the details on a scheduled pipedrive call", "show me this pipedrive meeting's info", "check what this pipedrive task involves".

pipedrive.update_activity

Update a Pipedrive activity's subject, due date, or done status. Use when the user wants to reschedule a follow-up or mark a call, meeting, or task as complete.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /api/v2/activities/{{params.activity_id}}.

Arguments:

ArgumentTypeRequiredNotes
activity_idintegeryesPipedrive activity id.
donebooleannoWhether the activity is complete.
due_datestringnoWhen the activity is due, "YYYY-MM-DD".
due_timestringnoTime of day the activity is due, "HH:MM".
notestringnoFree-text detail about the activity.
subjectstringnoOne-line activity subject.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.doneboolean
data.idinteger
data.subjectstring
data.update_timestring

Also retrieved by: "reschedule the follow-up in pipedrive", "mark this pipedrive call as complete", "push this pipedrive reminder to a new date", "check off this pipedrive task as done".

pipedrive.delete_activity

Permanently delete a Pipedrive activity. Use when the user wants to remove a scheduled call, meeting, or task entirely, not just mark it done.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /api/v2/activities/{{params.activity_id}}.

Arguments:

ArgumentTypeRequiredNotes
activity_idintegeryesPipedrive activity id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idinteger

Also retrieved by: "cancel this scheduled pipedrive reminder for good", "remove this pipedrive follow-up entirely", "erase this meeting from the pipedrive calendar", "wipe out this pipedrive task record".

pipedrive.list_activities

List Pipedrive activities, filterable by user, by whether they're done, and by the deal, person, or organization they hang off. Use when the user asks what calls, meetings, or tasks are scheduled or overdue, rather than naming one specific activity.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/activities.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
deal_idintegernoRestrict results to activities on this deal.
donebooleannoRestrict results to done or not-done activities. Omit for both.
limitintegernoPage size, up to 500. Default 100.
org_idintegernoRestrict results to activities on this organization.
owner_idintegernoRestrict results to activities owned by this user.
person_idintegernoRestrict results to activities on this person.
sort_bystring, one of id, add_time, update_time, due_datenoField to order by. Use "due_date" to put the oldest due first. Default "id".
sort_directionstring, one of asc, descnoOrder direction. Default "asc".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataarray of object
data[].doneboolean
data[].due_datestring
data[].idinteger
data[].subjectstring
data[].typestring

Also retrieved by: "what pipedrive calls are on my plate today", "show me every overdue pipedrive follow-up", "what's scheduled in pipedrive for this week", "see everything a teammate has coming up in pipedrive".

pipedrive.create_note

Log a note in Pipedrive: free-text commentary attached to a deal, person, organization, or lead. Use when the user wants to jot down context in the CRM, not schedule an activity or send a message.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /v1/notes.

Arguments:

ArgumentTypeRequiredNotes
contentstringyesThe note's text.
deal_idintegernoDeal this note is attached to.
lead_idstringnoLead this note is attached to, from list_leads.
org_idintegernoOrganization this note is attached to.
person_idintegernoPerson this note is attached to.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.contentstring
data.idinteger

Also retrieved by: "jot down some context on this pipedrive account", "write a comment on the opportunity in pipedrive", "leave a remark about this pipedrive contact", "log some background on this pipedrive record".

pipedrive.list_notes

List Pipedrive notes attached to a deal, person, organization, or lead. Use when the user asks what's been written or commented about a specific record, not what activities are scheduled for it.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /v1/notes.

Arguments:

ArgumentTypeRequiredNotes
deal_idintegernoRestrict results to notes on this deal.
lead_idstringnoRestrict results to notes on this lead.
limitintegernoPage size. Default 100.
org_idintegernoRestrict results to notes on this organization.
person_idintegernoRestrict results to notes on this person.
startintegernoPagination offset. Default 0.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.paginationobject
additional_data.pagination.limitinteger
additional_data.pagination.more_items_in_collectionboolean
additional_data.pagination.next_startinteger
additional_data.pagination.startinteger
dataarray of object
data[].add_timestring
data[].contentstring
data[].idinteger

Also retrieved by: "what's been written in pipedrive about this company", "show the comments on this pipedrive opportunity", "see the history logged for this pipedrive contact", "pull up prior remarks on this pipedrive lead".

pipedrive.delete_note

Permanently delete a Pipedrive note. Use when the user wants a piece of commentary removed from a deal, person, organization, or lead's history entirely.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /v1/notes/{{params.note_id}}.

Arguments:

ArgumentTypeRequiredNotes
note_idintegeryesPipedrive note id, from list_notes.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
databoolean

Also retrieved by: "take that comment off the pipedrive record", "remove this pipedrive remark for good", "erase that piece of commentary in pipedrive", "wipe out this logged pipedrive comment".

pipedrive.create_lead

Create a Pipedrive lead: an unqualified prospect or inquiry sitting in the leads inbox, ahead of a full deal. Use when the user wants to log a raw prospect or interest before it's worth a sales pipeline, not create_deal for an active opportunity. Requires a title.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /v1/leads.

Arguments:

ArgumentTypeRequiredNotes
expected_close_datestringnoExpected close date, "YYYY-MM-DD".
organization_idintegernoId of the organization this lead belongs to.
owner_idintegernoUser id this lead is assigned to.
person_idintegernoId of the person this lead belongs to.
titlestringyesLead's title, e.g. "Acme Corp - inbound inquiry".
valueobjectnoEstimated worth of the lead. Pipedrive takes the amount and its currency together, so send both or neither.
value.amountnumberyesThe estimated value, e.g. 15000.
value.currencystringyesThree-letter currency code, e.g. "USD".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.add_timestring
data.idstring
data.organization_idinteger
data.owner_idinteger
data.person_idinteger
data.titlestring

Also retrieved by: "log a raw inquiry in pipedrive before it's a real sale", "add an unqualified prospect to the pipedrive inbox", "capture inbound interest in pipedrive that isn't ready for the pipeline yet", "note down a possible customer in pipedrive to follow up on later".

pipedrive.get_lead

Get one Pipedrive lead's full record by id: title, owner, linked person or organization, and estimated value. Use when the user names a specific prospect or inquiry already in the leads inbox.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /v1/leads/{{params.lead_id}}.

Arguments:

ArgumentTypeRequiredNotes
lead_idstringyesPipedrive lead id (a UUID), from list_leads.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.expected_close_datestring
data.idstring
data.is_archivedboolean
data.organization_idinteger
data.owner_idinteger
data.person_idinteger
data.titlestring

Also retrieved by: "what does pipedrive know about this inquiry", "pull up the details on this pipedrive prospect", "show me this pipedrive inbox entry's info", "check this raw inbound interest in pipedrive".

pipedrive.update_lead

Update fields on an existing Pipedrive lead: title, owner, or estimated value. Use when the user wants to edit a prospect's details in the leads inbox, not convert it or open a full deal.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /v1/leads/{{params.lead_id}}.

Arguments:

ArgumentTypeRequiredNotes
expected_close_datestringnoExpected close date, "YYYY-MM-DD".
lead_idstringyesPipedrive lead id.
owner_idintegernoUser id to reassign this lead to.
titlestringnoLead's title.
valueobjectnoEstimated worth of the lead. Pipedrive takes the amount and its currency together, so send both or neither.
value.amountnumberyesThe estimated value, e.g. 15000.
value.currencystringyesThree-letter currency code, e.g. "USD".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idstring
data.titlestring
data.update_timestring

Also retrieved by: "change the value on this pipedrive inquiry", "reassign this pipedrive prospect to someone else", "edit this pipedrive inbox entry's details", "fix the estimate on this raw pipedrive interest".

pipedrive.delete_lead

Permanently delete a Pipedrive lead. Use when the user wants a prospect or inquiry removed from the leads inbox entirely, not just archived.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /v1/leads/{{params.lead_id}}.

Arguments:

ArgumentTypeRequiredNotes
lead_idstringyesPipedrive lead id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataobject
data.idstring

Also retrieved by: "remove this inquiry from the pipedrive inbox for good", "erase this pipedrive prospect record entirely", "wipe out this unqualified pipedrive interest", "get rid of this pipedrive inbox entry permanently".

pipedrive.list_leads

List Pipedrive leads in the leads inbox, filterable by owner or linked person or organization. Use for browsing unqualified prospects rather than looking for one specific lead, and distinct from list_deals, which covers active pipeline opportunities.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /v1/leads.

Arguments:

ArgumentTypeRequiredNotes
limitintegernoPage size. Default 100.
organization_idintegernoRestrict results to leads linked to this organization.
owner_idintegernoRestrict results to leads owned by this user.
person_idintegernoRestrict results to leads linked to this person.
startintegernoPagination offset. Default 0.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.limitinteger
additional_data.more_items_in_collectionboolean
additional_data.startinteger
dataarray of object
data[].idstring
data[].is_archivedboolean
data[].owner_idinteger
data[].titlestring

Also retrieved by: "what's sitting in the pipedrive inbox right now", "show every unqualified pipedrive prospect", "browse the raw pipedrive inquiries nobody's touched yet", "see what inbound interest in pipedrive hasn't been worked".

pipedrive.list_pipelines

List the sales pipelines configured in Pipedrive. Use when the user asks what pipelines exist, or wants a pipeline id for create_deal or list_stages, before creating or filtering a deal.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/pipelines.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataarray of object
data[].idinteger
data[].is_deletedboolean
data[].namestring
data[].order_nrinteger

Also retrieved by: "what pipedrive pipelines do we have set up", "show me the sales tracks configured in pipedrive", "see the pipedrive pipeline options available", "what stage structure exists for pipedrive opportunities".

pipedrive.list_stages

List the stages within a Pipedrive pipeline, in order. Use when the user asks what stages a deal can move through, before moving or creating a deal with update_deal or create_deal. Omit pipeline_id for every stage across all pipelines.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/stages.

Arguments:

ArgumentTypeRequiredNotes
pipeline_idintegernoRestrict results to this pipeline's stages, from list_pipelines.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataarray of object
data[].idinteger
data[].namestring
data[].order_nrinteger
data[].pipeline_idinteger

Also retrieved by: "what steps does a pipedrive sale move through", "show the stage order for a pipedrive pipeline", "see how pipedrive opportunities progress from start to close", "what phases exist before a pipedrive sale closes".

pipedrive.list_users

List the Pipedrive users on the account, for example to find a teammate's user id before assigning a deal, person, organization, lead, or activity with owner_id. Use when the user asks who is on the team, not who is a member of a Slack channel or a Trello board.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /v1/users.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
dataarray of object
data[].active_flagboolean
data[].emailstring
data[].idinteger
data[].namestring

Also retrieved by: "who's on the pipedrive sales team", "show me every teammate on the pipedrive account", "see who I can assign a pipedrive opportunity to", "who can own a record in pipedrive".

pipedrive.list_products

List the products in Pipedrive's product catalog, with their code and price. Use when the user asks what's for sale before attaching one to a deal with add_product_to_deal, or to look up a product's id.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/products.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
limitintegernoPage size, up to 500. Default 100.
owner_idintegernoRestrict results to products owned by this user.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataarray of object
data[].codestring
data[].idinteger
data[].namestring
data[].pricesarray of object
data[].prices[].currencystring
data[].prices[].pricenumber
data[].unitstring

Also retrieved by: "what's in our pipedrive catalog for sale", "show me the priced items we offer in pipedrive", "see what's available to quote in pipedrive", "browse the things we sell in pipedrive".

pipedrive.search_all_items

Search across every Pipedrive record type at once: deals, people, organizations, leads, and products. Use only when the request names no record type at all; when the type is known use search_deals, search_persons, or search_organizations instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /api/v2/itemSearch.

Arguments:

ArgumentTypeRequiredNotes
cursorstringnoPagination cursor taken from a prior call's additional_data.next_cursor. Omit for the first page.
item_typesstringnoComma-separated record types to search, e.g. "deal,person". Omit to search every type.
limitintegernoPage size, up to 500. Default 100.
termstringyesFree-text search over titles and names across every record type.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additional_dataobject
additional_data.next_cursorstring
dataobject
data.itemsarray of object
data.items[].itemobject
data.items[].result_scorenumber

Also retrieved by: "one keyword against every record type in the pipedrive crm", "search all of pipedrive for a mention of this customer", "look everywhere in pipedrive for this name, not just one record type", "dig through the whole pipedrive account for this keyword".