# Guests

> People outside the organization (clients, contractors) invited by email who read, comment on and upload to the records they are granted, and see the invoices and bookings of the party they act for. Never members, never through an authorization library.

- Category: Collaboration
- Module: `guests`
- Modes: `managed`, `custom`
- Docs: https://bettersupabase.com/docs/blocks/guests
- Page: https://bettersupabase.com/blocks/guests

## Install

```bash
npx better-supabase add guests
```

The command also installs `updated-at`, `tenant`, `access`.

## Configure

Add the block to `better-supabase.config.ts`:

```ts
import { defineConfig } from "better-supabase/config";

export default defineConfig({
  blocks: {
    // Required by guests; add installs them too.
    "updated-at": {},
    tenant: {},
    access: {},
    // Modes: "managed", "custom". The default is "managed".
    guests: { mode: "managed" },
  },
});
```

## Client

The block has no React entry yet. Its server-side TypeScript is in `better-supabase/blocks/guests`.

## Events

- `guest.accepted`
- `guest.invited`
- `guest.revoked`
- `guest_grant.created`
- `guest_grant.revoked`

## Related blocks

Requires: [tenant](https://bettersupabase.com/blocks/tenant.md), [access](https://bettersupabase.com/blocks/access.md)

Works with: [outbox](https://bettersupabase.com/blocks/outbox.md), [audit](https://bettersupabase.com/blocks/audit.md), [invoices](https://bettersupabase.com/blocks/invoices.md), [bookings](https://bettersupabase.com/blocks/bookings.md), [parties](https://bettersupabase.com/blocks/parties.md)
