Skip to main content
Using TypeScript? Check out our GraphQL SDK for a fully typed client.
A customer event will be created in all threads that belong to the provided customer ID. If you want an event to appear in a specific thread use a thread event.
To create an event you need a customer ID. You can get this by upserting a customer in Plain, from data in webhooks or other API calls you made. If you want to test this, press ⌘ + K on any thread and then “Copy customer ID” to get an ID you can experiment with. In this example we’ll be creating the following event:
Example event
For this you’ll need an API key with the following permissions:
  • customerEvent:create
Mutation
mutation createCustomerEvent($input: CreateCustomerEventInput!) {
  createCustomerEvent(input: $input) {
    customerEvent {
      id
      title
      createdAt {
        iso8601
        unixTimestamp
      }
    }
    error {
      message
      type
      code
      fields {
        field
        message
        type
      }
    }
  }
}
Variables
{
  "input": {
    "title": "API key generated",

    "customerIdentifier": {
      // You can use the email:
      "email": "jane@acme.com"

      // ...or if you set external id on customers:
      // externalId: 'YOUR_ID',

      // ...or you can use the customer's id in Plain:
      // customerId: 'c_123'
    },

    "components": [
      {
        "componentText": {
          "text": "New API key was added with the fingerprint **3b7896975ee9fd15eeb7** with 4 associated roles."
        }
      },
      {
        "componentSpacer": {
          "spacerSize": "M"
        }
      },
      {
        "componentLinkButton": {
          "linkButtonLabel": "View in admin",
          "linkButtonUrl": "https://admin.your-app.com"
        }
      }
    ],

    // Optional - if provided, this will ensure that this event can only
    // be created once and fail on the second time. This external id acts
    // as an idempotency key while also letting you correlate an event to
    // something your systems.
    "externalId": "XXX",

    // Optional - if provided then the event will only be shown
    // in a single thread vs all threads from a customer
    "threadId": "th_01HB924RWAW8H3Q8KZDFWYBJHZ"
  }
}