Data Types

This section consists of Database Things and fields description for every thing which is part of the template.

Introduction

To get to the Data section, click the database icon on the left side tabs in Bubble Editor.
Important: See Bubble manual information when working with data: https://manual.bubble.io/help-guides/working-with-data; https://manual.bubble.io/core-resources/data.

Data Types

Note: In case you have accidentally deleted a data type - no worries! Bubble lets you restore💪the deleted data type. Clicking on 'show deleted types' or 'show deleted fields' from the Data → Data types tab will reveal the deleted items, and a 'restore' button will appear next to each deleted entry. Simply click 'restore', to restore a field or data type.
💡
Tip: Aside from the below-listed data types and fields, Bubble creates these default fields visible in each data type: Creator, Modified Date, Created Date and Slug, except for the User data type. The User data type will have the following fields: email, Modified Date, Created Date and Slug. These fields' values can be used in workflows, conditional formatting, etc. To learn more, see the Bubble manual.

User

Bubble applications have a built-in User data type that acts like any type that it is created in database. For instance, you can modify a user, delete a user, list them in a repeating group, etc.
There are three types of users: Customer, Professional and admin. User object contains some entries that are shared between Customer and Professional users. They include notifications, personal details, etc. Admin users can add new categories and/or subcategories.
It comes with the following fields:
  • admin - yes / no - Specifies if this user is an admin.
  • Chats - List of Chats - Stores a list of chats related to this user.
  • Customer - Customer - Stores an object containing information about the customer account linked to this user.d.o.b.dateStores the user's date of birth.
  • messageNotifications - yes / no - Specifies if the user gets email notifications every time a user sends a message to another user.
  • name - text - Stores the user's name.
  • phoneNumber - text - Stores the user's phone number.
  • platformNotifications - yes / no - Specifies if the user gets email notifications about platform-related offers and new projects.
  • privacyNotifications - yes / no - Specifies if the user gets email notifications about privacy and security matters.
  • PRO - Professional - Stores an object containing information about the professional account linked to this user.
  • profilePicture - image - Stores the user's profile picture.
  • projectNotifications - yes / no - Specifies if the user gets email notifications about new projects and project-related reminders.
  • surname - text - Stores the user's surname.
  • TOSAcceptance - yes / no - Specifies if the user has accepted the TOS.
  • unsubscribedNewsletter - yes / no - Specifies if the user unsubscribed from the newsletter and offers.
Note: The data type has privacy rule applied. See the 💬 in database under Privacy section for details.

Schedule

This data type is used to set a frequency for a project. There is only the UI and database part set, so you will have to set up the logic (workflows) by yourself if needed.
It comes with the following fields:
  • Customer - Customer - Stores the customer related to this schedule.
  • Friday - List of dates - List of Friday days when the customer wants the project to be scheduled.
  • Monday - List of dates - List of Monday days when the customer wants the project to be scheduled.
  • Professional - Professional - Stores a professional related to this schedule.
  • Project - Project - Stores the project to which this schedule is related.
  • Saturday - List of dates - List of Saturday days when the customer wants the project to be scheduled.
  • Sunday - List of dates - List of Sunday days when the customer wants the project to be scheduled.
  • Thursday - List of dates - List of Thursday days when the customer wants the project to be scheduled.
  • Tuesday - List of dates - List of Tuesday days when the customer wants the project to be scheduled.
  • Wednesday - List of dates - List of Wednesday days when the customer wants the project to be scheduled.

Project

A project is a job created by a customer. On creation, the customer provides the basic info that forms the structure of the project. After the project is posted, its status becomes "open" and the customer and professionals are able to contact each other.
It comes with the following fields:
  • additionalInfo - text - Stores additional information and customer's notes about the project.
  • approvedDate - date - Stores the date when the professional accepted the job.
  • Chats - List of Chats - A list of chats related to this project.
  • completed - yes / no - Specifies if the project was completed.
  • Customer - Customer - Stores a customer that is the creator of this project.
  • deleted - yes / no - Specifies if this project was deleted. After deleting a project it is not actually deleted, but hidden from everywhere. You can access its details if needed.
  • duration - text - Stores the duration of this project.
  • frequency - text - Stores the frequency of this project.
  • Invoice - Invoice - Stores the invoice created for this project.
  • Location - Address - Stores the location where the project services are required.
  • proAcceptedJob - yes / no - Specifies if the selected professional accepted the job.
  • Professional - Professional - Stores the selected professional to do the job. The professional can then accept or reject the invitation.
  • projectImages - List of images - Stores a list of images that represent the project.
  • Review - Review - Stores a customer review that can be left after the job is completed.
  • Schedule - Schedule - Stores a schedule object representing the frequency of this project. The logics for that will need to be set if needed since only the UI and database is set for that.
  • startDate - date - Stores the date when this project is needed.
  • Status - Status - Stores the project's status.
  • typeOfService - text - Stores the type of service required in a text format.
  • TypeOfService2 - Subcategory - Stores the type of service required.
💡
Tip: When a professional is hired by the customer, an invitation is sent. The professional can either accept or reject the invitation. If accepted, the selected professional will be saved in the project's Professional database entry and the customer will have a brief time to dismiss him if needed.
Note: The data type has privacy rule applied. See the 💬 in database under Privacy section for details.

Message

This data type contains information about messages that customers and professionals can exchange.
It comes with the following fields:
  • Chat - Chat - Stores the chat to which this message is related.
  • seen - date - Stores the date when this message was read.
  • text - text - Stores the text body of this message.

Review

This data type contains details about the review. A review is feedback left by the customer to a professional that completed the project.
It comes with the following fields:
  • comment - text - Stores the text body of this review.
  • date - date - Stores the date when this review was created.
  • Professional - Professional - Stores the professional to which this review is related.
  • Project - Project - Stores the project to which this review is related.
  • Reviewer - Customer - Stores the creator of this review.
  • stars - number - Stores the star rating left of this review.
💡
Tip: Currently only the customer can write a review and there is no functionality for others to respond to it. A customer will be asked to provide feedback after he pays the professional but since it is not mandatory to do so, he can ignore this step.

Category

This data type contains all the project categories on the platform.
It comes with the following fields:
  • icon - image - Stores and icon that's representing the category.
  • mobileIcon - image - Stores and icon that's representing the category but is used only on smaller resolutions.
  • name - text - Stores the name of the category.
  • photo - image - Stores an image that is representing the category.
  • Subcategories - List of Subcategorys - Stores a list of subcategories related to this category.

Subcategory

This data type contains all the subcategories related to the existing categories on the platform.
It comes with the following fields:
  • Category - Category - Stores the category to which this subcategory is related.
  • CategoryList - List of Categorys - Stores all the categories to which this subcategory is related.
  • name - text - Stores the name of this subcategory.
  • photo - image - Stores a photo that is representing this subcategory.

Professional

A professional is a person who is hired by a customer to complete a project. This object's structure is complex and contains a lot of entries.
It comes with the following fields:
  • backgroundCheck - yes / no - Specifies if the professional went trough background check.
  • bankAccount - yes / no - Specifies if the professional has added a bank account.
  • businessDescription - text - Stores the description of the professional's business.
  • BusinessHour - BusinessHour - Stores the working days and hours of this professional.
  • completedJobs - number - Stores the number of jobs this professional has completed.country - text - Stores this professional's country.
  • currency - text - Stores this professional's currency.
  • Jobs - List of Projects - Stores a list of projects related to this professional.
  • Location - Address - Stores the address of this professional.
  • Notifications - List of Notifications - Stores a list of notifications related to this professional.
  • numberOfEmployees - number - Stores the number of employers this professional has.
  • photos - List of images - Stores a list of images related to this professional's work.
  • pricePerHour - number - Stores the price this professional takes per hour.
  • ProUser - User - Stores the user to which this professional object is related.
  • Reviews - List of Reviews - Stores a list of reviews related to this professional.
  • stars - number - Stores the total amount of stars this professional got trough reviews.stripeID - text - Stores this professional's stripe seller ID.
  • stripePaymentsID - List of texts - Stores a list with all the IDs of the payments this professional has received on stripe.
  • stripeStandardAccount - yes / no - Specifies if this professional linked an existing account of the standard type or created one inside the platform of the custom type.
  • stripeVerificationList - List of texts - Stores a list of missing verification information this user has to submit to stripe in order to make his seller account verified.
  • TypeOfServices - List of Subcategorys - Stores the type of services this professional provides.
  • yearFounded - date - Stores the date when this professional started offering his services.
💡
Tip: To be able to take part in a customer's project a professional will need to set up a "business" profile and create a Stripe account.
Note: The data type has privacy rule applied. See the 💬 in database under Privacy section for details.

Customer

Customer is the type of user who registers on the platform to post a project about a service needed.
It comes with the following fields:
  • cardIDs - List of texts - Stores a list of stripe IDs of the cards this user has added.
  • CustomerUser - User - Stores the user to which this customer object is related.
  • Location - Address - Stores the address of this customer.
  • Projects - List of Projects - Stores a list of projects this customer has created.
  • Reviews - List of Reviews - Stores a list of reviews this customer has provided.
  • stripeCustomerID - text - Stores this customer's stripe customer ID.
Note: Currently, saving a customer's card is hidden and to enable it you need to remove the condition ("Hide when Current date/time is not empty") from group "PaymentUnused" on customerpage. Then saving customer's card ID will be possible, but you have to add the workflows to use saved cards from scratch.

Chat

The chat is a conversation between a customer and a professional.
It comes with the following fields:
  • Messages - List of Messages - Stores a list of messages related to this chat.
  • Project - Project - Stores the project to which this chat is related.
  • Users - List of Users - Stores a list of users that are participating to this chat.
  • Viewed - List of Users - Stores a list of users that saw the new messages of this chat.

Fee/Rights

This data type contains constants related to admin panel restrictions and app fees.
It comes with the following fields:
  • feeAmmount - number - Stores the percent of fees the app takes from each payment transaction.
  • writeRights - yes / no - Specifies if the admin panel is locked. We have locked the demo version of the admin panel for security purposes. This field can either lock or unlock the admin panel's functionalities.

Invoice

An invoice is created by a professional after he completed a job.
It comes with the following fields:
  • amount - number - Stores the total amount of this invoice.
  • currency - text - Specifies the currency of this invoice.
  • Customer - Customer - Stores a customer to which this invoice is intended.
  • date - date - Stores the date when this invoice was created.
  • hours - number - Stores the number of hours the professional worked on the project to which this invoice is related.
  • Professional - Professional - Stores the professional that created this invoice.
  • Project - Project - Stores the project to which this invoice is related.
Tip: The professional reports the number of hours he worked on the project and the platform automatically calculates the total payment using the professional's pricePerHour. Also, the professional can select a currency different from the default one (from "Dropdown Currency" on the popup "InvoiceCreation"). If the platform owner does not need this feature, it can be hidden and the platform will work with a predefined currency.

Address

This data type contains information about user's location.
It comes with the following fields:
  • city - text - Stores the city.
  • country - text - Stores the country.
  • location - geographic address - Stores the full address in a geographic address format.
  • state - text - Stores the state.
  • street - text - Stores the street.
  • User - User - Stores the user to which this Address object is related.
  • zipCode - text - Stores the zip code.
Note: The data type has privacy rule applied. See the 💬 in database under Privacy section for details.

BusinessHour

This data type stores the working days and hours of a professional.
It comes with the following fields:
  • days - List of texts - Stores the list of days of the week this professional is working.
  • hours - List of texts - Stores a list of hours this professional is working for each working day.
  • Professional - Professional - Stores the professional to which this schedule is related.
  • timeFrom - text - Stores the time when this professional starts his job.
  • timeTo - text - Stores the time when this professional ends its job.

Notification

This template has an integrated notification system.
It comes with the following fields:
  • AcceptedProject - Project - Stores the project that was accepted.
  • FiredProject - Project - Stores the project from which the professional was fired.
  • HiredProject - Project - Stores the project to which the professional was hired.
  • InvoiceProject - Project - Stores the project for which an invoice was created.
  • Message - Message - Stores a message created by a user and meant for the Receiver of this notification.
  • PaymentProject - Project - Stores the project for which a payment was sent to the professional.
  • Professional - Professional - Stores the professional related to this notification.
  • Receiver - User - Stores the receiver of this notification.
  • RejectedProject - Project - Stores the project for which the professional has rejected the invitation.
  • System - SystemMessage - Stores a system message appropriate to this notification.
  • Viewed - yes / no - Specifies if this notification was seen by the receiver.
💡
Tip: Both customer and the professional receive in-app notifications regarding new messages, project updates, account&invoice related, etc. To turn on/off the notifications use the menu located in "AccountDetailsContainer" group on customerpage and professionalpage pages.

Status

Stores the existing statuses of the projects on the platform.
It comes with the following field:
  • statusName - text - Stores name of the status.

SystemMessage

This data type contains all the possible system messages for the platform's notifications.
It comes with the following fields:
  • id - number - Stores an ID of this system message.
  • message - text - Stores the text body of this system message.
  • title - text - Stores the title of this system message.

Embedded Notes in Bubble Editor

This template comes with explicit notes for Data types and their fields, Option sets and their fields, and Privacy rules, which will guide you through the modification process.
In order to preview a Note of any data type or field, click on the chat icon.
Image without caption