mutation webhookCreateAuthenticated

Returns WebhookSecretResult!

Arguments

ArgumentTypeDescription
inputWebhookCreateInput!

Example request

curl -X POST 'https://graph.clientloop.com/' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <api-key>' \
  -d '{
    "query": "mutation WebhookCreate($input: WebhookCreateInput!) { webhookCreate(input: $input) { webhook { id ownerId url events description enabled secretCheckValue createdAt updatedAt } signingSecret } }",
    "variables": {
      "input": {
        "ownerId": "abc123",
        "url": "example",
        "events": [
          "example"
        ]
      }
    }
  }'
const response = await fetch('https://graph.clientloop.com/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <api-key>',
  },
  body: JSON.stringify({
    query: `
      mutation WebhookCreate($input: WebhookCreateInput!) {
        webhookCreate(input: $input) {
          webhook {
            id
            ownerId
            url
            events
            description
            enabled
            secretCheckValue
            createdAt
            updatedAt
          }
          signingSecret
        }
      }
    `,
    variables: {
      "input": {
        "ownerId": "abc123",
        "url": "example",
        "events": [
          "example"
        ]
      }
    },
  }),
});

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

$body = <<<'JSON'
{
  "query": "mutation WebhookCreate($input: WebhookCreateInput!) { webhookCreate(input: $input) { webhook { id ownerId url events description enabled secretCheckValue createdAt updatedAt } signingSecret } }",
  "variables": {
    "input": {
      "ownerId": "abc123",
      "url": "example",
      "events": [
        "example"
      ]
    }
  }
}
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 WebhookCreate($input: WebhookCreateInput!) { webhookCreate(input: $input) { webhook { id ownerId url events description enabled secretCheckValue createdAt updatedAt } signingSecret } }",
  "variables": {
    "input": {
      "ownerId": "abc123",
      "url": "example",
      "events": [
        "example"
      ]
    }
  }
}
""";

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 WebhookCreate($input: WebhookCreateInput!) { webhookCreate(input: $input) { webhook { id ownerId url events description enabled secretCheckValue createdAt updatedAt } signingSecret } }",
  "variables": {
    "input": {
      "ownerId": "abc123",
      "url": "example",
      "events": [
        "example"
      ]
    }
  }
}
""";

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 WebhookCreateInput

FieldTypeDescription
ownerIdID!The entity this webhook belongs to. The accepted id format is product-specific (e.g. an organization or workspace); ids of other kinds are rejected.
urlString!
events[String!]!
descriptionString
enabledBooleanDefaults to true when omitted.

type WebhookSecretResult

Returned only by webhookCreate and webhookRotateSecret: the webhook plus its raw signing secret, shown once and never retrievable again. Use it to verify delivered payload signatures.

FieldTypeDescription
webhookWebhook!
signingSecretString!

type Webhook

A subscription that delivers event notifications to an owner-supplied HTTPS endpoint. Referenced by id so its url or event list can change without affecting referencing records.

FieldTypeDescription
idID!
ownerIdID!
urlString!Destination HTTPS endpoint that receives event payloads via POST.
events[String!]!Event types this webhook is subscribed to (e.g. "commitment.created").
descriptionStringOptional human-readable label describing the webhook's purpose.
enabledBoolean!Whether the webhook is active and delivering events.
secretCheckValueString!Checksum of the signing secret, used to confirm which secret is configured without exposing it. The raw secret is only ever returned by webhookCreate and webhookRotateSecret.
createdAtDateTime!
updatedAtDateTime!

scalar DateTime

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