Developer documentation v1.x

Documentation

WhatsApp Bot - General Concepts

stateDiagram-v2
    [*] --> LanguageChoice: New User
    [*] --> InitMessage: Returning User
    
    LanguageChoice --> AwaitingLanguageConfirmation: Select language
    AwaitingLanguageConfirmation --> InitMessage: Confirm
    AwaitingLanguageConfirmation --> LanguageChoice: Change
    
    InitMessage --> AwaitingDoctorSpecialty: Option 1
    InitMessage --> AwaitingLabOption: Option 2
    InitMessage --> AwaitingPharmacyOption: Option 3
    InitMessage --> AwaitingProductOption: Option 4
    InitMessage --> AwaitingTutorialOption: Option 5
    InitMessage --> Completed: Option 6 (Customer Service)
    InitMessage --> AwaitingPatientInfo: Option 7/8
    
    AwaitingDoctorSpecialty --> Completed: Doctor found/not found
    
    AwaitingLabOption --> Completed: Quick test selected
    AwaitingLabOption --> AwaitingLabChoiceType: Other option
    AwaitingLabChoiceType --> AwaitingCustomLabTest: Describe
    AwaitingLabChoiceType --> AwaitingFirstFileUpload: Upload
    AwaitingCustomLabTest --> AwaitingCustomLabTestName: New user
    AwaitingCustomLabTest --> Completed: Existing user
    AwaitingCustomLabTestName --> Completed: Order created
    
    AwaitingPharmacyOption --> Completed: Quick product selected
    AwaitingPharmacyOption --> AwaitingPharmacyChoiceType: Other option
    AwaitingPharmacyChoiceType --> AwaitingCustomPharmacyProduct: Describe
    AwaitingPharmacyChoiceType --> AwaitingFirstFileUpload: Upload
    AwaitingCustomPharmacyProduct --> AwaitingCustomPharmacyProductName: New user
    AwaitingCustomPharmacyProduct --> Completed: Existing user
    AwaitingCustomPharmacyProductName --> Completed: Order created
    
    AwaitingFirstFileUpload --> AwaitingUserChoice: File uploaded
    AwaitingUserChoice --> AwaitingSecondFileUpload: Yes
    AwaitingUserChoice --> AwaitingNotesConfirmation: No
    AwaitingSecondFileUpload --> AwaitingAdditionalFiles: File uploaded
    AwaitingAdditionalFiles --> AwaitingNotesConfirmation: Timeout/Max files
    AwaitingNotesConfirmation --> AwaitingNotesInput: Yes
    AwaitingNotesConfirmation --> AwaitingFinalConfirmation: No
    AwaitingNotesInput --> AwaitingFinalConfirmation: Notes entered
    AwaitingFinalConfirmation --> Completed: Confirm
    AwaitingFinalConfirmation --> InitMessage: Cancel
    
    AwaitingProductOption --> Completed: Product selected
    AwaitingTutorialOption --> Completed: Tip selected
    AwaitingPatientInfo --> Completed: Results found/not found
    
    Completed --> [*]