customer put

10 阅读1分钟
graph TD
    A[PUT /customer-registration] --> B{X-Channel == Salesforce?}
    B -- Yes --> C[邮政编码验证]
    B -- No --> D[前端更新流程]
    
    C --> E[从地址中提取市场信息]
    E --> F{市场验证}
    F -- DE/ES/FR/IT --> G[5位数字邮编检查]
    F -- CH/BE/AT --> H[4位数字邮编检查]
    F -- NL --> I[荷兰格式检查]
    F -- PT --> J[葡萄牙格式检查]
    F -- GB --> K[英国格式检查]
    G --> L{邮编无效?}
    H --> L
    I --> L
    J --> L
    K --> L
    L -- Yes --> M[错误: 无效邮编]
    L -- No --> N[Salesforce CRM 更新]
    
    N --> O{记录类型}
    O -- 轻量级潜在客户/兴趣 --> P[轻量级账户更新实现]
    O -- 完整B2C账户 --> Q[完整B2C账户更新]
    O -- 商业账户 --> R{有gigyaBPID?}
    R -- Yes --> S[CRM B2B账户更新]
    R -- No --> T[商业账户同步到AEP]
    O -- 商业联系人 --> U[更新商业联系人]
    O -- 兴趣记录 --> V[更新兴趣]
    O -- 其他 --> W[无效账户类型]
    
    P --> X{gigyaUid为空?}
    X -- Yes --> Y[轻量级账户注册]
    X -- No --> Z[获取账户令牌]
    Z --> AA[准备更新请求]
    AA --> AB[设置账户信息]
    AB --> AC{AEP数据集类型}
    AC -- 个人潜在客户 --> AD[B2C潜在客户请求]
    AC -- 商业潜在客户 --> AE[B2B潜在客户请求]
    AC -- 其他 --> AF[B2C账户请求]
    AD --> AG[流式摄入]
    AE --> AG
    AF --> AG
    
    Q --> AH[分散收集器]
    AH --> AI[准备CDC请求]
    AI --> AJ[设置账户信息]
    AH --> AK[获取客户交互]
    AK --> AL[准备AEP请求]
    AL --> AM[流式摄入]
    AH --> AN[获取电商访问令牌]
    AN --> AO[准备更新数据]
    AO --> AP[私人客户更新电商]
    
    S --> AQ[分散收集器]
    AQ --> AR{制裁标志?}
    AR -- Yes --> AS[通过BPID获取商业联系人]
    AS --> AT[并行处理每个联系人]
    AT --> AU[准备CDC请求]
    AU --> AV[设置账户信息]
    AR --> AW[准备更新组织数据]
    AW --> AX[更新组织子流程]
    AQ --> AY[准备B2B账户AEP]
    AY --> AZ[流式摄入]
    AQ --> BA[获取电商访问令牌]
    BA --> BB[准备B2B单位]
    BB --> BC[商业单位创建或更新电商]
    
    T --> BD{AEP B2B账户触发器?}
    BD -- Yes --> BE[准备B2B账户AEP]
    BE --> BF[流式摄入]
    BD -- No --> BG[日志: 无法同步B2B账户]
    
    U --> BH[分散收集器]
    BH --> BI[准备联系人请求]
    BI --> BJ[设置账户信息]
    BH --> BK[准备B2B联系人AEP]
    BK --> BL[流式摄入]
    BH --> BM[获取电商访问令牌]
    BM --> BN[准备B2B客户]
    BN --> BO[商业客户创建或更新电商]
    
    V --> BP{gigyaUid为空?}
    BP -- Yes --> BQ[轻量级账户注册]
    BP -- No --> BR[账户搜索]
    BR --> BS{有完整账户?}
    BS -- Yes --> BT[设置fullAccount = true]
    BS -- No --> BU[设置fullAccount = false]
    BU --> BV[获取注册令牌]
    BT --> BW[准备兴趣请求]
    BV --> BW
    BW --> BX[设置账户信息]
    BX --> BY[CDC事件请求]
    BY --> BZ[流式摄入]
    
    D --> CA{注册类型}
    CA -- 潜在客户 --> CB[新闻订阅RMS]
    CA -- 完整 --> CC[不在范围内]
    CA -- 其他 --> CD[无效账户类型]
    
    CB --> CE{令牌为空?}
    CE -- Yes --> CF[轻量级账户更新实现]
    CE -- No --> CG[检索用户信息]
    CG --> CH[获取CRM档案]
    CH --> CI[准备请求数据]
    CI --> CJ{内容偏好?}
    CJ -- Yes --> CK[分散收集器同步]
    CJ -- No --> CL[分散收集器同步]
    CK --> CM{订阅已更新?}
    CL --> CM
    CM -- Yes --> CN[异步CDC同步]
    CN --> CO[账户搜索]
    CO --> CP[客户CDC实现]
    CM -- No --> CQ[日志: 旅程已提交]
    CQ --> CR[响应数据]
    CN --> CR
    CO --> CR
    CP --> CR
    CR --> CS[返回成功响应]
    
    CF --> CT[设置邮箱变量]
    CT --> CU[尝试获取账户令牌]
    CU --> CV{gigyaUid为空?}
    CV -- Yes --> CW[同意载荷]
    CW --> CX[轻量级账户注册]
    CV -- No --> CY[轻量级账户更新]
    
    CY --> CZ[设置邮箱变量]
    CZ --> DA[获取账户令牌]
    DA --> DB{S-对象类型}
    DB -- 个人账户 --> DC[准备B2C账户请求]
    DB -- 其他 --> DD[准备潜在客户请求]
    DC --> DE[设置账户信息]
    DD --> DE
    DE --> DF[设置gigyaUid]
    DF --> DG{AEP数据集类型}
    DG -- 个人潜在客户 --> DH[B2C潜在客户请求]
    DG -- 商业潜在客户 --> DI[B2B潜在客户请求]
    DG -- 其他 --> DJ[B2C账户请求]
    DH --> DK[流式摄入]
    DI --> DK
    DJ --> DK
    DK --> DL[映射响应数据]