Setting Up Webhooks in Nusii

Webhooks let Nusii notify your own apps the moment something happens — like a client accepting a proposal or viewing it for the first time. Instead of you checking Nusii for updates, Nusii pushes the update to you automatically. They’re the building block behind custom automations and real-time integrations.

In this article you’ll learn what webhooks are, when to use them, which events Nusii can send, and how to create your first one in a couple of minutes.

What is a webhook?

A webhook is an automated message Nusii sends to a URL you choose whenever a specific event happens in your account.

Here’s the idea. You give Nusii a web address (your “endpoint”). When an event you care about occurs — say a proposal is accepted — Nusii sends an HTTP POST request to that address with the details. Your app receives it and can do whatever you need: update your CRM, post to Slack, kick off an onboarding sequence, or log the deal in a spreadsheet.

Think of it like a doorbell. Rather than walking to the door every few minutes to check if someone’s there, the bell rings the instant a visitor arrives.

When should you use webhooks?

Webhooks are the most flexible way to connect Nusii to other systems. They’re a great fit when:

  • You want full control with code. Build a custom automation that reacts to proposal or client activity exactly how you want.
  • You’re connecting to a service that accepts webhooks. Many tools can receive a webhook directly, no extra glue required.
  • You need things to happen in real time. Webhooks fire the moment an event happens, so there’s no polling or delay.

If you’d rather connect Nusii to other apps without writing code, Zapier is often the easier route. Webhooks are ideal when you need something more custom or want to talk to your own systems directly.

Which events can trigger a webhook?

Nusii can send a webhook for the following events. Each webhook listens for one event type, so pick the one that matches what you want to react to.

Event When it’s triggered
Proposal Created A new proposal is created in your account
Proposal Updated An existing proposal is edited and saved
Proposal Sent A proposal is sent to a client
Proposal Viewed A client opens and views the proposal for the first time
Proposal Accepted A client accepts (signs) the proposal
Proposal Rejected A client declines the proposal
Proposal Deleted A proposal is deleted
Client Created A new client is added
Client Updated A client’s details are edited and saved
Client Deleted A client is deleted

The most popular events are Proposal Accepted, Proposal Viewed, and Proposal Sent — perfect for tracking your sales pipeline as it moves.

How to create a webhook

Setting up a webhook takes about a minute. You’ll need a URL ready to receive the request — this is the endpoint your app or service listens on.

Step 1: Open the Webhooks page

Head to Settings → Integrations inside Nusii and click on Nusii Webhooks. You can also go straight there at app.nusii.com/settings/integrations/nusii_webhooks.

Step 2: Add your webhook

Under Add webhook, choose the event you want to listen for from the dropdown, then paste your endpoint URL into the address field.

Choosing an event type and entering a webhook URL

Step 3: Save it

Click Save. Your new webhook appears in the Your webhooks list, showing its event type and the URL it points to.

Each webhook handles a single event. To listen for more than one event, just add another webhook — for example, one for Proposal Sent and another for Proposal Accepted.

The list of active webhooks on your account

To remove a webhook, open the menu next to it and choose Delete webhook.

What the request looks like

When an event fires, Nusii sends an HTTP POST to your URL with a Content-Type of application/json. The body includes the event name and the related object (the proposal or client). Here’s an example for a Proposal Accepted event:

{
  "event_name": "proposal_accepted",
  "proposal": {
    "id": 30,
    "title": "Website Redesign Proposal",
    "status": "accepted",
    "public_id": "a1b2c3d4ef",
    "public_url": "https://app.nusii.com/proposals/a1b2c3d4ef", // or your own custom domain
    "document_number": "1042",
    "currency": "USD",
    "total_formatted": "$4,500.00",
    "created_at": "2026-05-20T09:14:00Z",
    "sent_at": "2026-05-20T09:30:00Z",
    "accepted_at": "2026-05-22T16:05:00Z",
    "expires_at": "2026-06-19T09:30:00Z",
    "client_id": 88,
    "client_name": "Sarah",
    "client_business": "Acme Design Studio",
    "client_email": "sarah@acmedesign.com",
    "sender_name": "Michael Koper"
    // …and many more, including the full client, account, and payment details
  }
}

Your endpoint should respond with a 2xx status code to confirm it received the request. A few things worth knowing:

  • If your endpoint returns an error (any non-2xx response), Nusii retries the delivery several times before giving up.
  • If your endpoint returns a 410 Gone status, Nusii treats the webhook as retired and removes it automatically.
  • You can have up to 20 webhooks on your account.

Building with the API

Prefer to manage webhooks in code? You can create, list, and delete them through the Nusii API instead of the dashboard — and a single API webhook can subscribe to several events at once.

For full details, including request examples and the complete payload format, see the Nusii Developer documentation.

If you have any questions, just ping us below. We’ll be happy to help!