Back to reference

API Reference

Get one campaign run approval

Returns one prospect workflow run's complete pending approval payload. Match each `pendingContent[].nodeId` to `workflowReview.nodes[].nodeId`; use `reviewContext` for its human-readable position, such as Initial DM or Follow-up DM 1. Use those node IDs when updating messages. For comments, `postLink` and `postSummary` identify the selected post; for connection requests, `requestMessage` is the editable invite note.

GET/v1/accounts/{accountGroupId}/campaigns/{campaignId}/workflow-runs/{workflowInstanceId}/approval

Integration notes

Required API permission

campaigns:read.

Prerequisites

integration_api_key, account_group_access.

Parameters

accountGroupIdPath

Type: string

Account group ID that scopes the request.

Required

campaignIdPath

Type: string

Campaign ID that identifies the campaign to read or mutate.

Required

workflowInstanceIdPath

Type: string

Unique identifier for the workflow instance.

Required

Request body

This endpoint does not define a request body.

Responses

200

Pending approval content for one workflow run

Schema: CampaignContentApprovalSuccessResponse

400

Request validation failed

Schema: ValidationErrorResponse

401

Invalid or missing API key

Schema: ErrorResponse

403

Missing required permission

Schema: ErrorResponse

404

Resource not found

Schema: ErrorResponse

429

Rate limit exceeded

Schema: ErrorResponse

500

Internal server error

Schema: ErrorResponse

502

Upstream service error

Schema: ErrorResponse

Response examples

200 Example JSONCampaignContentApprovalSuccessResponse
{
    "success": true,
    "data": {
        "workflowInstanceId": "507f1f77bcf86cd799439011",
        "campaignId": "507f1f77bcf86cd799439011",
        "campaignName": "Avery Stone",
        "linkedListId": "507f1f77bcf86cd799439011",
        "leadId": "507f1f77bcf86cd799439011",
        "personId": "507f1f77bcf86cd799439011",
        "firstName": "Avery Stone",
        "lastName": "Avery Stone",
        "title": "string",
        "companyName": "Avery Stone",
        "photoUrl": "https://example.com/resource",
        "linkedinUrl": "https://example.com/resource",
        "latestStep": "string",
        "pendingContent": [
            {
                "nodeId": "507f1f77bcf86cd799439011",
                "nodeSubType": "string",
                "contentType": "direct_message",
                "subject": "Quick follow-up",
                "message": "Thanks for the context. I can send over details this afternoon.",
                "requestMessage": "Thanks for the context. I can send over details this afternoon.",
                "generatedAt": "string",
                "previousStepSubType": "string",
                "workflowPath": [
                    {
                        "conditionSubType": "string",
                        "branch": "string"
                    }
                ],
                "reviewContext": {
                    "displayLabel": "string",
                    "sequence": 25,
                    "contentSequence": 25,
                    "pathLabel": "string",
                    "previousStepSubType": "string"
                },
                "postLink": "string",
                "postSummary": "string"
            }
        ],
        "workflowReview": {
            "nodes": [
                {
                    "nodeId": "507f1f77bcf86cd799439011",
                    "nodeSubType": "string",
                    "nodeType": "TRIGGER",
                    "displayLabel": "string",
                    "sequence": 25,
                    "contentSequence": 25,
                    "isContentStep": true
                }
            ],
            "edges": [
                {
                    "sourceNodeId": "507f1f77bcf86cd799439011",
                    "targetNodeId": "507f1f77bcf86cd799439011",
                    "branch": "true"
                }
            ]
        }
    },
    "error": null,
    "traceId": "507f1f77bcf86cd799439011"
}
400 Example JSONValidationErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "VALIDATION_ERROR",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
401 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
403 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
404 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
429 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
500 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
502 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}