POST
your-webhook-endpoint
Partner Events
curl --request POST \
  --url https://app.journeybee.io/api/v1/your-webhook-endpoint \
  --header 'Authorization: Bearer <token>'
{
  "company_uuid": "<string>",
  "user_uuid": "<string>",
  "event_id": "<string>",
  "api_key": "<string>",
  "partnership": {
    "uuid": "<string>",
    "company_name": "<string>",
    "company_domain": "<string>",
    "company_website": "<string>",
    "company_description": "<string>",
    "company_email": "<string>",
    "company_phone_number": "<string>",
    "country_uuid": "<string>",
    "country_label": "<string>",
    "industry_uuid": "<string>",
    "industry_label": "<string>",
    "stage_uuid": "<string>",
    "stage_label": "<string>",
    "category_uuid": "<string>",
    "category_label": "<string>",
    "tier_uuid": "<string>",
    "tier_label": "<string>",
    "custom_fields": [
      {
        "uuid": "<string>",
        "label": "<string>",
        "type": "<string>",
        "value": {},
        "custom_field_value_uuid": "<string>",
        "options": [
          {}
        ]
      }
    ]
  },
  "configuration": [
    {
      "id": "<string>",
      "selected": [
        {
          "id": "<string>",
          "value": "<string>"
        }
      ]
    }
  ]
}

Event Types

  • partner_created - New partnership established
  • partner_updated - Partnership information changed
  • partner_contact_created - New contact added to partnership
  • partner_contact_updated - Partner contact information changed

Webhook Details

Event IDs: partner_created, partner_updated, partner_contact_created, partner_contact_updated
Content-Type: application/json
Method: POST

Authentication

All webhooks include JWT authentication in the Authorization header:
const jwt = require('jsonwebtoken');

app.post('/webhook', (req, res) => {
  const token = req.headers.authorization?.split('Bearer ')[1];
  
  try {
    const decoded = jwt.verify(token, process.env.INTEGRATION_UUID);
    console.log('Event:', decoded.event_id); // 'partner_created'
    console.log('Company:', decoded.company_uuid);
    
    const { partnership, configuration } = req.body;
    // Process partnership data...
    
    res.status(200).send('OK');
  } catch (error) {
    res.status(401).send('Invalid token');
  }
});

JWT Token Payload

company_uuid
string
UUID of the company that established the partnership
user_uuid
string
UUID of the user who created the partnership
event_id
string
Always partner_created for this event
api_key
string
Your integration’s API key

Webhook Payload Schema

partnership
object
The created partnership object
configuration
array
Integration configuration settings for field mapping

Example Payload

{
  "partnership": {
    "uuid": "partnership_12345678-1234-5678-9012-123456789abc",
    "company_name": "TechCorp Solutions",
    "company_domain": "techcorp.com",
    "company_website": "https://www.techcorp.com",
    "company_description": "Leading provider of enterprise software solutions",
    "company_email": "partnerships@techcorp.com",
    "company_phone_number": "+1-555-987-6543",
    "country_uuid": "country_11111111-1111-1111-1111-111111111111",
    "country_label": "United States",
    "industry_uuid": "industry_22222222-2222-2222-2222-222222222222",
    "industry_label": "Technology",
    "stage_uuid": "stage_33333333-3333-3333-3333-333333333333",
    "stage_label": "Active Partner",
    "category_uuid": "category_44444444-4444-4444-4444-444444444444",
    "category_label": "Technology Partner",
    "tier_uuid": "tier_55555555-5555-5555-5555-555555555555",
    "tier_label": "Gold",
    "custom_fields": [
      {
        "uuid": "cf_66666666-6666-6666-6666-666666666666",
        "label": "Partnership Start Date",
        "type": "date",
        "value": { "date": "2024-01-15T00:00:00.000Z" },
        "custom_field_value_uuid": "cfv_77777777-7777-7777-7777-777777777777",
        "options": null
      }
    ]
  },
  "configuration": [
    {
      "id": "partner_integration_settings",
      "selected": [
        {
          "id": "unique_field_partner",
          "value": "company_domain"
        }
      ]
    }
  ]
}

Notes

  • Webhook is sent when a new partnership is established in JourneyBee
  • JWT token must be verified using your Integration UUID as the secret
  • Custom fields array may be empty if no custom fields are configured
  • Configuration array contains your integration’s field mapping settings