Merge · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Merge Subpackage Contacts API
20 actions
20 updates
phrasing
extends
openapi/merge-subpackage-contacts-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Merge's API. It is a proposal applied on top of the contract, not a document Merge publishes.
What the actions change
x-apievangelist-phrasing
Targets 20 · first 16 shown; the file carries all of them
$.info
$.paths['/accounting/v1/contacts'].get
$.paths['/accounting/v1/contacts'].post
$.paths['/accounting/v1/contacts/{id}'].get
$.paths['/accounting/v1/contacts/{id}'].patch
$.paths['/accounting/v1/contacts/meta/patch/{id}'].get
$.paths['/accounting/v1/contacts/meta/post'].get
$.paths['/accounting/v1/contacts/remote-field-classes'].get
$.paths['/crm/v1/contacts'].get
$.paths['/crm/v1/contacts'].post
$.paths['/crm/v1/contacts/{id}'].get
$.paths['/crm/v1/contacts/{id}'].patch
$.paths['/crm/v1/contacts/ignore/{model_id}'].post
$.paths['/crm/v1/contacts/meta/patch/{id}'].get
$.paths['/crm/v1/contacts/meta/post'].get
$.paths['/crm/v1/contacts/remote-field-classes'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Merge Subpackage Contacts API
version: 1.0.0
extends: openapi/merge-subpackage-contacts-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 19
- target: $.paths['/accounting/v1/contacts'].get
update:
x-apievangelist-phrasing:
intent: List customers and suppliers in the accounting system
effect: read
questions:
- How do I pull every customer and vendor contact from a linked accounting platform through Merge?
- Can I filter accounting contacts to only suppliers, or only customers?
- Which accounting contacts match a given email address or status?
instructions:
- text: List the accounting contacts flagged as suppliers.
- text: Find accounting contacts with email {email_address}.
slots:
email_address: query.email_address
- text: Show accounting customers for company {company_id} with status {status}.
slots:
company_id: query.company_id
status: query.status
method: generated
generated: '2026-09-26'
- target: $.paths['/accounting/v1/contacts'].post
update:
x-apievangelist-phrasing:
intent: Create a customer or vendor in accounting
effect: write
questions:
- Can I add a new vendor to my customer's accounting ledger through a unified API?
- What happens if I ask for the new accounting contact to be written asynchronously?
instructions:
- text: 'Add a new accounting contact with these details: {contact}.'
slots:
contact: requestBody.model
- text: Create supplier {contact} in the linked accounting system asynchronously.
slots:
contact: requestBody.model
method: generated
generated: '2026-09-26'
- target: $.paths['/accounting/v1/contacts/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one accounting contact
effect: read
questions:
- How can I look up a single vendor or customer record from the accounting integration?
- Can I see the raw third-party payload behind one accounting contact?
instructions:
- text: Get accounting contact {id}.
slots:
id: path.id
- text: Fetch accounting contact {id} with {relations} expanded.
slots:
id: path.id
relations: query.expand
method: generated
generated: '2026-09-26'
- target: $.paths['/accounting/v1/contacts/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Update an accounting contact
effect: write
questions:
- Can I change a supplier's details in the accounting system after it was created?
- How do I edit only some fields on an existing accounting contact?
instructions:
- text: Update accounting contact {id} with {changes}.
slots:
id: path.id
changes: requestBody.model
- text: Change the email on accounting vendor {id} to the value in {changes}.
slots:
id: path.id
changes: requestBody.model
method: generated
generated: '2026-09-26'
- target: $.paths['/accounting/v1/contacts/meta/patch/{id}'].get
update:
x-apievangelist-phrasing:
intent: See which accounting contact fields can be edited
effect: read
questions:
- Which fields on an accounting contact am I allowed to update for this integration?
- Is there a way to check the edit schema before patching an accounting contact?
instructions:
- text: Show the editable fields for accounting contact {id}.
slots:
id: path.id
- text: Get the update metadata for accounting contact {id} before I change it.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/accounting/v1/contacts/meta/post'].get
update:
x-apievangelist-phrasing:
intent: See which fields creating an accounting contact takes
effect: read
questions:
- What fields does the linked accounting platform require when creating a new contact?
- Can I check the create schema for accounting contacts before posting one?
instructions:
- text: Show the required fields for creating an accounting contact on linked account {account_token}.
slots:
account_token: header.X-Account-Token
- text: Get the accounting contact creation metadata.
method: generated
generated: '2026-09-26'
- target: $.paths['/accounting/v1/contacts/remote-field-classes'].get
update:
x-apievangelist-phrasing:
intent: List custom field definitions for accounting contacts
effect: read
questions:
- Which custom fields exist on contacts in my customer's accounting software?
- Can I list only the custom remote fields for accounting contacts, not the common ones?
instructions:
- text: List the remote field classes for accounting contacts on linked account {account_token}.
slots:
account_token: header.X-Account-Token
- text: Show only custom field classes defined on accounting contacts.
method: generated
generated: '2026-09-26'
- target: $.paths['/crm/v1/contacts'].get
update:
x-apievangelist-phrasing:
intent: List CRM contacts
effect: read
questions:
- How do I pull all the people from a customer's CRM?
- Can I find CRM contacts by phone number or by several email addresses at once?
- Which CRM contacts belong to a particular account?
instructions:
- text: List CRM contacts under account {account_id}.
slots:
account_id: query.account_id
- text: Find CRM people matching emails {email_addresses}.
slots:
email_addresses: query.email_addresses
- text: Look up CRM contacts with phone number {phone_numbers}.
slots:
phone_numbers: query.phone_numbers
method: generated
generated: '2026-09-26'
- target: $.paths['/crm/v1/contacts'].post
update:
x-apievangelist-phrasing:
intent: Create a contact in the CRM
effect: write
questions:
- Can I push a new lead's person record into my customer's CRM?
- What do I send to add a person to a linked CRM?
instructions:
- text: Create a CRM contact from {contact}.
slots:
contact: requestBody.model
- text: Add person {contact} to the linked CRM in debug mode.
slots:
contact: requestBody.model
method: generated
generated: '2026-09-26'
- target: $.paths['/crm/v1/contacts/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one CRM contact
effect: read
questions:
- How do I read one person's record from the linked CRM?
- Can I include the CRM's custom fields when fetching a single contact?
instructions:
- text: Get CRM contact {id}.
slots:
id: path.id
- text: Fetch CRM person {id} including remote custom fields.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/crm/v1/contacts/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Update a CRM contact
effect: write
questions:
- Can I edit a person's details in the CRM through Merge?
- How do I change just the title or phone on an existing CRM contact?
instructions:
- text: Update CRM contact {id} with {changes}.
slots:
id: path.id
changes: requestBody.model
- text: Patch the CRM person {id} so their details match {changes}.
slots:
id: path.id
changes: requestBody.model
method: generated
generated: '2026-09-26'
- target: $.paths['/crm/v1/contacts/ignore/{model_id}'].post
update:
x-apievangelist-phrasing:
intent: Stop syncing a CRM contact
effect: destructive
questions:
- How do I exclude a specific CRM contact from future syncs, say for a GDPR request?
- What happens to a CRM contact's data once I mark it ignored?
instructions:
- text: Ignore CRM contact {model_id} for reason {reason}.
slots:
model_id: path.model_id
reason: requestBody.reason
- text: Stop syncing CRM contact {model_id} with the note {message}.
slots:
model_id: path.model_id
message: requestBody.message
method: generated
generated: '2026-09-26'
- target: $.paths['/crm/v1/contacts/meta/patch/{id}'].get
update:
x-apievangelist-phrasing:
intent: See which CRM contact fields can be edited
effect: read
questions:
- Which fields can I update on a person in the linked CRM?
- Is there a schema for patching a CRM contact that I can read first?
instructions:
- text: Show the patchable fields for CRM contact {id}.
slots:
id: path.id
- text: Get the CRM contact edit metadata for {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/crm/v1/contacts/meta/post'].get
update:
x-apievangelist-phrasing:
intent: See which fields creating a CRM contact takes
effect: read
questions:
- What does the linked CRM need before I can create a new person record?
- Can I read the create-contact schema for a CRM integration?
instructions:
- text: Show the CRM contact creation fields for linked account {account_token}.
slots:
account_token: header.X-Account-Token
- text: Get the create metadata for CRM people.
method: generated
generated: '2026-09-26'
- target: $.paths['/crm/v1/contacts/remote-field-classes'].get
update:
x-apievangelist-phrasing:
intent: List custom field definitions for CRM contacts
effect: read
questions:
- What custom properties are defined on contacts in my customer's CRM?
- Can I tell which CRM contact fields are common-model fields versus custom ones?
instructions:
- text: List CRM contact remote field classes for linked account {account_token}.
slots:
account_token: header.X-Account-Token
- text: Show the custom property definitions on CRM people.
method: generated
generated: '2026-09-26'
- target: $.paths['/ticketing/v1/contacts'].get
update:
x-apievangelist-phrasing:
intent: List ticketing contacts
effect: read
questions:
- How do I get the requesters and end customers stored in a help desk?
- Can I find a ticketing contact by email?
instructions:
- text: List help desk contacts with email {email_address}.
slots:
email_address: query.email_address
- text: Show ticketing contacts modified after {modified_after}.
slots:
modified_after: query.modified_after
method: generated
generated: '2026-09-26'
- target: $.paths['/ticketing/v1/contacts'].post
update:
x-apievangelist-phrasing:
intent: Create a contact in the ticketing system
effect: write
questions:
- Can I add a new requester to my customer's help desk?
- What do I send to create a ticketing contact?
instructions:
- text: Create a help desk contact from {contact}.
slots:
contact: requestBody.model
- text: Add requester {contact} to the ticketing platform.
slots:
contact: requestBody.model
method: generated
generated: '2026-09-26'
- target: $.paths['/ticketing/v1/contacts/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one ticketing contact
effect: read
questions:
- How do I read a single requester record from the help desk?
- Can I expand related records on a ticketing contact when I fetch it?
instructions:
- text: Get ticketing contact {id}.
slots:
id: path.id
- text: Fetch help desk requester {id} and expand {relations}.
slots:
id: path.id
relations: query.expand
method: generated
generated: '2026-09-26'
- target: $.paths['/ticketing/v1/contacts/meta/post'].get
update:
x-apievangelist-phrasing:
intent: See which fields creating a ticketing contact takes
effect: read
questions:
- Which fields does the help desk accept when I create a requester?
- Can I check the ticketing contact create schema first?
instructions:
- text: Show the ticketing contact creation fields for linked account {account_token}.
slots:
account_token: header.X-Account-Token
- text: Get the help desk requester create metadata.
method: generated
generated: '2026-09-26'