> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.crisp.chat/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to push Crisp profile events

*Learn how to push user events to Crisp from your website, backend, or workflows.*

Events are useful when you want Crisp to react to product or customer actions, such as signup, purchase, upgrade, or cancellation. They can help trigger campaigns, feed workflows, or give your team more context about what a user just did.

---

# ${color}[#0080dd](Push an event with the JavaScript SDK)

Use the **Crisp JavaScript SDK** after the Crisp chatbox snippet is available on the page.

```javascript
// Replace the event name, data, and color with your own values.
$crisp.push(["set", "session:event", [[
  ["product_bought", { price: "$200", name: "iPhone 6S" }, "red"]
]]]);
```

A session event includes an event name, an optional data object, and an optional color. Supported colors are `red`, `orange`, `yellow`, `green`, `blue`, `purple`, `pink`, `brown`, `grey`, and `black`.

|| Replace `product_bought` with your own event, such as `login`, `signup`, `upgrade`, or `order_completed`.

| You can also push events from your backend. Read [How to push user events from my backend](/en/article/how-to-push-user-event-from-my-backend-z0tda4/) for that setup.

---

# ${color}[#0080dd](Push an event from a workflow)

You can also push an event from a workflow using the **Push Session Event** action block.

![Push Session Event action block in a Crisp workflow](https://storage.crisp.chat/users/helpdesk/website/87ae2703583ac800/cleanshot-2025-03-03-at-163308_cbxlaj.png =1000xauto)

__This can be useful when you want to:__
* **Trigger a campaign** after a customer asks for product information
* **Send a meeting link** after a workflow collects enough qualification details
* **Track a workflow outcome** so your team can reuse the event later

---

# ${color}[#0080dd](Use events safely)

Events are best for automation and timeline context. They should not be used as a permanent database.

||| Crisp only retains the most recent events for users. If you need to store stable per-user information, use [custom data](/en/article/how-can-i-automatically-set-custom-data-1xh7pqk/) instead.

| Want to know more about the `$crisp` interface? Read [How do I use the $crisp chatbox SDK?](/en/article/how-do-i-use-the-crisp-chatbox-sdk-1lp254r/).