Integrations

Webhook Payload Reference

Complete reference for webhook event payloads and headers.

This page documents the structure of webhook payloads sent by Diaform, including HTTP headers and JSON body schemas.

HTTP Headers#

Every webhook request includes the following headers:

HeaderValueDescription
Content-Typeapplication/jsonThe payload is JSON-encoded
X-Webhook-Eventconversation.completedThe type of event that triggered the webhook
X-Webhook-SignatureHMAC-SHA256 hex digestHMAC signature for verifying authenticity

conversation.completed Event#

Fired when an interview finishes and the AI-generated summary is ready.

Example Payload#

{
  "conversation_id": "uuid",
  "agent_id": "uuid",
  "organization_id": "uuid",
  "status": "completed",
  "summary": {
    "answers": [
      {
        "question": "How satisfied are you with our product?",
        "answer": "Very satisfied, especially with the onboarding experience",
        "sentiment": "positive",
        "confidence": "high",
        "quotes": ["The onboarding was really smooth"]
      }
    ],
    "overall_sentiment": "positive",
    "urgent_issues": [],
    "additional_insights": "User mentioned interest in API access",
    "keyword_tags": {
      "positive": ["onboarding", "ease of use"],
      "negative": []
    },
    "actions_called": []
  },
  "completed_at": "2026-02-09T12:00:00.000Z"
}

Field Reference#

FieldTypeDescription
conversation_idstringUnique ID of the conversation
agent_idstringThe project that conducted the interview
organization_idstringYour organization ID
statusstringAlways "completed" for this event
summaryobjectAI-generated interview summary
summary.answersarrayPer-question structured answers
summary.answers[].questionstringThe question text
summary.answers[].answerstringAI-generated summary of the respondent's answer
summary.answers[].sentimentstringpositive, negative, neutral, or mixed
summary.answers[].confidencestringhigh, medium, or low
summary.answers[].quotesstring[]Direct quotes from the respondent
summary.overall_sentimentstringOverall interview sentiment
summary.urgent_issuesstring[]Critical issues flagged by the AI
summary.additional_insightsstringExtra context not covered by questions
summary.keyword_tagsobjectCategorized keywords extracted from the interview
summary.keyword_tags.positivestring[]Up to 5 positive themes
summary.keyword_tags.negativestring[]Up to 5 negative themes
summary.actions_calledstring[]Automations triggered during the interview
completed_atstringISO 8601 timestamp of when the interview completed

Sentiment Values#

The sentiment field can have the following values:

  • positive — The response expresses satisfaction or positive feedback
  • negative — The response expresses dissatisfaction or negative feedback
  • neutral — The response is factual or neither positive nor negative
  • mixed — The response contains both positive and negative elements

Confidence Levels#

The confidence field indicates how confident the AI is in its answer extraction:

  • high — The respondent gave a clear, direct answer
  • medium — The answer was somewhat indirect or required interpretation
  • low — The answer was vague or the respondent didn't fully address the question

Next Steps#

To verify that webhook requests are genuinely from Diaform, see Verifying Webhook Signatures.