Assembled · Arazzo Workflow

Assembled Ingest and Enrich Conversations

Version 1.0.0

Bulk-upsert customer conversation records, then bulk-update them with enriched fields.

1 workflow 1 source API 1 provider
View Spec View on GitHub Customer SupportWorkforce ManagementWFMAI AgentsAI CopilotContact CenterCustomer ExperienceSupport OperationsSchedulingForecastingQuality AssuranceVendor ManagementBPOArazzoWorkflows

Provider

assembled

Workflows

ingest-conversations
Bulk-upsert conversations, then bulk-update them with enriched fields.
Upserts a batch of conversation records, then applies a partial bulk update to enrich the same records identified by external_id.
2 steps inputs: apiKey, conversations, updates outputs: enrichStatus
1
upsertConversations
bulkUpsertConversations
Bulk-upsert the conversation records so they can be associated with agents, queues, and channels.
2
enrichConversations
bulkUpdateConversations
Apply a partial bulk update to enrich the same conversations, identified by external_id, with resolution, handle-time, and CSAT fields.

Source API Descriptions

Arazzo Workflow Specification

assembled-ingest-conversations-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Assembled Ingest and Enrich Conversations
  summary: Bulk-upsert customer conversation records, then bulk-update them with enriched fields.
  description: >-
    Loads customer conversation history from a non-native CRM stack into
    Assembled in two passes. The workflow first bulk-upserts conversation records
    keyed by external_id so they can be associated with agents, queues, and
    channels, then issues a bulk update to enrich those same conversations with
    resolution, handle-time, and CSAT fields as they become available. 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: conversationsApi
  url: ../openapi/assembled-conversations-api-openapi.yml
  type: openapi
workflows:
- workflowId: ingest-conversations
  summary: Bulk-upsert conversations, then bulk-update them with enriched fields.
  description: >-
    Upserts a batch of conversation records, then applies a partial bulk update
    to enrich the same records identified by external_id.
  inputs:
    type: object
    required:
    - apiKey
    - conversations
    - updates
    properties:
      apiKey:
        type: string
        description: Assembled API key (sk_live_...) used as the HTTP Basic Auth username.
      conversations:
        type: array
        items:
          type: object
        description: Conversation records to upsert (external_id, channel, started_at, plus optional fields).
      updates:
        type: array
        items:
          type: object
        description: Partial conversation updates keyed by external_id (status, resolved, handle_time_seconds, csat_score).
  steps:
  - stepId: upsertConversations
    description: >-
      Bulk-upsert the conversation records so they can be associated with
      agents, queues, and channels.
    operationId: bulkUpsertConversations
    requestBody:
      contentType: application/json
      payload:
        conversations: $inputs.conversations
    successCriteria:
    - condition: $statusCode == 202
  - stepId: enrichConversations
    description: >-
      Apply a partial bulk update to enrich the same conversations, identified
      by external_id, with resolution, handle-time, and CSAT fields.
    operationId: bulkUpdateConversations
    requestBody:
      contentType: application/json
      payload:
        conversations: $inputs.updates
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      statusCode: $statusCode
  outputs:
    enrichStatus: $steps.enrichConversations.outputs.statusCode