Setup

Read the onboarding steps for you and your agency, network and trial, and record that a step was done, skipped or put away.

The setup API returns the onboarding steps for the signed-in person and, for an admin, for the agency. Onboarding has two tiers: every organization is on the Fondaro Network from sign-up and gets the network steps; once it has a plan or its free trial, the trial steps follow them. Fondaro works out whether a step is done from what the step produces, so the only thing you write is a person's choice to mark a step done, skip it or put the page away.

These endpoints take a signed-in member's session token (Authorization: Bearer <session-token>); API keys do not open them. See Authentication.

Read your setup

GET /me/setup

Returns your own steps and, for an organization admin, the agency's steps, invitations and what is already on. Takes no parameters.

bash
curl https://api.fondaro.com/me/setup \  -H "Authorization: Bearer $SESSION_TOKEN"
json
{  "role": "admin",  "tier": "network",  "plan": { "kind": "none", "trialing": false, "trialEndsAt": null },  "entitled": false,  "teamMode": "solo",  "dismissed": false,  "welcomed": true,  "agency": [    { "id": "agency", "tier": "network", "status": "open", "missing": ["logo"], "hidden": false, "detail": null },    { "id": "listings", "tier": "network", "status": "open", "missing": ["listing"], "hidden": false, "detail": { "count": 0, "inReview": 1 } }  ],  "you": [    { "id": "photo", "tier": "network", "status": "open", "missing": ["photo"], "hidden": false, "detail": { "photo": false } }  ],  "prompts": [    { "id": "profile", "tier": "network", "status": "open", "missing": ["areas"], "hidden": false, "detail": { "photo": false, "languages": true, "areas": false } },    { "id": "app", "tier": "network", "status": "open", "missing": ["action"], "hidden": false, "detail": null }  ],  "progress": { "done": 0, "total": 3 },  "invitations": [],  "kicked": [],  "alreadyOn": { "ask": false, "smartRouting": false, "calling": false }}
FieldTypeDescription
roleadmin or memberYour role in the organization
tiernetwork or trialnetwork for an organization with no plan (only the network steps are listed), trial once it has a plan or its trial (the network steps, then the trial steps)
plan.kindnone, crm, growth or crm_and_growthThe plans the organization holds
plan.trialing, plan.trialEndsAtboolean, string or nullWhether the organization is in its free trial, and when it ends
plan.trialPriceobject, optionalA trialing CRM plan only: { seatCount, amountCents, currency }, the monthly price once the trial ends
entitledbooleantrue once a plan or the trial is on
teamModesolo or teamSolo is one person and no invitation; the team step is then hidden
dismissedboolean"I'm done" for this tier: by an admin for all admins, or by you as a member. Putting the network steps away does not hide the trial steps a plan brings later
welcomedbooleanYou have seen the network welcome
agencystep[] or nullAdmins only
youstep[]Your own steps
promptsstep[]Your later things, not steps: profile (your languages and areas) and app. Never counted in progress
progress{ done, total }Counts the listed steps that are not hidden
invitationsarrayAdmins only, newest first. status is pending, accepted or revoked
kicked{ name, at }[]Admins only: people removed in the last 30 days because the team was over its plan's people
alreadyOnobject or nullAdmins only: whether Ask Fondaro, Smart routing and Calling are on

Steps

Each step is { id, tier, status, missing, hidden, detail }. status is done, open or skipped. A step is done when what it produces exists; otherwise the latest recorded choice decides. Choices on agency steps count from any admin; choices on your own steps count only from you. missing names what the step still needs (empty once done): name, logo, listing, photo, languages, areas, or action for a step whose own flow decides.

The page shows the steps in this order: the network steps, then the trial steps.

idTierGroupDone when
agencyNetworkAgencyThe agency name and both logos are set (the dark logo is made from the one you upload)
listingsNetworkAgencyThe agency has an active home of its own, a Resales Online import has finished, or the agency asked Fondaro to set up Resales Online (detail.resalesHelp). detail.inReview counts homes added by hand that are waiting for approval
photoNetworkYouYou have a profile photo
billingTrialAgencyThe billing details are complete. Listed only in the trial's last three days
phoneTrialYouYour own number is verified and assigned to you
emailTrialYouYour own inbox is connected and working
leadsTrialAgencyA lead exists, leads were imported, or a listing source is connected
teamTrialAgencyTwo or more people are on the team, or an invitation was sent

The prompts, in prompts, have the same shape:

idDone when
profileYour network profile lists a language and an area
appYou signed in on the phone app, or said you installed it (a done choice)

Record a step

POST /me/setup/events

Records that you did, skipped or put away a step. The person is always the caller.

ParameterTypeRequiredDescription
stepBody, stringYesA step or prompt id above; resales-help to ask Fondaro to set up Resales Online; setup-network or setup for the whole page in the network or the trial tier; welcome for the network welcome. Must match ^[a-z][a-z0-9_-]{0,39}$
actionBody, done, skipped or dismissedYesWhat you did
bash
curl -X POST https://api.fondaro.com/me/setup/events \  -H "Authorization: Bearer $SESSION_TOKEN" \  -H "Content-Type: application/json" \  -d '{ "step": "app", "action": "done" }'

Returns 204 No Content.

{ "step": "setup-network", "action": "dismissed" } (or "setup" in the trial tier) puts the page away: from an admin, for every admin of the organization; from a member, for that member only. Nothing is deleted; the latest choice per person and step wins, and a step that later becomes done reads as done.

Errors

StatusWhen
400step is not a short lowercase key, or action is not one of the three values
401No valid session token
403The caller is not a member of the organization