mutation webhookRequestReplayAuthenticated

Puts a delivered or failed request back in the queue so it is sent again, with the same payload, URL and eventId. The webhook must be active.

Returns WebhookRequest!

Arguments

ArgumentTypeDescription
inputWebhookRequestReplayInput!

Example request

curl -X POST 'https://graph.clientloop.com/' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <api-key>' \
  -d '{
    "query": "mutation WebhookRequestReplay($input: WebhookRequestReplayInput!) { webhookRequestReplay(input: $input) { id webhookId ownerId url payload eventId status attempts lastStatusCode lastError nextAttemptAt createdAt updatedAt } }",
    "variables": {
      "input": {
        "id": "abc123"
      }
    }
  }'
const response = await fetch('https://graph.clientloop.com/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <api-key>',
  },
  body: JSON.stringify({
    query: `
      mutation WebhookRequestReplay($input: WebhookRequestReplayInput!) {
        webhookRequestReplay(input: $input) {
          id
          webhookId
          ownerId
          url
          payload
          eventId
          status
          attempts
          lastStatusCode
          lastError
          nextAttemptAt
          createdAt
          updatedAt
        }
      }
    `,
    variables: {
      "input": {
        "id": "abc123"
      }
    },
  }),
});

const { data, errors } = await response.json();
<?php

$body = <<<'JSON'
{
  "query": "mutation WebhookRequestReplay($input: WebhookRequestReplayInput!) { webhookRequestReplay(input: $input) { id webhookId ownerId url payload eventId status attempts lastStatusCode lastError nextAttemptAt createdAt updatedAt } }",
  "variables": {
    "input": {
      "id": "abc123"
    }
  }
}
JSON;

$ch = curl_init('https://graph.clientloop.com/');
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Authorization: Bearer <api-key>',
  ],
  CURLOPT_POSTFIELDS => $body,
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var body = """
{
  "query": "mutation WebhookRequestReplay($input: WebhookRequestReplayInput!) { webhookRequestReplay(input: $input) { id webhookId ownerId url payload eventId status attempts lastStatusCode lastError nextAttemptAt createdAt updatedAt } }",
  "variables": {
    "input": {
      "id": "abc123"
    }
  }
}
""";

var request = HttpRequest.newBuilder(URI.create("https://graph.clientloop.com/"))
    .header("Content-Type", "application/json")
    .header("Authorization", "Bearer <api-key>")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();

var response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
using System.Net.Http;
using System.Text;

var body = """
{
  "query": "mutation WebhookRequestReplay($input: WebhookRequestReplayInput!) { webhookRequestReplay(input: $input) { id webhookId ownerId url payload eventId status attempts lastStatusCode lastError nextAttemptAt createdAt updatedAt } }",
  "variables": {
    "input": {
      "id": "abc123"
    }
  }
}
""";

using var client = new HttpClient();
using var content = new StringContent(body, Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("Authorization", "Bearer <api-key>");

var response = await client.PostAsync("https://graph.clientloop.com/", content);
var result = await response.Content.ReadAsStringAsync();

Types

input WebhookRequestReplayInput

FieldTypeDescription
idID!

The request to send again.

type WebhookRequest

A single delivery of a JSON payload to a webhook, together with its retry state. Retained for 90 days.

FieldTypeDescription
idID!
webhookIdID!

The webhook this payload is delivered to.

ownerIdID!
urlString!

Snapshot of the destination URL at dispatch time; retries keep targeting it even if the webhook is later edited.

payloadJSON!

The JSON body delivered to the endpoint.

eventIdID!

The eventId sent in the delivered body. Identical across every retry and resend of the request.

statusWebhookRequestStatus!
attemptsInt!

How many delivery attempts have been made so far.

lastStatusCodeInt

HTTP status code from the most recent attempt, if one has been made.

lastErrorString

Error message from the most recent attempt, if it failed.

nextAttemptAtDateTime

When the next attempt is scheduled, while the request is still pending.

createdAtDateTime!
updatedAtDateTime!

scalar JSON

A JSON string

enum WebhookRequestStatus

Delivery lifecycle of a WebhookRequest. A request is pending until it is delivered (an accepted 200/201 response) or failed (no acceptance within the 7-day retry deadline).

  • pending
  • delivered
  • failed

scalar DateTime

ISO 8601 formatted date time. Ex. 2023-11-23T14:30:00Z