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 --> [*]