Integrations

GitHub

Turn GitHub issues and workflow failures into Zivvy /v1/support-tickets automatically.

The snag

Customer bug reports open in GitHub Issues, but support and CS teams never see them until an engineer replies.

How Zivvy helps

A GitHub webhook (issues, workflow_run) hits your consumer and creates /v1/support-tickets in Zivvy with the right customer and severity.

What you get

  • GitHub Issue → /v1/support-tickets with severity + owner
  • workflow_run failure → /v1/support-tickets for on-call
  • Issue closed → ticket closed with resolution note

Workflow stream

External bug report on GitHub → /v1/support-tickets

Common uses

  1. 01

    External bug report on GitHub → /v1/support-tickets

  2. 02

    CI failure → /v1/support-tickets triaged to platform team

  3. 03

    Release deploy → note attached to a /v1/projects milestone

Integration code

Open API reference

Create ticket from GitHub Issue

curl -X POST https://integrate.zivvy.xyz/v1/support-tickets \
  -H "Authorization: Bearer $ZIVVY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "[bug] checkout returns 500",
    "raised_by": "user@acme.com",
    "external_id": "gh-issue-12345",
    "priority": "High"
  }'

GitHub webhook consumer

import { zivvy } from "./zivvy-client";

export async function POST(req) {
  const evt = await req.json();
  if (evt.action === "opened" && evt.issue) {
    await zivvy.supportTickets.create({
      external_id: `gh-${evt.issue.number}`,
      subject: evt.issue.title,
      raised_by: evt.issue.user.login,
      priority: evt.issue.labels.some(l => l.name === "P0") ? "Urgent" : "Medium"
    });
  }
  return new Response("ok");
}

API endpoints

POST /v1/support-ticketsPATCH /v1/support-tickets/{name}POST /v1/communications

Events emitted

HMAC-SHA256 signed webhooks, retried for 24 hours.

  • support-tickets.created
  • support-tickets.replied
  • support-tickets.resolved

0

free seats forever

0

card required to start

1

workspace for the workflow

Questions

Ready to try it?

Free plan. Two seats. No card.