Skip to main content

Event Types

Each message sent through Svix has an associated event type. Event types are identifiers denoting the type of the message being sent.

Event types are just string, and can be anything. For example: user.signup, invoice.paid and workflow.completed.

Event types are primarily used to decide which events are sent to which endpoint. By default, all messages are sent to all endpoints. Though when adding or editing endpoints, users can choose to only subscribe to some of the event types for this particular endpoint.

success

It's recommended to add the event types you are going to use ahead of time. You can do it using the scripts in the bulk creating event types section.

This is how choosing event types look like in the pre-built application portal:

Management UI screenshot

Using event types#

You can add, edit, and delete event types in the dashboard or through the API below.

import { Svix } from "svix";
const svix = new Svix("AUTH_TOKEN");
const eventType = await svix.eventType.create({
name: "user.signup",
description: "A user has signed up"
});

Bulk creating event types#

The easiest way to bulk-create event types is by just writing a simple script to load a pipe delimited CSV file or a JSON file with the event types and make the API requests.

Here is an example CSV file (without headers) of events:

user.created|A user has been created
user.removed|A user has been removed
user.changed|A user has changed

Here are some example scripts for processing the above file:

import { Svix } from "svix";
import fs from "fs";
import readline from "readline";
const svix = new Svix("AUTH_TOKEN");
async function execute() {
const fileStream = fs.createReadStream("./data.csv");
const data = readline.createInterface({
input: fileStream,
crlfDelay: Infinity
});
for await (const lineItr of data) {
const line = lineItr.split("|");
const eventType = await svix.eventType.create({
name: line[0],
description: line[1],
});
}
}
execute();