WhatsApp · Arazzo Workflow

WhatsApp Send Text and Mark Inbound Read

Version 1.0.0

Send a text reply and mark the customer's inbound message as read.

1 workflow 1 source API 1 provider
View Spec View on GitHub ArazzoWorkflows

Provider

whatsapp

Workflows

send-text-and-mark-read
Send a text reply, then mark the originating inbound message as read.
Sends a text message to the customer and then issues a status update against the messages endpoint to mark the inbound message identified by its message ID as read.
2 steps inputs: accessToken, body, inboundMessageId, phoneNumberId, to outputs: markedRead, messageId
1
sendReply
sendMessage
Send a text message reply to the customer with optional URL preview disabled by default.
2
markRead
sendMessage
Mark the originating inbound message as read by sending a read status update against the same messages endpoint.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: WhatsApp Send Text and Mark Inbound Read
  summary: Send a text reply and mark the customer's inbound message as read.
  description: >-
    A typical customer service turn on the WhatsApp Cloud API. The workflow
    sends a text message reply to a customer and then marks the inbound message
    that prompted the reply as read so the customer sees the blue read receipt.
    Both actions use the same messages endpoint with different payload shapes.
    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: whatsappCloudApi
  url: ../openapi/whatsapp-cloud-api-openapi.yml
  type: openapi
workflows:
- workflowId: send-text-and-mark-read
  summary: Send a text reply, then mark the originating inbound message as read.
  description: >-
    Sends a text message to the customer and then issues a status update against
    the messages endpoint to mark the inbound message identified by its message
    ID as read.
  inputs:
    type: object
    required:
    - accessToken
    - phoneNumberId
    - to
    - body
    - inboundMessageId
    properties:
      accessToken:
        type: string
        description: Access token with whatsapp_business_messaging permission.
      phoneNumberId:
        type: string
        description: The WhatsApp phone number ID that sends the message.
      to:
        type: string
        description: Recipient phone number in E.164 format without the leading plus.
      body:
        type: string
        description: The text body of the reply (max 4096 characters).
      inboundMessageId:
        type: string
        description: The wamid of the inbound message to mark as read.
  steps:
  - stepId: sendReply
    description: >-
      Send a text message reply to the customer with optional URL preview
      disabled by default.
    operationId: sendMessage
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: phone-number-id
      in: path
      value: $inputs.phoneNumberId
    requestBody:
      contentType: application/json
      payload:
        messaging_product: whatsapp
        recipient_type: individual
        to: $inputs.to
        type: text
        text:
          body: $inputs.body
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      messageId: $response.body#/messages/0/id
  - stepId: markRead
    description: >-
      Mark the originating inbound message as read by sending a read status
      update against the same messages endpoint.
    operationId: sendMessage
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: phone-number-id
      in: path
      value: $inputs.phoneNumberId
    requestBody:
      contentType: application/json
      payload:
        messaging_product: whatsapp
        status: read
        message_id: $inputs.inboundMessageId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      success: $response.body#/success
  outputs:
    messageId: $steps.sendReply.outputs.messageId
    markedRead: $steps.markRead.outputs.success

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/whatsapp-send-text-and-mark-read-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 email required.

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