# App sign-ups in the CRM: the trigger, app accounts and import

> Everything the CRM does with the people who sign up in your app: the Signed up in app automation trigger, step-by-step onboarding recipes, their app accounts on the contact page, the Automation Log, and the import of everyone who already has an account.

Source: https://support.estage.com/app-sign-ups-in-the-crm-the-trigger-app
Part of the ESTAGE Support help center (https://support.estage.com). Full knowledge base: https://support.estage.com/llms-full.txt

---

This is the CRM half of App Users. The bridge itself is connected in Genesis: see
[App Users: your app's sign-ups in the CRM](https://support.estage.com/app-users-your-app-s-sign-ups-in-the-crm).
Once it is, everything below works in your project's CRM at [crm.estage.com](https://crm.estage.com),
with nothing to set up there.

## In this guide

1. [Where your app's users show up](#where-your-apps-users-show-up)
2. [The Signed up in app trigger](#the-signed-up-in-app-trigger)
3. [Build an onboarding automation, step by step](#build-an-onboarding-automation-step-by-step)
4. [More recipes](#more-recipes)
5. [App accounts on the contact page](#app-accounts-on-the-contact-page)
6. [The Automation Log](#the-automation-log)
7. [Importing your app's users from the CRM](#importing-your-apps-users-from-the-crm)
8. [Finding and segmenting app users](#finding-and-segmenting-app-users)
9. [Questions people ask](#questions-people-ask)

## Where your app's users show up

| Where | What you see |
| --- | --- |
| **Contacts** | Every person from your app, with the tags the bridge gives them (*App users* by default) |
| **A contact's page** | **App accounts**: the sign-in, when they signed up and how, when they last signed in |
| **A contact's Automation Log** | *Signed up in app*, *App account linked*, *App account deleted* |
| **Automations** | The **Signed up in app** trigger |
| **Settings → Import** | **Your app's users**: each connected sign-in and an import of its accounts |

## The Signed up in app trigger

**Signed up in app** starts an automation when someone creates an account in your app.

How it differs from **Contact created**:

| | Contact created | Signed up in app |
| --- | --- | --- |
| Someone new signs up in your app | Fires | Fires |
| A lead from your site's form, already a contact, makes an account later | Doesn't fire (the contact already existed) | **Fires** |
| Someone fills in a form on your site | Fires | Doesn't fire |
| Existing accounts brought in by an import | Doesn't fire (unless the import is set to run automations) | Doesn't fire (unless the import is set to run automations) |

So it is the trigger for anything that should happen **because someone made an account**:
onboarding, a welcome, a trial sequence.

**Which sign-ins count.** Under the trigger, pick sign-ins from the list, or leave it empty. Empty
reads **Any of your app's sign-ins**, which is what you want with one app. With two apps (say a web
app on Firebase and a mobile app on Supabase), pick one to give each its own welcome.

**Tokens and old accounts.** When the app hands over sign-in tokens (Firebase, OpenID, some
Supabase setups), only an account less than 48 hours old counts as a sign-up. The first token of
an older account links the person without firing the trigger, so connecting the bridge doesn't
"welcome" all your long-standing users the next time they open the app.

If no sign-in is connected yet, the trigger's panel says so: *"No sign-in is connected to this CRM
yet — connect your app's sign-in in Genesis → Settings → App Users."*

## Build an onboarding automation, step by step

1. Open **Automations** in the CRM and create a new automation. Name it, for example *App
   onboarding*.
2. Click the **trigger** node and choose **Signed up in app**. Leave the sign-ins empty (any of
   your app's sign-ins) unless you have several apps.
3. Add **Send email**. Pick the sender and the message: a welcome, and the one thing a new user
   should do first.
4. Add a **delay** of 2 days.
5. Add a **condition**, for example *Opened broadcast* or *Has tag* (if your app tags people
   who've started, or you tag them with a form).
6. On the **no** branch, add **Send email** with a nudge: *"Need a hand getting started?"*
7. On the **yes** branch, add **Add tag**, for example *Onboarded*.
8. **Activate**. The builder lists anything still missing (a sender, a message) before it lets
   you.

From now on, every new sign-up in your app goes through it. People already in the app don't,
because they were imported.

## More recipes

**Welcome and notify the team**

1. Trigger **Signed up in app**.
2. **Send email** to the new user: welcome.
3. **Notify admin by email**, with the new contact's name and email in the message. It goes to the
   project owner and up to five more addresses, never to the user.

**Trial sequence**

1. Trigger **Signed up in app**.
2. Day 0: welcome. **Delay** 3 days.
3. Day 3: a tip about the main feature. **Delay** 4 days.
4. Day 7: *"Your trial ends soon"* with a link to your pricing.

**Separate welcomes for two apps**

1. Automation A: **Signed up in app**, sign-in *Web app (Firebase)*, a welcome for the web.
2. Automation B: **Signed up in app**, sign-in *Mobile app (Supabase)*, a welcome for the app.

**Newsletter only with consent**

Lists are given by the bridge itself, not by an automation, and only with consent when you say
where it's stored. Ask the AI in Genesis: *"Add new sign-ups to the Newsletter list, only when
they ticked marketing emails (user_metadata.marketing_opt_in)."* People who unsubscribed are never
added back.

## App accounts on the contact page

A contact who has an account in your app shows **App accounts** in their details:

- **Which sign-in**, for example *Genesis Dedicated Cloud*, *Firebase Authentication*, *Clerk*.
- **Signed up**: the date, and how (*with Google*, *with email*, *with a magic link*…).
- **Last sign-in**: date and time. Updated at most once an hour.
- **Removed in app**: when they deleted the account. The contact itself stays.

Someone with accounts in two of your apps shows both. The section appears only for contacts who
have an app account.

## The Automation Log

A contact's **Automation Log** records the app moments next to the rest of their history:

| Entry | When | Next to it |
| --- | --- | --- |
| **Signed up in app** | They created an account in your app | Which sign-in and how they signed up |
| **App account linked** | An account was matched to someone already in the CRM, or came in with an import | Which sign-in |
| **App account deleted** | They deleted the account in your app | Which sign-in |

## Importing your app's users from the CRM

The import that Genesis offers when you connect is also in the CRM: **Settings → Import → Your
app's users**.

1. The section lists each connected sign-in with its health (*Live*, *Waiting for the first
   sign-up*, *Needs attention*, *Paused*) and what it has brought in. If the last delivery failed,
   it says so with the reason.
2. Press **Import** on a sign-in.
3. Choose where the accounts come from (**Import from**):
   - **The sign-in itself** (its name, for example *Genesis Dedicated Cloud*). For a Dedicated
     Cloud there's nothing to fill in. A Supabase project of your own asks for its *Project URL*
     and *Secret (service_role) key*, Firebase for its *Service account key* (JSON), Clerk for its
     *Secret key*: *"Used for this import only, and erased when it ends."*
   - **Export file**: `firebase auth:export` (JSON), a Supabase or Clerk CSV, or any CSV with an
     email column. Up to 50 MB.
4. Two options:
   - **Add the tags and lists this sign-in gives new people**: on by default.
   - **Run automations for them**: off by default, since they signed up long ago.
5. Start. *"Import started — this can take a few minutes."* You can leave the page: the import
   keeps going.
6. At the end: how many new contacts, how many linked to people already in the CRM, how many
   skipped and why (no email address, a role address such as postmaster@, an invalid address).

Running it again is safe: nobody is added twice.

If no sign-in is connected yet, the section says *"Connect it in Genesis → Settings → App Users"*.

## Finding and segmenting app users

- **Everyone from the app**: filter contacts by the bridge's tag (*App users* by default).
- **One app among several**: give each bridge its own tag when you connect it (*Web app users*,
  *Mobile users*), or ask the AI to add one.
- **A broadcast to app users**: send it to the tag, or to a list the bridge fills.
- **People who deleted their account**: their contacts carry *App account deleted* in the
  Automation Log, and with the bridge set to *stop emailing them* they're unsubscribed.

## Questions people ask

**I connected the bridge. Do I need to change anything in the CRM?** No. Contacts start arriving
on their own. Add an automation on **Signed up in app** if you want something to happen when they
do.

**Will my existing app users get my welcome automation?** No. Imported people don't fire it unless
you tell the import to run automations.

**A contact from my form signed up in my app. Will they get the onboarding?** Yes. That's the
difference from *Contact created*.

**Can I see which app someone uses?** Yes, under **App accounts** on their page, and by the tag you
gave each bridge.

**Someone deleted their account in the app. Is the contact gone?** No, it stays, marked *Removed in
app*. Whether they keep getting emails is the bridge's setting in Genesis (*Keep the contact, stop
emailing them*).

**Does the same person in two of my projects share one contact?** No. Each project has its own
contact, tags, lists and automations.
