Team Webhooks are available with Agency plan or as paid add-on.
Where to configure
- Go to Dashboard → Top-right corder → Webhooks
- Click Create webhook.
Step 1: Set your endpoint URL
- Enter the Webhook URL (a public HTTPS endpoint that accepts
POST).

Step 2: Pick events to receive
You can subscribe to one or more events:- Proposal Created (
upwork_proposal.created): triggered when a new proposal is saved in your workspace. - Proposal Status Changed (
upwork_proposal.status_changed): triggered when the proposal’s state changes. This includes view state changes (e.g. whenisViewedtoggles), and also changes toisInterviewed,isHired,isWithdrawn,isArchived. - Invitation Created (
upwork_invitation.created): triggered when a new invitation is saved in your workspace. - Invitation Status Changed (
upwork_invitation.status_changed): triggered when an invitation’sstatusorreasonchanges.
Step 3 (optional): Configure authentication
If your endpoint requires auth, Vollna can send:- Bearer Token:
Authorization: Bearer <token> - Basic Auth:
Authorization: Basic base64(username:password)
Technical Specifications
Understanding the technical details of how Vollna sends webhook requests:- HTTP Method: POST
- Content-Type: application/json
- Timeout: 10 seconds
- User-Agent:
Vollna-Webhooks/1.0
Testing Your Webhook
You can test your webhook configuration by clicking Send Test Request in the webhook form. This sends a sample request to verify your endpoint is reachable and accepts your auth settings.Payload format
Every request is JSON with the same top-level structure:event: the event name (e.g.upwork_proposal.status_changed)timestamp: ISO-8601 timestampdata: the proposal or invitation payload (serialized)
Example: proposal status/view state changed
Debugging delivery
Open Dashboard → Integrations → Webhooks and check Recent Requests. You can inspect:- delivery status + HTTP status code
- request payload
- response body / error message
Best practices
- Return 2xx quickly (ideally < 5s). Do heavy work asynchronously.
- Make handlers idempotent (you may receive the same event more than once).
- Validate JSON and tolerate missing/optional fields in
data.
Troubleshooting
Common Issues
Webhook Not Receiving Requests
- Check webhook URL: Ensure it’s publicly accessible and returns a 2xx status code
- Verify authentication: If using auth, check credentials are correct
- Test connectivity: Use the “Send test notification” button in the setup form
- Check firewall: Ensure your server allows incoming requests from Vollna
Missing Fields in Webhook Data
- The
dataobject is a serialized entity and fields may be optional depending on the record. - Always check if a field exists before accessing it.
Testing Your Integration
- Use test notification: Click “Send Test Request” in the webhook setup
- Check logs: Monitor your server logs for incoming requests
- Validate JSON: Ensure your endpoint can parse the JSON payload
- Test authentication: Verify auth headers are received correctly
- Response handling: Ensure you return appropriate HTTP status codes