POST
your-webhook-endpoint
Deal Note 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>",
  "note": {
    "uuid": "<string>",
    "created_at": 123,
    "document": "<string>",
    "user_uuid": "<string>",
    "user_email": "<string>",
    "user_first_name": "<string>",
    "user_last_name": "<string>",
    "lead_deal_uuid": "<string>"
  },
  "configuration": [
    {
      "id": "<string>",
      "selected": [
        {
          "id": "<string>",
          "value": "<string>"
        }
      ]
    }
  ]
}

Event Types

  • deal_note_created - Note added to deal
  • deal_note_updated - Deal note modified
  • deal_note_deleted - Note removed from deal

Webhook Details

Event IDs: deal_note_created, deal_note_updated, deal_note_deleted
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); // 'deal_note_created'
    console.log('Company:', decoded.company_uuid);
    
    const { note, configuration } = req.body;
    // Process note data...
    
    res.status(200).send('OK');
  } catch (error) {
    res.status(401).send('Invalid token');
  }
});

JWT Token Payload

company_uuid
string
UUID of the company where the note was created
user_uuid
string
UUID of the user who created the note
event_id
string
Always deal_note_created for this event
api_key
string
Your integration’s API key

Webhook Payload Schema

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

Example Payload

{
  "note": {
    "uuid": "note_98765432-2109-8765-4321-987654321098",
    "created_at": 1716214515227,
    "document": "Deal progressing well. Customer is very interested and ready to move forward with the proposal. They've confirmed budget approval and are looking to close within the next 30 days.",
    "user_uuid": "user_12345678-1234-5678-9012-123456789abc",
    "user_email": "sales@company.com",
    "user_first_name": "Sales",
    "user_last_name": "Rep",
    "lead_deal_uuid": "deal_ee436d2b-77a4-4951-9dbf-264ed117ba22"
  },
  "configuration": []
}

Notes

  • Webhook is sent when a note is added to a deal in JourneyBee
  • JWT token must be verified using your Integration UUID as the secret
  • Note content is converted from TipTap JSON format to plain text
  • Configuration array is typically empty for note events
  • lead_deal_uuid refers to the deal the note is attached to