Intuit · Arazzo Workflow

Intuit Update Customer by Query

Version 1.0.0

Find a customer by email, read it, and update its contact details.

1 workflow 1 source API 1 provider
View Spec View on GitHub AccountingCustom FieldsFinancialFinancial-ServicesInvoicingPaymentsPayrollProject ManagementSales TaxSmall BusinessTaxTax PreparationTaxesTime TrackingFortune 1000ArazzoWorkflows

Provider

intuit

Workflows

update-customer-by-query
Query a customer by email then sparse-update its details.
Queries the Customer entity by email, reads the match for its SyncToken, and applies a sparse update with the new contact details.
3 steps inputs: accessToken, email, newCompanyName, newPhone outputs: customerId, syncToken
1
findCustomer
Query the Customer entity by primary email address.
2
readCustomer
Read the matched customer to obtain its current SyncToken.
3
updateCustomer
Apply a sparse update with the new phone and company name.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Intuit Update Customer by Query
  summary: Find a customer by email, read it, and update its contact details.
  description: >-
    A query-driven maintenance flow. The workflow runs a SQL-like query against
    the Customer entity filtering on PrimaryEmailAddr, reads the matched
    customer to obtain its current SyncToken, and then performs a sparse update
    that changes only the supplied fields while preserving the rest. The
    SyncToken is chained from the read into the update because QuickBooks
    rejects updates that do not carry the latest token. Every step spells out
    its request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: customersApi
  url: ../openapi/intuit-customers-api-openapi.yml
  type: openapi
workflows:
- workflowId: update-customer-by-query
  summary: Query a customer by email then sparse-update its details.
  description: >-
    Queries the Customer entity by email, reads the match for its SyncToken, and
    applies a sparse update with the new contact details.
  inputs:
    type: object
    required:
    - accessToken
    - email
    - newPhone
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer access token for the QuickBooks company.
      email:
        type: string
        description: Email address used to locate the customer.
      newPhone:
        type: string
        description: New primary phone number to set on the customer.
      newCompanyName:
        type: string
        description: Optional new company name to set on the customer.
  steps:
  - stepId: findCustomer
    description: Query the Customer entity by primary email address.
    operationId: queryEntities
    parameters:
    - name: query
      in: query
      value: "SELECT * FROM Customer WHERE PrimaryEmailAddr = '$inputs.email'"
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      matchedCustomerId: $response.body#/QueryResponse/Customer/0/Id
  - stepId: readCustomer
    description: Read the matched customer to obtain its current SyncToken.
    operationId: readCustomer
    parameters:
    - name: customerId
      in: path
      value: $steps.findCustomer.outputs.matchedCustomerId
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      customerId: $response.body#/Customer/Id
      syncToken: $response.body#/Customer/SyncToken
  - stepId: updateCustomer
    description: Apply a sparse update with the new phone and company name.
    operationId: updateCustomer
    parameters:
    - name: customerId
      in: path
      value: $steps.readCustomer.outputs.customerId
    - name: sparse
      in: query
      value: true
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    requestBody:
      contentType: application/json
      payload:
        Id: $steps.readCustomer.outputs.customerId
        SyncToken: $steps.readCustomer.outputs.syncToken
        sparse: true
        CompanyName: $inputs.newCompanyName
        PrimaryPhone:
          FreeFormNumber: $inputs.newPhone
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      customerId: $response.body#/Customer/Id
      syncToken: $response.body#/Customer/SyncToken
  outputs:
    customerId: $steps.updateCustomer.outputs.customerId
    syncToken: $steps.updateCustomer.outputs.syncToken

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/intuit-update-customer-by-query-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.