RingCentral · Arazzo Workflow

RingCentral Team Messaging Incoming Webhook Lifecycle

Version 1.0.0

Create an incoming webhook for a team, read its address, suspend and reactivate it, and delete it when retired.

1 workflow 1 source API 1 provider
View Spec View on GitHub CommunicationsUCaaSVoiceVideoContact CenterSMSMessagingFaxArazzoWorkflows

Provider

ringcentral

Workflows

team-messaging-webhook-lifecycle
Create, inspect, suspend, reactivate, and delete a Team Messaging incoming webhook.
Creates an incoming webhook against a group/team, reads it back to capture the generated posting URI and status, suspends it to mute delivery, reactivates it, and finally deletes it.
5 steps inputs: groupId outputs: groupIds, webhookId, webhookUri
1
createWebhook
createGlipGroupWebhookNew
Create the incoming webhook for the group. This operation takes no request body — RingCentral generates the webhook and returns its resource, including the URI external systems will post to.
2
readWebhook
readGlipWebhookNew
Read the webhook back to confirm it is active and to capture the posting URI that gets handed to the external system.
3
suspendWebhook
suspendGlipWebhookNew
Suspend the webhook to stop delivery without destroying it. Posts to the URI are rejected while suspended, but the URI survives so the external system does not have to be reconfigured to resume.
4
activateWebhook
activateGlipWebhookNew
Reactivate the suspended webhook so the original URI resumes delivering into the chat.
5
deleteWebhook
deleteGlipWebhookNew
Permanently delete the webhook when the integration is retired. The URI stops working immediately and cannot be recovered.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: RingCentral Team Messaging Incoming Webhook Lifecycle
  summary: Create an incoming webhook for a team, read its address, suspend and reactivate it, and delete it when retired.
  description: >-
    Team Messaging incoming webhooks are how external systems — CI pipelines,
    monitoring, ticketing — push notifications into a RingCentral chat without an
    OAuth-authenticated bot. Creating one for a group returns a generated webhook
    URI that the external system posts to. Unlike most resources these webhooks
    have a suspend/activate pair rather than only create/delete, which lets an
    integrator mute a noisy source without destroying the URI and forcing every
    downstream system to be reconfigured. This workflow walks the full lifecycle.
    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: ringcentralPlatform
  url: ../openapi/ringcentral-platform-openapi.yml
  type: openapi
workflows:
- workflowId: team-messaging-webhook-lifecycle
  summary: Create, inspect, suspend, reactivate, and delete a Team Messaging incoming webhook.
  description: >-
    Creates an incoming webhook against a group/team, reads it back to capture the
    generated posting URI and status, suspends it to mute delivery, reactivates it,
    and finally deletes it.
  inputs:
    type: object
    required:
    - groupId
    properties:
      groupId:
        type: string
        description: >-
          Internal identifier of the group or team the webhook posts into. This is
          the same id returned when a team is created.
  steps:
  - stepId: createWebhook
    description: >-
      Create the incoming webhook for the group. This operation takes no request
      body — RingCentral generates the webhook and returns its resource, including
      the URI external systems will post to.
    operationId: createGlipGroupWebhookNew
    parameters:
    - name: groupId
      in: path
      value: $inputs.groupId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      webhookId: $response.body#/id
      webhookUri: $response.body#/uri
      status: $response.body#/status
      creatorId: $response.body#/creatorId
      creationTime: $response.body#/creationTime
  - stepId: readWebhook
    description: >-
      Read the webhook back to confirm it is active and to capture the posting URI
      that gets handed to the external system.
    operationId: readGlipWebhookNew
    parameters:
    - name: webhookId
      in: path
      value: $steps.createWebhook.outputs.webhookId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      webhookUri: $response.body#/uri
      groupIds: $response.body#/groupIds
  - stepId: suspendWebhook
    description: >-
      Suspend the webhook to stop delivery without destroying it. Posts to the URI
      are rejected while suspended, but the URI survives so the external system does
      not have to be reconfigured to resume.
    operationId: suspendGlipWebhookNew
    parameters:
    - name: webhookId
      in: path
      value: $steps.createWebhook.outputs.webhookId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: activateWebhook
    description: >-
      Reactivate the suspended webhook so the original URI resumes delivering into
      the chat.
    operationId: activateGlipWebhookNew
    parameters:
    - name: webhookId
      in: path
      value: $steps.createWebhook.outputs.webhookId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: deleteWebhook
    description: >-
      Permanently delete the webhook when the integration is retired. The URI stops
      working immediately and cannot be recovered.
    operationId: deleteGlipWebhookNew
    parameters:
    - name: webhookId
      in: path
      value: $steps.createWebhook.outputs.webhookId
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    webhookId: $steps.createWebhook.outputs.webhookId
    webhookUri: $steps.readWebhook.outputs.webhookUri
    groupIds: $steps.readWebhook.outputs.groupIds