Merge · Arazzo Workflow

Merge CRM Log an Engagement on a Contact

Version 1.0.0

Resolve a contact by email, log an engagement against that contact, and confirm the engagement.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub IntegrationPlatformUnified-APIAgent HandlerLLM GatewayArazzoWorkflows

Provider

merge

Workflows

log-engagement
Log an engagement against a contact resolved by email.
Resolves a contact by email address, creates an engagement referencing that contact, and confirms the engagement.
3 steps inputs: accountToken, authorization, contactEmail, content, direction, startTime, subject outputs: contactId, engagementId
1
resolveContact
{$sourceDescriptions.subpackageContactsApi.url}#/paths/~1crm~1v1~1contacts/get
Resolve the contact by matching on the supplied email address, returning at most one match.
2
createEngagement
{$sourceDescriptions.subpackageEngagementsApi.url}#/paths/~1crm~1v1~1engagements/post
Create the engagement and reference the resolved contact.
3
confirmEngagement
{$sourceDescriptions.subpackageEngagementsApi.url}#/paths/~1crm~1v1~1engagements~1{id}/get
Read the created engagement back to confirm it was persisted.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Merge CRM Log an Engagement on a Contact
  summary: Resolve a contact by email, log an engagement against that contact, and confirm the engagement.
  description: >-
    A CRM activity-logging pattern used to record a call, meeting, or email. The
    workflow resolves a contact by email address, creates an engagement that
    references that contact, and reads the engagement back to confirm it was
    persisted. 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: subpackageContactsApi
  url: ../openapi/merge-subpackage-contacts-api-openapi.yml
  type: openapi
- name: subpackageEngagementsApi
  url: ../openapi/merge-subpackage-engagements-api-openapi.yml
  type: openapi
workflows:
- workflowId: log-engagement
  summary: Log an engagement against a contact resolved by email.
  description: >-
    Resolves a contact by email address, creates an engagement referencing that
    contact, and confirms the engagement.
  inputs:
    type: object
    required:
    - authorization
    - accountToken
    - contactEmail
    - content
    - direction
    properties:
      authorization:
        type: string
        description: Production access token with the required "Bearer " prefix.
      accountToken:
        type: string
        description: The account token identifying the linked CRM end user.
      contactEmail:
        type: string
        description: The email address used to resolve the contact.
      content:
        type: string
        description: The body content of the engagement.
      subject:
        type: string
        description: The subject of the engagement.
      direction:
        type: string
        description: The direction of the engagement (INBOUND or OUTBOUND).
      startTime:
        type: string
        description: When the engagement started (ISO 8601).
  steps:
  - stepId: resolveContact
    description: >-
      Resolve the contact by matching on the supplied email address, returning
      at most one match.
    operationPath: '{$sourceDescriptions.subpackageContactsApi.url}#/paths/~1crm~1v1~1contacts/get'
    parameters:
    - name: email_addresses
      in: query
      value: $inputs.contactEmail
    - name: page_size
      in: query
      value: 1
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.results.length > 0
      type: jsonpath
    outputs:
      contactId: $response.body#/results/0/id
  - stepId: createEngagement
    description: >-
      Create the engagement and reference the resolved contact.
    operationPath: '{$sourceDescriptions.subpackageEngagementsApi.url}#/paths/~1crm~1v1~1engagements/post'
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    requestBody:
      contentType: application/json
      payload:
        model:
          content: $inputs.content
          subject: $inputs.subject
          direction: $inputs.direction
          start_time: $inputs.startTime
          contacts:
          - $steps.resolveContact.outputs.contactId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      engagementId: $response.body#/model/id
  - stepId: confirmEngagement
    description: >-
      Read the created engagement back to confirm it was persisted.
    operationPath: '{$sourceDescriptions.subpackageEngagementsApi.url}#/paths/~1crm~1v1~1engagements~1{id}/get'
    parameters:
    - name: id
      in: path
      value: $steps.createEngagement.outputs.engagementId
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      engagementId: $response.body#/id
      direction: $response.body#/direction
  outputs:
    contactId: $steps.resolveContact.outputs.contactId
    engagementId: $steps.confirmEngagement.outputs.engagementId

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/merge-crm-log-engagement-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.