Skip to content

Onboard a new company to Cruits

  1. Sync Account(company) to teamerr
task prod.manage -- load_company_from_sf --account 001JyREF
  1. Sync Projects to teamerr
task prod.manage -- load_account_projects_from_sf --account 001JyREF
  1. Sync price agreements for company to teamerr
task prod.manage -- load_price_agreement_for_company --account 001Jy00

If CAO functions are not present, you will see a warning in the logs. In that case, load CAO functions first:

task prod.manage -- load_cao_function_for_cao_from_bc --cao cao.pk

If CAO not present, load it by sf ref:

task prod.manage -- load_cao_from_sf --ref cao_salesforce_ref

Flow diagram

flowchart TD
    Start([Start onboarding]) --> Step1

    subgraph Step1["1. Sync Company"]
        S1_cmd["load_company_from_sf<br/>--account SF_ID"]
        S1_sf[("Salesforce<br/>Account")]
        S1_db[("Cruits DB<br/>Company")]
        S1_cmd -- "SOQL query" --> S1_sf
        S1_sf -- "Account fields" --> S1_cmd
        S1_cmd -- "create / update" --> S1_db
    end

    Step1 --> Step2

    subgraph Step2["2. Sync Projects"]
        S2_cmd["load_account_projects_from_sf<br/>--account SF_ID"]
        S2_sf[("Salesforce<br/>msf__Project__c")]
        S2_db[("Cruits DB<br/>LocationProject<br/>JobLocation")]
        S2_cmd -- "SOQL query" --> S2_sf
        S2_sf -- "Project records" --> S2_cmd
        S2_cmd -- "create Location +<br/>LocationProject" --> S2_db
    end

    Step2 --> CheckCAO{CAO exists<br/>in Cruits?}

    CheckCAO -- Yes --> CheckFunctions{CAO functions<br/>exist?}
    CheckCAO -- "No — load from SF" --> LoadCAO

    subgraph LoadCAO["Load CAO"]
        LC_cmd["load_cao_from_sf<br/>--ref cao_salesforce_ref"]
        LC_sf[("Salesforce<br/>msf__Collective_Agreement__c")]
        LC_db[("Cruits DB<br/>CollectiveAgreement")]
        LC_cmd -- "SOQL query" --> LC_sf
        LC_sf -- "CAO record" --> LC_cmd
        LC_cmd -- "create / update" --> LC_db
    end

    LoadCAO --> CheckFunctions

    CheckFunctions -- Yes --> Done
    CheckFunctions -- "No — load from BC" --> LoadFunctions

    subgraph LoadFunctions["Load CAO Functions"]
        LF_cmd["load_cao_function_for_cao_from_bc<br/>--cao cao.pk"]
        LF_bc_cao[("Business Central<br/>collectiveAgreements")]
        LF_bc_wt[("Business Central<br/>wageTables")]
        LF_bc_fn[("Business Central<br/>wageTableFunctions")]
        LF_db[("Cruits DB<br/>JobPosition")]
        LF_cmd -- "get CAO number" --> LF_bc_cao
        LF_cmd -- "get wage tables<br/>by cao_code" --> LF_bc_wt
        LF_cmd -- "get functions<br/>filtered by wage tables" --> LF_bc_fn
        LF_bc_fn -- "function records" --> LF_cmd
        LF_cmd -- "create JobPosition<br/>per function" --> LF_db
    end

    LoadFunctions --> RetryProjects["Re-run step 2<br/>to link functions"]
    RetryProjects --> Done([Done])

    style S1_sf fill:#4a90d9,color:#fff
    style S2_sf fill:#4a90d9,color:#fff
    style LC_sf fill:#4a90d9,color:#fff
    style LF_bc_cao fill:#e8833a,color:#fff
    style LF_bc_wt fill:#e8833a,color:#fff
    style LF_bc_fn fill:#e8833a,color:#fff
    style S1_db fill:#5cb85c,color:#fff
    style S2_db fill:#5cb85c,color:#fff
    style LC_db fill:#5cb85c,color:#fff
    style LF_db fill:#5cb85c,color:#fff