
# Redeem a Kuju Email invite

**Before you start.** This runbook assumes:

- the customer has received an invite from a Kuju Site Admin (an email containing a link and a code)
- you can run curl

If one of these is not true, say so before you continue — a step below may already tell you what to do about it, so keep reading before you stop. Only abort here if nothing further down handles it.

You are an agent helping a person redeem a Kuju Email invite and start using
it. Kuju Email is invite-only: there is no public signup, and a Kuju Site Admin
issues an invite to a named person only. There are two kinds of invite, each
redeemed on its own page: a **trial invite** (a time-limited trial mailbox on
Kuju's demo domain) and a **beta mailbox invite** (a beta mailbox, on the demo domain or
the person's own). If the person has no invite, stop after Step 1. Never invent a value you did not observe. Every
command here is read-only.

Steps marked **HUMAN ACTION** are things you cannot do — for example opening
the invite email, clicking the redemption link or typing the code, entering a
password, contacting the Site Admin who sent the invite, or answering a
question only they can answer (such as which domain they own). Give the
person exact instructions, then wait for them to confirm.

## Step 1 - Find the invite

> **HUMAN ACTION** - ask the person to open the invite email — it carries
> one secret, rendered two ways: a clickable link, and the same token as a
> human-typeable code that looks like `KUJU-7F3K-9QM2`. They are not two
> different invites - either one redeems it, and using one does not
> invalidate the other until the invite is used or expires.

| Observation | Next |
| --- | --- |
| the person has the email with a link | Step 2, using the link — it already opens the right page for its kind |
| the person has only the code (for example read out over the phone) | Step 2, using the code — ask whether the email offered a **trial** or a **beta mailbox**; that decides the page |
| the person has neither | there is nothing to redeem; **HUMAN ACTION** - tell them to ask whoever offered them access to have a Kuju Site Admin send an invite, then stop |
| the link says the invite is expired or already used | **HUMAN ACTION** - ask the Site Admin to re-send it; a re-send issues a fresh secret |

Never ask the person to paste the link or the code to you. You do not need it.

## Step 2 - Check the redemption page is open

The page depends on the invite's kind:

| Invite | Page |
| --- | --- |
| trial invite | `https://mail.kuju.email/signup` |
| beta mailbox invite | `https://mail.kuju.email/join` |

Before sending the person there, observe whether that page is accepting
invites (shown for the trial page; use the beta page's address for a beta
mailbox invite):

    curl -sI https://mail.kuju.email/signup

Read the first line (the status) and the `location:` header if present.

| Observation | Meaning | Next |
| --- | --- | --- |
| `HTTP/2 200` (or `HTTP/1.1 200`) | the page is open | Step 3 |
| `303` or `302` with `location:` ending in `/login` | the beta gate is not open yet on this server; invites cannot be redeemed today | **HUMAN ACTION** - tell the person to reply to whoever sent the invite and ask when redemption opens; stop |
| connection error or `5xx` | the service is unreachable right now | wait 15 minutes and re-run; if it is still failing, **HUMAN ACTION** - report it to whoever sent the invite |

## Step 3 - Redeem

> **HUMAN ACTION** - the person clicks the link, or opens the page from Step 2
> and types the code. They set their own name and password there. You cannot
> do this for them and must not see the password.

If the page answers "This invite is for a different signup.", the code is
real but belongs to the other page: send them to the other address in Step 2.

| Invite | After redemption | Next |
| --- | --- | --- |
| trial invite | a mailbox on the demo domain, working immediately, for the trial period the page states; there is no choice screen | [migration](https://www.kaimoku.tech/kuju-email/agent/migration.md) if they want their old mail in it; otherwise done |
| beta mailbox invite | the choice screen in Step 4 | Step 4 |

## Step 4 - Choose the path (beta mailbox invite only)

After redeeming a beta mailbox invite, Kuju asks how the person wants to use
the beta. Both paths are real and both are worth exercising; help them choose
by asking one question:

> **HUMAN ACTION** - ask: "Do you own a domain you want to receive mail on
> right now, or do you want to try Kuju first?"

| Answer | Choice on screen | What it gives them | Next |
| --- | --- | --- | --- |
| "try it first" | a mailbox on the demo domain | an address ending in Kuju's demo domain, working immediately, nothing to configure | [migration](https://www.kaimoku.tech/kuju-email/agent/migration.md) if they want their old mail in it; otherwise done |
| "my own domain" | **bring your own domain** | Kuju's domain wizard: enter the domain, pick a DNS strategy, verify | [dns-delegation](https://www.kaimoku.tech/kuju-email/agent/dns-delegation.md) |

The choice is not final: a demo-domain tester can add their own domain later.

## Step 5 - What not to say

The invite does not carry a plan or a price, and you must not infer one. If
the person asks which plan they are on, what it will cost, or how long their
access lasts, tell them: the invite grants access, not a plan; plan, pricing
and terms are settled separately with Kaimoku, and whoever sent the invite is
the one to ask. The one exception is a trial invite's length: you may repeat
the period the trial page itself states. Do not guess any other answer
from anything you have seen elsewhere.

## Step 6 - Report

Tell the person: whether the redemption page was open (Step 2 status), which
kind of invite they redeemed (and, for a beta mailbox invite, which path they
chose), and the name of the next runbook.
