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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'