Product Pieces

icon picker
Client Ordering System


🥅 Intro & Goals

Yazi’s goal is to enable growing businesses, consultancies and agencies to be able to access consumer research in a self-service manner. Consumer data in Africa is currently hard to come by: Slow, expensive and under-representative. Yazi is changing that by using WhatsApp to access hard to access people digitally.

🙋‍♂️ Who’s it for?

Startups, SMBs & Enterprises in Africa - growing businesses that want to expand into new market segments
Resellers in Africa - Consultants, Product/UX agencies, Advertising/marketing agencies, VC - serving client or portfolio to get data on consumer segment
International companies - researching and expanding into Africa or researching the African consumer


✅ Objective
Be the fastest and widest reaching market research platform in Africa. Use both survey responses and other data sources as research acquisition channels
To enable teams to launch research campaigns faster and more self-service
Deliver 300 survey results back to client in 3 hour from ordering
Automated push of survey questions to survey respondents
Teams conducting their own research
There are no rows in this table

⁉️ What is it?

Login/signup - user logs in to access platform
Dashboard - View of all created survey campaigns and demo campaign
Create survey campaign - User creates new campaign
Form-builder - choose question type, add question text, define answer logic
Audience selection - off the shelf demographic attributes, behavioural/demographic screening questions
Payment - confirm and make payment
Results - see response figures and data dashboard (V2 Feature)

🗣 Terminology

Campaign - the name for a survey project for a user or client of Yazi. A campaign could be: A 15 question survey with 200 responses from 18-25 year old males
Survey respondent - the user or participant that completes surveys for income on WhatsApp


Google login
CTA in webflow takes user to webapp (
Description of what the new features or user stories will do
Want to access yazi platform
User problem
User value
Can access the yazi platform
Business, user, or technical assumptions
Not doing
Anything that is out of scope for this feature
Acceptance criteria
Must create an account
There are no rows in this table
Dashboard (home)
Can view demo campaign of the setting up process as well as the results you will get
User can add colleague or other user to their workspace by sharing access or inviting someone
Can see profile and settings
Profile changes
Create campaign
A user can create a new campaign by clicking the “new campaign” button in the top right of the dashboard.
Can select survey from template
User must give the campaign a name or title
User must set the objective for the campaign. This can be edited at any point in the future

📔 Form-builder - designing survey questions

User creates the survey to be sent to chosen respondents in WhatsApp. User specifies the question text, question type and conditional or skip logic
User can add a new question
User can edit the survey text
User can choose what type of question they’d like it to be
MCQ (Multiple Choice Question)
Multi-select MCQ
Open text
Voice note
User can add the answers to MCQ or multi-select MCQ or media questions
Users can edit the MCQ text
Users can add or subtract multiple choice options
Media (audio, pic, video) will have a plus icon in the box and allow the user to upload media to be sent
User can define conditional or skip logic for questions and answers. E.g. if answer “C” for Q9 then skip to Q11
User can comment on question and tag other people in workspace
User can duplicate question with logic, text, question type
User can delete full question
Another user in workspace can come and edit questions and create new questions
Display of all survey campaigns and demo campaign
Can see a quick view of everything available to them - all campaigns created, profile, demo campaign
User problem
User value
Easy to create questions and setups logic. Collaborative, purpose-built space for questions
Will work on questions with colleagues and friends on project
Not doing
Might not do commenting for V1
Acceptance criteria
Click next
There are no rows in this table

👩‍💻 Backend relationship

Assigns question key
Automatically create start and stop times
Question title
Answer logic - MCQ, Open text etc.
Transition/skip logic
Interpret survey as state machine through a JSON schema similar to:
"States": {
"<State Name>": {
"Name": "<State Name>",
"Type": "Message"|"SingleSelect"|"Multiselect"|"OpenText",
"Text" "<Question Text>",
"Options": {
"<Option Id>": "<Question Option Text>",
"TransitionFunctions" {...}

🤴 Choose audience

User must choose who they want to answer the survey. They can choose from off-the-shelf demographic attributes (income bracket, gender etc.) as well as add their own behavioural/demographic screener questions
Choosing off-the-shelf demographic/behavioural attributes
User can choose which attributes they’d like to specify by clicking the drop-down per attribute. The default setting is to select everything in that category
Additional behavioural screening questions
User can add up to 2 questions
Use must choose either: Number, Single or multi-select multiple choice
User must select the answers or number range that should screen out respondent from being able to do survey
User must choose the number of responses they want - how many qualified survey respondents should answer. The price estimate should reflect and change as the user adjusts the response amount.
User can save created respondent audience and give it a name
User can select audience from previous campaign

👩‍💻 Backend relationship

Pulls live number of how many respondents are available
Connects demographic groups in dropdowns for client user to choose from


Choosing proportion of demographics to respond

💳 Payment and order campaign

Can see a cost estimate for the survey campaign in payment section, based on:
Number questions
Number respondents needed
Audience specifications - more narrow = more expensive
Can make payment for campaign (payment integration)
Can get an invoice for the amount they owe according to their order

Be able to control

Be able to edit survey questions - when client launches survey then they can’t change it

After the build

⏱️ Backlog

Pasting questions from a table into answers
Make respondent # and country visible
Show user which field has missing text in question page and they are trying to click to next or summary page
Automatic saving
Send survey questions and audience selection data back to the Frontend
Add yes/no question
Send to your own audience
Add question routing logic for the previous question
Adding images and regexmax rules in survey
Proportions of audience
Being able to paste a table list of questions into answers and have them past into separate answers
Open text tagging system
Show how many people are in the demographic segments when selecting the audience

1 Sep | Updates

Business email in signup
Age in pricing
Job level and education cards less wide
Move audience section over to right
Screenshot 2022-09-01 at 17.53.35.png
Question number ordering wrong
Screenshot 2022-09-01 at 17.55.05.png
→ Add ordering numbers in Retool (Tim)

Question type wrong
Screenshot 2022-09-01 at 17.59.54.png

To check: Cam says that MCQ answers and Other answers being stored in same column now
Cam going to check
Filter going weird
Screenshot 2022-09-01 at 18.01.50.png

Meeting 2 sep

Shahil work on the get request for the draft questions being sent through
Age - cam to change age formula with 5 categories
Cam to share code with Shahil → Shahil look through code
Can organise a knowledge transfer call if needed
Specific focus on pricing
Make job level and education cards wider → Tim to check with Aletta
Launch webhook in Zapier
Move audience section over to right
Screenshot 2022-09-01 at 17.53.35.png

Data dasboard
Cam check why bar graphs going so thin
Cam run-through all filters to check everything working


"campaignId": "55d0c0ca-8211-44f3-967b-f156ea7f3104",
Change ID

2 Dec | Bugs/changes

Click on draft campaigns - should be able to click on whole box
0 in children
Height of bar graph answers when filters added - way too thin
Spaces/paragraphs in questions - not showing in JSON.
Move the country and respondents to left
Drag answers up and down to switch their positions in an MCQ - move answer in position 3 to position 1
Be able to upload answers into DB and reflect in webapp - Flatfile or something
Remove 1 day turnaround in dashboard
Multi-select formula incorrect: It calculates option/total mentioned options as opposed to option/total response for question
Drop the summary cards
Screenshot 2022-12-02 at 14.13.04.png
Click for campaign stops working - have to refresh for it to work
Screenshot 2022-12-02 at 14.15.32.png


How to treat other question
How to visualise multi-select
Add free tier - 30 free responses
Screenshot 2022-06-22 at 09.56.14.png
Screenshot 2022-06-22 at 09.58.37.png
Screenshot 2022-06-22 at 09.59.06.png

31 Jane

Add race to audience
Currency for different countries
Privacy policy

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
) instead.