---
title: 21.4 API Response
description: The JSON response Peikly returns for an external integration event, including duplicates and errors.
url: "https://peikly.com/docs/api-response/"
updated: "2026-10-10"
category: External Integrations
tags:
  - Manual sync
---

# 21.4 API Response

**Success (first occurrence):**

```json
{
  "success": true,
  "eventId": "internal-event-id",
  "isDuplicate": false,
  "workflowDispatchStatus": "triggered",
  "message": "Event received and workflow triggered."
}
```

**Duplicate event:**

```json
{
  "success": true,
  "isDuplicate": true,
  "workflowDispatchStatus": "skipped",
  "message": "Duplicate event; skipped."
}
```

**Dispatch status values:**

| Status | Meaning |
| --- | --- |
| `triggered` | Workflow was started |
| `no_matching_workflows` | No active workflows match this event |
| `feature_disabled` | Automation feature not in your plan |
| `rate_limited` | Automation rate limit hit for this period |
| `dispatch_failed` | Workflow dispatch encountered an error |

## If you receive this response -> do this next

| Response Pattern | Do this next |
| --- | --- |
| `isDuplicate = false`, `workflowDispatchStatus = triggered` | Check workflow execution history for the resulting run |
| `isDuplicate = true` | Send a new logical event with a new event ID |
| `workflowDispatchStatus = no_matching_workflows` | Create or activate a matching workflow |
| `workflowDispatchStatus = feature_disabled` | Upgrade plan or stop expecting automation from this event |
| `workflowDispatchStatus = rate_limited` | Retry after the rate-limit window resets |
| `workflowDispatchStatus = dispatch_failed` | Open workflow execution history and inspect the failed step |
