Skip to main content
A typical agent dialogue for a single-member Wyoming LLC, in call order. Each advance_company_onboarding response tells you the next action via nextAction and nextActionInput — this is what that sequence looks like.
1

OAuth handshake

The host signs the user in to doola (or sends them to sign up at the web app). See Authentication.
2

get_company_onboarding_status

Find the suggested next step. For a new customer with no company, it points to set_country_of_residence.
3

advance: set_country_of_residence

params: { countryCode } — where the founder personally lives (ISO 3166-1 Alpha-3).
4

advance: set_company_name

params: { name } — the primary name, without the LLC suffix.
5

advance: set_company_state

params: {} — locks Wyoming and LLC.
6

advance: select_package

params: {} — accepts ToS and returns live pricing. Quote pricing.dueAtCheckout, pricing.recurringAnnually, and pricing.summary verbatim.
7

advance: create_checkout_session

params: {} — share the returned checkoutUrl; keep checkoutSessionId.
8

User pays

The founder completes the Stripe checkout and returns saying “I paid”.
9

advance: verify_payment

params: { checkoutSessionId } — wait for paymentStatus=Complete before asking any post-payment question.
10

advance: search_industry → set_industry_description

Fetch the list, fuzzy-match the founder’s description, let them pick a verbatim entry, then set { industry, description, sellingPlatform? }.
11

advance: add_alternate_company_names

params: { name1, name2?, name3? }name1 is the existing primary; add up to two backups.
12

advance: set_registered_address

params: { useRegisteredAgent: true } — usually doola’s registered agent (included).
13

advance: set_mailing_address

params: { sameAsRegistered: true } — usually the doola virtual mailing address.
14

advance: add_members

Solo founder: auto-fill the name from the profile, ask only for phone + address.
15

advance: set_responsible_party

Auto-fill from the sole member; confirm the email (SS-4 + Form 8821 are sent there).
16

advance: set_ownership

params: { members: [{ ..., ownershipPercent: 100 }] } — 100% to the sole member.
17

Confirm

Present a complete markdown summary table of everything collected. Ask the user to reply “submit”.
18

advance: submit_for_review

params: { userConfirmed: true } — files the formation. Irreversible.
For co-founders, add_members collects each member’s details and set_ownership splits the percentages (must total exactly 100%). Everything else is identical.