@cfxlabsinc/b2b-services
    Preparing search index...
    interface CustomerOnboardingActivityDependencies {
        aiPriseClient: AiPriseClient;
        customerApplicationService: Pick<
            CustomerApplicationService,
            "markFailed"
            | "markProvisioned"
            | "notifyApproved",
        >;
        customerDashboardInviteAdminService: Pick<
            CustomerDashboardInviteAdminService,
            "create",
        >;
        customerDashboardOrigin: string;
        customerDashboardWorkspaceAdminService: Pick<
            CustomerDashboardWorkspaceAdminService,
            "create",
        >;
        customerService: CustomerService;
        customerSlackBotChannelAdminService: CustomerSlackBotChannelAdminService;
        customerSlackBotInstallationAdminService: CustomerSlackBotInstallationAdminService;
        db: B2bDatabase;
        hookdeckOutpostClient: HookdeckOutpostClient;
        internalSlackChannelAdminService: InternalSlackChannelAdminService;
        ledgerAccountService: LedgerAccountService;
        organizationService: OrganizationService;
        programAdminService: Pick<
            ProgramAdminService,
            "grantIn"
            | "invalidateGrant",
        >;
        recurringFeeAdminService: RecurringFeeAdminService;
        slackBotInstallationService: SlackBotInstallationService;
        temporalClient: TemporalWorkflowClient<
            {
                onboardRouteFusionOrganizationWorkflow: (
                    params: RouteFusionOnboardParams,
                ) => Promise<void>;
            },
        >;
        temporalTaskQueue: string;
        utilaSweepWalletAdminService: UtilaSweepWalletAdminService;
    }
    Index
    aiPriseClient: AiPriseClient

    Reads the business profile the operator pasted, to gate onboarding on it.

    customerApplicationService: Pick<
        CustomerApplicationService,
        "markFailed"
        | "markProvisioned"
        | "notifyApproved",
    >

    Marks a self-serve application FAILED when provisioning fails before its customer row, and tells its workspace once the customer activates.

    customerDashboardInviteAdminService: Pick<
        CustomerDashboardInviteAdminService,
        "create",
    >

    Writes the owner's dashboard invite and emails it.

    customerDashboardOrigin: string

    The customer dashboard's origin: the owner invite's link points there.

    customerDashboardWorkspaceAdminService: Pick<
        CustomerDashboardWorkspaceAdminService,
        "create",
    >

    Creates the customer's workspace when no applicant's workspace is named.

    customerService: CustomerService
    customerSlackBotChannelAdminService: CustomerSlackBotChannelAdminService
    customerSlackBotInstallationAdminService: CustomerSlackBotInstallationAdminService
    db: B2bDatabase

    Opens the transaction the customer and its grant share.

    hookdeckOutpostClient: HookdeckOutpostClient
    internalSlackChannelAdminService: InternalSlackChannelAdminService

    Reads the CUSTOMER_EVENTS channel each new customer is subscribed to.

    ledgerAccountService: LedgerAccountService

    Account writer + reader. The concrete LedgerAccountService extends LedgerAccountQueryService, so it provides both the search used for the idempotency check and the create used to provision the operating account.

    organizationService: OrganizationService
    programAdminService: Pick<ProgramAdminService, "grantIn" | "invalidateGrant">

    Grants the customer's RouteFusion programs inside the customer's insert.

    recurringFeeAdminService: RecurringFeeAdminService
    slackBotInstallationService: SlackBotInstallationService

    Reads the customer bot's install in CFX's own Slack workspace.

    temporalClient: TemporalWorkflowClient<
        {
            onboardRouteFusionOrganizationWorkflow: (
                params: RouteFusionOnboardParams,
            ) => Promise<void>;
        },
    >
    temporalTaskQueue: string
    utilaSweepWalletAdminService: UtilaSweepWalletAdminService