Database Design Documentation
Printer friendly

Designing your Ragic applications

  • 1. Basic Form Design
    1. 1.1. Form Pages and Listing Pages
      1. 1.1.1. Mobile App Layout Settings
    2. 1.2. Creating a Ragic Sheet
      1. 1.3. Field Types
        1. 1.3.1. Auto Generated Field Values
        2. 1.3.2. Cascaded Selections
      2. 1.4. Field Attributes
        1. 1.4.1. Default Values
        2. 1.4.2. Fields Formatting
        3. 1.4.3. Additional Field Settings
      3. 1.5. Field Descriptions
        1. 1.6. Subtables
          1. 1.7. Tuning the Layout of Your Forms and Tabs
            1. 1.7.1. Manage Tabs and Sheets
            2. 1.7.2. Add Shortcuts Under Tabs
            3. 1.7.3. Insert Image in Your Forms
          2. 1.8. Formulas
            1. 1.8.1. Approval Formula
          3. 1.9. Approval Flow Configuration
            1. 1.10. Sheet and Field Version History
            2. 2. Users Management
              1. 2.1. Internal Users
                1. 2.1.1. User Card
              2. 2.2. Access Rights
                1. 2.3. User Groups
                  1. 2.4. Assigning Entries
                    1. 2.5. Entry Review
                      1. 2.6. External Users
                        1. 2.7. Guest Users: Temporary Log In Without Signing Up
                          1. 2.8. Feature Access Settings
                          2. 3. Account Setup
                            1. 3.1. Customizing Ragic for Your Company (Company Settings)
                              1. 3.2. Account Billing
                                1. 3.3. Backup and Restore
                                  1. 3.4. Recent Changes
                                    1. 3.5. Job Schedules
                                      1. 3.6. DB Maintenance
                                        1. 3.7. File Manager
                                          1. 3.8. Global Constant
                                            1. 3.9. Notifications
                                              1. 3.10. UI Translations
                                                1. 3.11. Customizing Your Database Home
                                                  1. 3.11.1. Tasks
                                                  2. 3.11.2. Event Calendar
                                                2. 3.12. Recycle Bin
                                                3. 4. Searching
                                                  1. 4.1. Views - Saving Frequent Searches
                                                    1. 4.2. Customizing the Left Sidebar
                                                    2. 5. Advanced Form Design
                                                      1. 5.1. Linking Sheets Together
                                                        1. 5.1.1. Link and Load
                                                        2. 5.1.2. Dynamic Filtering
                                                        3. 5.1.3. Multiple Versions
                                                        4. 5.1.4. New Sheet From Subtable
                                                        5. 5.1.5. Show References From Existing Sheets
                                                        6. 5.1.6. Link Fields From Parent Sheets
                                                      2. 5.2. Custom Action Buttons
                                                        1. 5.2.1. Convert Records Button
                                                        2. 5.2.2. Update Values
                                                        3. 5.2.3. Update Value on Another Sheet
                                                        4. 5.2.4. Send Custom E-mail
                                                        5. 5.2.5. Combine Buttons
                                                        6. 5.2.6. Add Frequently Used Tools as Custom Buttons
                                                        7. 5.2.7. Add Action Buttons Into Fields
                                                      3. 5.3. Form Settings
                                                        1. 5.3.1. Validation
                                                        2. 5.3.2. Conditional Formatting
                                                        3. 5.3.3. Reminders
                                                        4. 5.3.4. Processing Payments
                                                        5. 5.3.5. Auto Save
                                                        6. 5.3.6. Set Custom Save Message
                                                        7. 5.3.7. Freeze Rows or Columns
                                                        8. 5.3.8. Form Deletion Policy
                                                        9. 5.3.9. Sheet Sections
                                                        10. 5.3.10. Widgets
                                                        11. 5.3.11. Setting the title field for your sheet
                                                    3. 6. Moving Your Data In and Out of Ragic
                                                      1. 6.1. Importing and Exporting
                                                        1. 6.1.1. Mail Merge (Export as Word/Excel)
                                                        2. 6.1.2. Publish to the Web (Data Feed)
                                                        3. 6.1.3. Periodic Import from URL
                                                        4. 6.1.4. Schedule Report
                                                      2. 6.2. Embedding on Your Website
                                                        1. 6.3. Calendar Sync
                                                          1. 6.4. Integrating Ragic With External Applications
                                                            1. 6.4.1. Zapier Integration
                                                            2. 6.4.2. Make (Formerly Integromat) Integration
                                                        2. 7. Reports
                                                          1. 7.1. Visualization Reports
                                                            1. 7.1.1. Line Graph
                                                            2. 7.1.2. Pie Chart
                                                            3. 7.1.3. Gantt Chart
                                                            4. 7.1.4. Calendar Report
                                                            5. 7.1.5. Address Mapping
                                                            6. 7.1.6. Dashboard Report
                                                          2. 7.2. Interactive Reports
                                                            1. 7.2.1. Reservation System
                                                            2. 7.2.2. Kanban Board
                                                            3. 7.2.3. To Do List
                                                          3. 7.3. Analytical Reports
                                                            1. 7.3.1. Ranking Report
                                                            2. 7.3.2. Pivot Table
                                                          4. 7.4. Printing Reports
                                                            1. 7.4.1. Grouping Report
                                                            2. 7.4.2. Label Maker
                                                          5. 7.5. System Reports
                                                            1. 7.5.1. User Status Report
                                                            2. 7.5.2. Approval Report
                                                        3. 9. Customizations - For Developers
                                                          1. 9.1. RESTful HTTP API
                                                            1. 9.2. Javascript Workflow Engine
                                                              1. 9.3. Workflow Generator
                                                              2. 10. On-premises Installation (NAS)
                                                              3.  

                                                                1.1    Form Pages and Listing Pages

                                                                Listing Pages and Form Pages are the unique advantages of Ragic compared to other spreadsheet software, and they are very important concepts in usage.

                                                                Listing Pages:Provides a summary overview of all data in the sheet.

                                                                Form Pages:Displays detailed information of a single data/record.

                                                                The Listing Page and the Form Page are two sides of one sheet. Adding data on either side will synchronize to the other side. When entering the sheet, you will first see the Listing Page. Clicking on a record will lead you to the Form Page for detailed information.

                                                                In the example below, when you enter the "Sales Order" sheet, it will lead you to the Listing Page. From there, you can browse multiple sales orders. Clicking on one of the records will take you to the Form Page for detailed information.

                                                                Designing the Form Page

                                                                When modifying sheet design, it will start from the Form Page. You can create fields under the Form Page design mode.

                                                                There must be at least two independent fields to save the design.

                                                                You will be able to create Subtable fields only after the independent fields are created.

                                                                Designing the Listing Page

                                                                When creating the sheet, there is usually no need to separately design the Listing Page. When you save the Form Page, the Listing Page will be automatically generated, arranging all fields from the Form Page horizontally in the Listing Page format. Please do not add fields outside of the first row.

                                                                To access the Listing Page design mode, you can click on "Change Design" on the Listing Page.

                                                                While in the Form Page design mode, you can click the arrow at the top-right corner to access the Listing Page design mode.

                                                                To explore more detail about creating your own Ragic Sheet, please head here.

                                                                Listing Page Field Picker

                                                                In Listing Page design mode, you can use the Listing Page Field Picker to decide which fields will appear on the Listing Page and their order. If there are numerous fields, use the filter tool at the top to find the desired fields.

                                                                "Gray-background fields" within the Listing Page Field Picker are automatically generated by the system. You can also add them to the Listing Page if needed.

                                                                Updating Field Names on the Listing Page

                                                                When modifying field names on the Form Page that also exist on the Listing Page, after saving, the system will ask you whether to sync the names of the fields on the Listing Page.

                                                                Note: If you choose not to update the names of these fields, the system will not display the message when you modify the names of the same fields next time.

                                                                Video tutorial

                                                                To get clearer concepts of Listing Pages and Form Pages, you can refer to the following tutorial video.

                                                                1.1.1    Mobile App Layout Settings

                                                                On the web interface, you can modify the layout and field order of both the Listing and Form Pages on the Ragic mobile app.

                                                                Modify the layout of the Listing Page

                                                                To modify the layout of the Listing Page on the Ragic mobile app, go to the Listing Page > Change Design > Form Tools > Mobile app layout setting.

                                                                After clicking on Mobile app layout setting, you will see two sections. In the upper part, You can select six fields and place them in corresponding positions. The bottom part shows the preview of your current layout.

                                                                Remember to save your settings before exiting the design mode.

                                                                The circle on the left will only display the first letter of the referenced field value. If there is an image field on your sheet, you can place it here to display its thumbnail.

                                                                After saving, you will see the configured layout in the app.

                                                                Modify the layout of the Form Page

                                                                The Ragic mobile app's Form Page displays fields vertically. By default, it follows the sequence of fields in the "web interface" from left to right and then from top to bottom.

                                                                To change the order of fields, go to the Form Page > Change Design > Form Tools > Mobile app layout setting.

                                                                You can rearrange the order of both independent field and Field Description through the arrow button on the right side. The positions of Subtables cannot be changed and will remain at the bottom of the Form Page.

                                                                You can also restore to default layout.

                                                                1.2    Creating a Ragic Sheet

                                                                There are four ways to create a new sheet:

                                                                1. Creating a Ragic sheet from scratch, please follow step 1 to 5.

                                                                2. Installing Templates, such as Customer Relationship Management, Project Management, Order Management, Procurement, Inventory, etc. Most templates include multiple sheets with established linking relationships, providing a complete design for certain applications.

                                                                3. Applying Quick Templates, which are independent sheets with relatively basic structure.

                                                                4. Importing existing spreadsheet to generate Ragic sheets.

                                                                We strongly recommend new users to create a sheet from scratch to acquire basic knowledge for future adjustments.

                                                                The Ragic database consists of three levels: Tab, used for classifying sheets; Sheet, used for storing records; and Record, which is composed of multiple fields.

                                                                Step 1. Creating a tab

                                                                First, click the "+" on the upper-right of the page.

                                                                Then, click the "+" next to the tab to add a new one.

                                                                If you want to add a new sheet to an existing tab, you can skip this step.

                                                                Step 2. Adding a new sheet

                                                                Choose the tab where you want to add a new sheet, then name your sheet under the "Design New Sheet" option.

                                                                Next, click "Create", and it will take you to Form Page design mode.

                                                                Step 3. Creating fields

                                                                In the Form Page design mode, start by typing in the field names that you would like to create. Each independent field takes up two columns: the left column is for the "field name" ("field header"), and the right column is for the "field value". When adding new fields, place them in empty spaces and arrange them vertically.

                                                                You can also right-click on an empty column to add a new field or Field Description.

                                                                You can select the Field Types for different purposes. For example, if the field value is a category, you can choose Selection or Multiple Select. There are various Field Types available, including Date, Number, Money, etc. For all supported Field Types, please refer to this section.

                                                                You can also quickly create independent fields and Field Descriptions by Copying (right-click and select "Copy", or Ctrl+C). It duplicates not only the field name but also all the "field attributes", including the Field Type, Formula, Style, etc.

                                                                After creating fields, you can adjust them by clicking on the field header and modifying in the field settings on the left sidebar.

                                                                When you want to delete a field, click on the field header, then press the Spacebar, Delete key, or Backspace key.

                                                                Note: If the field is referenced by other sheets, deletion will be prohibited. Please refer to "the reasons for not being able to delete specific sheets or fields" for more information.

                                                                Step 4. Adjusting field width and height

                                                                You can adjust the height and width of rows or columns by dragging the borders, just similar to Excel.

                                                                After completing the design, click "Save" and then exit the design mode to start using your sheet!

                                                                Step 5. Adjusting displayed fields in the Listing Page

                                                                Click the arrow at the top left of the Form Page to return to the Listing Page, where you will see the created fields.

                                                                Click on "Change Design" to access the Listing Page design mode. Just as on the Form Page, you can drag the borders to adjust the height and width of the fields.

                                                                You can use the Listing Page Field Picker to rearrange the displayed fields. For more details on Listing Page settings, please refer here.

                                                                Remember to save design before exiting.

                                                                Video Tutorial

                                                                For a clearer demonstration, you can refer to the following tutorial video.

                                                                Quick Templates

                                                                When you create a new sheet based on the above steps, you will see the Quick Templates on the right side.

                                                                You can click on each template to preview the design.

                                                                There is a "Categories" menu to help you quickly find suitable templates.

                                                                After applying the template, you can still adjust the design according to your needs, such as adding, deleting, or moving fields.

                                                                You can also access the Quick Templates from the Form Tools.

                                                                Install Templates

                                                                When creating a new sheet, you can select the Install Template. After clicking "Create", you can install several pre-designed templates, such as Customer Relationship Management, Sales Order Management, Purchasing, Inventory, etc.

                                                                Choose the category from the left sidebar, and clicking on a template will display its description. Select the one you need and click "Install" (if the template has already been installed, it will display "Update").

                                                                For instructions on using the templates, please refer to this page.

                                                                There are two other ways to access Install Templates:

                                                                1. From the hamburger menu in the top left corner.

                                                                2. From the personal homepage in the top right corner.

                                                                For instructions on modifying template designs, please refer to this article.

                                                                Creating a new sheet by importing your data

                                                                Please refer to this section for detailed instructions.

                                                                Entering or importing your data

                                                                After completing the sheet design, the next step is to add new entries.

                                                                If you already have data in a spreadsheet, you can also import your data into the sheet.

                                                                Deleting a sheet or tab

                                                                To delete a sheet or tab, hover your cursor over the sheet or tab you want to delete then right-click. Select "Delete" from the menu.

                                                                Note: If the sheet contains referenced fields from other sheets, deletion will be prohibited. Please refer to "the reasons for not being able to delete specific sheets or fields" for more information.

                                                                If you accidentally delete a sheet or tab and want to recover it, please check the Recycle Bin.

                                                                1.3    Field Types

                                                                Ragic supports different field types that can be specified from Design Mode while designing a sheet. The default field type is Free Text, which allows the user to enter content without restrictions, but Ragic will try to determine what field type you need when you enter a field name. While this works well in most cases, the application will generally work better if you manually select the correct field type. The Field Type can be set from the left sidebar, under the Basic tab in Design Mode.

                                                                We will explain some of the field types available in Ragic below:

                                                                Free Text

                                                                The default field type. Users can enter whatever they want under this field, and there are no length restrictions for text input.

                                                                Selection

                                                                Users select a value from the dropdown menu of values previously entered into the Choices box while in Design Mode during sheet creation.

                                                                When there are many choices to choose from, this field can also work as a text filter, displaying available options as the user types. It is also possible to set a value as the default value.

                                                                If you need to create subcategories or display results connected to a previous selection field, Ragic allows you to set cascaded selections.

                                                                Multiple Select

                                                                Users select multiple values from the dropdown menu of values previously entered into the Choices box while in Design Mode during sheet creation.

                                                                Checkbox

                                                                This field type works similarly to the Selection field but displays options with icons rather than option names.

                                                                By default, there will be two options: Yes and No.

                                                                To sort the values in the checkbox field on the Listing Page, you can include their sorting order within parentheses ( ). This will number the icons as a prefix next to the icon name. The text in ( ) will only be displayed in Design Mode.

                                                                If you would like to add icons aside from the default grey and green checkmarks, please refer to the following table:

                                                                Options Icon
                                                                Yes
                                                                No
                                                                X
                                                                Important
                                                                Star
                                                                Green
                                                                Yellow
                                                                Red
                                                                Blue
                                                                Black
                                                                White
                                                                Toggle-On
                                                                Toggle-Off
                                                                Thumbs-Up
                                                                Thumbs-Down
                                                                Lock
                                                                Unlock
                                                                Plus
                                                                Minus
                                                                Smile
                                                                Meh
                                                                Frown
                                                                Circle
                                                                Dot-Circle

                                                                Select from other Sheet

                                                                Users can select values that are referenced from another sheet when entering data into this field. You can select the sheet and the field to be linked from Design Mode, but please note that the values in the linked source field must be unique.

                                                                The following field types are blocked from being selected as a link source:

                                                                User type fields: Select user, Select group, Reviewer fields.

                                                                Selection type fields: Selection, Multiple select, Checkbox, Linked fields.

                                                                Numeric type fields: Numeric, Money, Percentage, Exchange rate, Statistics fields.

                                                                If you need to load other values when selecting a value from another sheet, you can use Linking and Loading Fields instead.

                                                                Clicking on the dropdown menu will pop out a configuration panel that displays detailed information on the referenced sheet. For example, in the "Sales" sheet below, the Customer field type is set to Select from other Sheet. By clicking on it, users will be able to choose customer data from the source sheet (the "Customer" sheet) when completing the pending order.

                                                                The Select from other Sheet field can also work like a text filter that displays available options in the source sheet as you type values into it.

                                                                Multiple select

                                                                You can also configure Select from other sheet field as Multiple select.

                                                                In the below example, the Members field (a Select from other sheet field) in the Project Report sheet is linked to the Employee Management sheet and is set as multiple select. With this configuration, the Members field will show a drop-down menu that allows multiple selections.

                                                                Note: If the multiple select option is checked, the linked field will no longer support loaded field configuration.

                                                                Also, if the corresponding loaded fields are already set for the linked field, the setting will be automatically canceled once the multiple select option is checked, but the original field values will not be affected.

                                                                We currently limit the number of selections to 2000. If the number of records to select from the source sheet exceeds 2000, only the first 2000 records will be included in the selection list. If you need to include over 2000 selections, please contact support@ragic.com and briefly describe your requirement so we’ll be able to evaluate the plausibility to adjust the limit.

                                                                File Upload

                                                                To upload a file, you can find and select it from your computer or drag and drop it into the field.

                                                                While Ragic has no restrictions on what type of files can be uploaded, if you would like to restrict user uploads, just type the acceptable filename extensions into the Filename Extension Filter. The size limit for a single upload is 1GB. If accepting more than a single filename extension, please use a comma (,) to separate them.

                                                                If you upload an audio or video file, Ragic will automatically display a media player for streaming supported files.

                                                                Audio streaming supports .mp3 and .ogg files.

                                                                Video streaming supports .mp4, .ogv, and .webm files.

                                                                While integrated media streaming is provided, the uploaded files can still be downloaded by double-clicking on the upload field.

                                                                If you'd like to upload files to multiple existing records, you can use the Mass File Upload feature.

                                                                Disable downloading Microsoft Office Files

                                                                When this option is selected, your users will only be able to preview Microsoft Office Files on Ragic.

                                                                Multi-files upload

                                                                To upload multiple files to one field, you can check this option.

                                                                You can find and select the files from your computer or drag and drop them into the field. To download all of the uploaded files, please click on the download icon.

                                                                Limit File Size

                                                                You can set the maximum size of each file, the maximum size limit currently supported is 1 GB.

                                                                Image Upload

                                                                To upload an image, you can find and select it from your computer or drag and drop it into the field. It will then be displayed as a thumbnail, and users can view and download the image in a lightbox image gallery by clicking on the thumbnail.

                                                                If you'd like to upload images to multiple existing records, you can use the Mass File Upload feature.

                                                                When you upload an image to an Image Upload field, by default, the system will maintain the original field width but will slightly expand the field height to avoid distorting the image. This will also cause the height of other fields on the same row to expand.

                                                                If you don't want the height of other fields on the same row to be affected, you can configure advanced settings under Design Mode. There are two options for you: "Stretch/shrink to fit cell" and "Fix image max size".

                                                                (1) Stretch / shrink to fit cell

                                                                The image will be automatically resized to fit the cell, therefore the height of other fields on the same row will not expand.

                                                                (2) Fix image max size

                                                                The image will be displayed in its actual aspect ratio regardless of the cell borders. If you do not set the "max width" or "max height", the image height will be 120 px.

                                                                In this mode, the field height in the same row will not expand, but the cells below the field may be covered by the image. Therefore, you will need to adjust the layout to avoid this.

                                                                Please note that "Stretch/shrink to fit cell" and "Fix image max size" work in different mechanisms and that errors might occur if you check both options in the same image upload field.

                                                                Other Advance Setting

                                                                If you do not choose to "stretch/shrink to fit cell", the max height of the thumbnail will be 120 px, and you can fill in the "Max Height" and "Max" to resize the thumbnail.

                                                                If you check the "Hide Field Header" box, the field header will be hidden and the image will align to the upper-left corner of the header's original position.

                                                                Multi-images upload

                                                                To upload multiple images to one field, you can check this option.

                                                                You can find and select the images from your computer or drag and drop it into the field as well.

                                                                Limit File Size

                                                                You can set the maximum size of each file, the maximum size limit currently supported is 1 GB.

                                                                Select User

                                                                Choose from a preset list of account users.

                                                                It's also possible to specify a certain user group that this user can be selected from.

                                                                If you choose Set selected user as entry owner, the person that is chosen as the value for this entry will have the same Access rights as the person who created the entry. Access rights give users permission to access or modify sheets.

                                                                Please view this document on Assigning an entry to a user for more information.

                                                                Also, when you import values to the select user field, the system will automatically match the users if the values you have imported completely match the emails or the names of the users in your database.

                                                                Select User Field is linked to the system's users sheet, so you can apply dynamic filtering and link & load sync to it.

                                                                Multiple Select

                                                                If you enable Multiple select in Design Mode

                                                                You will be able to Choose Group. When checking a group, the system will select all of the users under the group. And if you cancel it, the system will uncheck all of the users under the group as well.

                                                                If you wish to set multiple default values, please refer to this document.

                                                                Select Group

                                                                Lists the groups from this account to choose from. If you choose Set selected group as entry owner, all users in the selected group will have the same access rights as the person who created this entry.

                                                                If you wish to set multiple default values, please refer to this document.

                                                                Date

                                                                Specifies that the selected field is a date. A Date Picker will appear automatically when the user clicks on the field. You can also choose a date format from the formatting options listed under Format Type in Design Mode.

                                                                Note: If you also have time formatting applied, the Date Picker will allow you to set both options.

                                                                Display Using Browser’s Time Zone

                                                                Ragic's default date field is a fixed time. If the field value is 9/15 00:00, the field value would be the same no matter which time zone you are in.

                                                                When selecting "Display Using Browser’s Time Zone", the field value will be different depending on the users' browser time zone. If the user located in the UTC time zone enters "9/15 00:00", this field value will display as "9/15 08:00" for the user in the UTC+8 time zone or "9/14 20:00" for users in the UTC-4 time zone.

                                                                With this option checked, users located in different time zone won't need to calculate the time differences and will present a more accurate time sorting.

                                                                Note:

                                                                1. Without enabling "Display Using Browser’s Time Zone", the time saved in the database won't belong to any time zone. If you enable this setting afterward, the field value will be regarded as UTC+0 time. For instance, if you are located in the UTC+8 time zone and entered the field value 2022/06/10 00:00 when "Display Using Browser's Time Zone" is not enabled, the field value will become 2022/06/10 08:00 if you enable this setting afterward.

                                                                2. When enabling "Display Using Browser’s Time Zone", the field value will be saved as UTC time and display different values depending on the users' browser time zone. If this setting is disabled afterward, the field value will be displayed in the UTC time zone.

                                                                3. "Display Using Browser’s Time Zone" is not supported on reports yet, so the date and time values will still display using the database's UTC time.

                                                                Display as countdown

                                                                When selecting "Display as countdown", the filed value will be displayed using countdown.

                                                                Clock In

                                                                Check the box "Clock In" will give users the option to clock in the present time when editing the field value.

                                                                Formulas can be applied to the date field in order to calculate dates.

                                                                Another common usage for the date field is to create a timestamp. This can be done by assigning a default value to the date field.

                                                                Date fields can also help you remember dates by setting a reminder or syncing with your favorite calendar application.

                                                                Recurring Date

                                                                You can use the date value of this field to set a cyclic Reminder on the Form setting to automatically send birthday e-mail to customers on a specific day every year, or payment request to clients every month.

                                                                The recurring Cycle includes Yearly, Monthly, and Weekly.

                                                                If you choose Yearly cycle, the recurring value will be the specific month and day of each year (e. g. May the 4th of every year). For the Monthly cycle, the value will be the specific date in every month (e. g. the date 13 in every month). As for the Weekly cycle, the value will be the specific day of the week (e. g. every Monday).

                                                                If you set a reminder with a recurring date on the 31st of every month, the reminder will not be executed on the months that do not have a 31st.

                                                                About recurring date fields in event calendar, please refer to this page.

                                                                Numeric

                                                                Specifies that the selected field is a numeric value. You can also choose a format from the formatting options listed under Format Type in Design Mode.

                                                                Numeric fields are most commonly used with Formulas.

                                                                Percentage

                                                                Specifies that the selected field is a percentage value.

                                                                Percentage fields are most commonly used with Formulas.

                                                                Background Progress Bar

                                                                Checking the “Show background progress bar” option below the percentage field will turn the field into a progress bar.

                                                                Once the Set button on the right side of the “Show background progress bar” option is clicked, a progress bar setting window will pop up, and you can drag the separators to define the percentage range. For example, if you want the percentage above 70% to be displayed in scarlet red, you can drag the separator from 75% to 70%.

                                                                When clicking on different percentage ranges on the progress bar, you can add separators, and set the text color and background color for the ranges.

                                                                If you want to reset the progress bar, simply click on the Reset button and the progress bar will be reset to default settings.

                                                                Auto Generate

                                                                The value of the selected field will be automatically generated by Ragic. This is a great help for generating system IDs and document numbers. You can choose from a list of formatting options provided in the Design Mode, or customize the values by writing your own filing codes.

                                                                When clicking on a field to enter data, users will see the Auto Generate option.

                                                                Ragic will generate a number or string according to your formatting.

                                                                You can also set Auto Generate Field to generate sequence numbers based on the specified selection field or date field value.

                                                                For example, you would like to generate sequence numbers for sales orders based on sales groups in order to categorize and review the performance of each group.

                                                                For more information about this field, please see the Auto Generated Field Values section.

                                                                Signature

                                                                In this field, a digital signature can be added via mouse or trackpad.

                                                                You can also upload the image file of a signature or insert a link to the URL of the image, or load a saved signature in personal settings.

                                                                In Design Mode, Signature Field has the same advanced settings as Image Upload Field.

                                                                Rich Text Editor

                                                                The Rich Text Editor field type gives users text formatting options, as well as the ability to insert images, tables, and links through the use of a pop-out menu. There is also space for content editing and style notes.

                                                                Barcode

                                                                You can use the Barcode field type to generate a Barcode. There is a selection of Barcode types you can generate in Ragic, such as Code 128 and QR Codes.

                                                                Alternatively, you can configure Additional field settings to display values as Code 128 Barcodes.

                                                                About more use cases of barcodes, please refer to Ragic Learning Center.

                                                                Action Barcode

                                                                Action Barcode allows you to display an action button as a QR code, so that the action button can be executed by scanning the QR code. Common use cases include event sign-in or adding payment records.

                                                                Let's say we already have a "Corporate Training" sheet and an action button “Attendee Sign-in” that fills in the user name and current time for sign-in.

                                                                Add an Action Barcode field in the sheet and select the "Attendee Sign-in" action button under Field Settings.

                                                                With that, attendees can sign in by simply scanning the QR code. You can also print out the QR code or display it on a screen for attendees to scan, so the sign-in process can be completed without accessing the sheet.

                                                                Every time the action button is executed, SYSAdmin will see a sign-in record in the sheet.

                                                                Masked Text

                                                                The Masked Text field type is similar to the Free Text field type, but can additionally be configured to display only the last N digits of text, as well as full details for select users.

                                                                Users with access rights can click the Preview to see the full information.

                                                                Note: The masked text field cannot be edited. For data security purposes, the field value will be cleared when you try to edit content in a Masked Text field.

                                                                Money

                                                                Similar to the Number field type, this field type sets the selected field as a money field so you can apply formulas. You can edit the currency format from the formatting options listed under Format Type in Design Mode.

                                                                Exchange Rate

                                                                This field retrieves real-time exchange rates from Open Exchange Rates when adding or editing a record. You can use formulas along with it to convert the original currency into other currencies. You can also populate empty values if needed.

                                                                The Exchange Rate field will default to fetching the latest rate and allow you to specify the conversion from one currency to another. For example, if you set it to convert from USD to EUR, the field value will display the fixed exchange rate of US Dollars to Euros.

                                                                Sometimes, we don't want to use the latest rate for calculations. For instance, quotations are often based on the exchange rate of the day the quote was issued, rather than the current rate. In such cases, you can use a "Referenced date field" to specify the exchange rate date based on the "Sales Order Date" field in the sheet.

                                                                If the original currency or target currency is not fixed, you can set the conversion from one currency to another based on a currency reference field. For example, if your company deals with customers from Europe and Japan and needs to convert USD pricing to EUR and JPY, you can set the conversion from USD and select a "Currency" field as a reference. Conversely, if you receive various foreign currencies and need to convert them back to USD for accounting purposes, you can set the conversion from the currency reference field to USD. If both currencies are not fixed, you can refer to different currency fields accordingly.

                                                                Please note that the referenced fields can only be either Free Text or Selection fields. The field value must be three uppercase letters, such as USD, JPY, EUR, etc. If you are unsure of the currency abbreviation, you can refer to the options in the menu.

                                                                When editing, selecting "EUR" for the "Currency" field will automatically retrieve the corresponding exchange rate.

                                                                Update Rate

                                                                The exchange rate field will only retrieve the exchange rate when adding or editing record. If you want to update the exchange rate for that field in all records at once, you can execute the Update Rate in Design Mode.

                                                                Please note that executing this button will update all the values of this field, overwriting the existing values. If there is no referenced date field to refer to, the system will update the field value with the latest exchange rate; otherwise, the system will update the field value with the exchange rate on the specified date.

                                                                Updating rate will also be recorded in the Entry Information.

                                                                Reviewer

                                                                You can assign specific users rights to review specific entries by setting up a Reviewer Field.

                                                                E-mail

                                                                The value of this field will be formatted as a link to the e-mail. Clicking on the link will prompt your web browser to respond according to its settings, such as by launching an e-mail application.

                                                                Phone

                                                                Clicking on the value of a phone field will prompt your web browser to respond according to its settings.

                                                                You can further select the desired format for the country's phone/mobile number in Formatting.

                                                                Address

                                                                This field allows you to enter your address or longitude and latitude so that when you click on it, you can see its location on Google Maps.

                                                                For the longitude and latitude, we also support multiple formats:

                                                                Degrees, minutes, and seconds (DMS): 41°24'12.2"N 2°10'26.5"E

                                                                Degrees and decimal minutes (DMM): 41 24.2028, 2 10.4418

                                                                Decimal degrees (DD): 41.40338, 2.17403

                                                                Another way to enter such values into this field is by clicking the Pin Icon.

                                                                A Google Maps window will pop up to let you pin the target location on the map. Please make sure that you pin it on the right location to generate the correct address value for the field. Save the value by clicking OK.

                                                                You can also set this field to display the address as map.

                                                                Enter and save the address in the field. It will be automatically displayed as a map.

                                                                Locate user's location

                                                                Sometimes, you might need users to report their current location, for example, for field visit location reporting. You can use an address field with default value setting to choose the desired location format based on your needs.

                                                                Remember to add the read only setting, so that users cannot change the address on their own.

                                                                It will automatically retrieves the current location when creating the record. (Location data needs to be provided to the browser to obtain the current location.)

                                                                Currently, Ragic app does not support this feature yet.

                                                                URL

                                                                The value of this field will be recognized as a link, and clicking on the value will take you to the linked website.

                                                                Special Format

                                                                The value of this field will be formatted according to universal standards that you can specify.

                                                                There are preprogrammed options available such as SSN (Social Security Number) and VIN (Vehicle Identification Number), but you can enter custom formats here as well.

                                                                Aggregate

                                                                This field can aggregate all records on the source sheet (linked sheet) that has a linked field linked to this record. There are five aggregate methods: count, total, minimum, maximum, and average.

                                                                For example, if you have "Sales Order" and "Customers" sheets. And in "Sales Order", if you have already set a link and load relationship to "Customers".

                                                                You can add an Aggregate Field in the "Customers" to calculate the total amount spent by each customer from the records in "Sales Order". Based on your requirements, you can select the desired aggregate method, source sheet, and field to be aggregated.

                                                                In "Customer", you will be able to display the total amount spent, highest spending, and average spending for each customer.

                                                                1.3.1    Auto Generated Field Values

                                                                Setting your Field to be Automatically Generated

                                                                When you set a field type as Auto Generate, the value of the field will be automatically generated by Ragic. This is a great help for generating system IDs and document numbers.

                                                                You can start by choosing a sequence format in the formatting box below and see what the generated value is like in the example area. To understand this formatting structure, we could analyze how Ragic responds to parts of these sequences.

                                                                Generate Sequence Numbers Based on the Specified Selection or Date Field Value

                                                                You can also set Auto Generate Field to generate sequence numbers based on the specified selection field or date field value.

                                                                For example, you would like to generate sequence numbers for sales orders based on sales groups in order to categorize and review the performance of each group.

                                                                Note: If your auto-generate field’s values are based on the values on a date field, the date format of the auto-generated values will be in accordance with the format set on the referenced date field. If you would like to apply another date format on your auto-generate values, you would need to create another date field with the format you would like to apply on your auto-generate field and set formulas to have both date fields equal to each other. After that is completed, you can set your auto-generate field to reference that new date field.

                                                                Example: Quote with Date

                                                                The following sequence format is written for a quotation's document number:

                                                                QUOTE-{1,date,yyyyMMdd}-{0,number,000}

                                                                Two variables are provided to generate the pattern;

                                                                the {0,number,000} is a serial number,

                                                                and the {1,date,yyyyMMdd} is the date that the value is generated.

                                                                When the date variable is not present, the number variable will be a count of quotations generated.

                                                                For example, if the pattern is:

                                                                QUOTE-{0,number,000}

                                                                The generated document number will be:

                                                                QUOTE-001

                                                                QUOTE-002

                                                                QUOTE-003

                                                                ...

                                                                If the date variable is present, the number variable will be a count of quotations generated under the same date string. For example, if the pattern is:

                                                                QUOTE-{1,date,yyyyMMdd}-{0,number,000}

                                                                The generated document on 2013/5/8 will be:

                                                                QUOTE-20130508-001

                                                                QUOTE-20130508-002

                                                                QUOTE-20130508-003

                                                                ...

                                                                On the next day it will be:

                                                                QUOTE-20130509-001

                                                                QUOTE-20130509-002

                                                                QUOTE-20130509-003

                                                                ...

                                                                If we change the format to:

                                                                QUOTE-{1,date,yyyyMM}-{0,number,000}

                                                                Then the quotation generated on 2013/5/8, and 2013/5/9 will be:

                                                                QUOTE-201305-001

                                                                QUOTE-201305-002

                                                                QUOTE-201305-003

                                                                QUOTE-201305-004

                                                                QUOTE-201305-005

                                                                QUOTE-201305-006

                                                                ...

                                                                The sequence will only be reset in the following month:

                                                                QUOTE-201306-001

                                                                QUOTE-201306-002

                                                                QUOTE-201306-003

                                                                ...

                                                                Get entry URL

                                                                On the field settings' formatting list, scroll down and choose "Record URL" format.

                                                                With this format, the system will auto-populate the field with the URL of each entry created in the sheet.

                                                                The unique value of each record (RAGIC_ID)

                                                                RAGIC ID is the unique value that Ragic uses to distinguish each record, which is the last parameter in the record URL. For example, if the record URL is "https://www.ragic.com/LearningRagic/ragicsales/20001#!/20001/7", the last "7" is the record's RAGIC ID.

                                                                If your sheet does not have a unique value field, you can consider using RAGIC ID as the unique value for importing or exporting data, and the downloaded Excel backup file of the sheet will also include the RAGIC ID.

                                                                The unique value of each subtable record (SUBTABLE_RAGIC_ID)

                                                                SUBTABLE RAGIC ID is the system-assigned number used to identify each subtable record. It also serves as the numeric suffix in the URL when generating a new form for that particular subtable. For example: in https://www.ragic.com/LearningRagic/ragicsales-order-management/20006/33, the "33" at the end represents the SUBTABLE RAGIC ID for that record. This format is applicable only to subtable fields.

                                                                If you are in New Sheet From Subtable, selecting RAGIC ID will generate the same value.

                                                                Resetting the Sequence

                                                                You can reset or change the status of the automated sequence in the auto-generate setting through the Sequence of next record at the bottom of the left panel in the Design Mode.

                                                                Enter the sequence number you want to start from and click the Set seq of next record button. If you would like to view the current sequence number, click on Get seq of next record. This is especially useful when you have a sequence that you're using in Ragic but would like to import data from another source, and then continue with the current sequence.

                                                                If you check the "Generate sequence based on another field", you will be able to Get seq of next record or Set seq of next record for each option. You can see there are "field options" below and you can set the sequence for all options individually. For example, you have "Apparel", "Banking", and "Chemicals" in the field options. You can set the sequence for "Apparel" first:

                                                                After you finish setting up for "Apparel", you can choose other options like "Banking" or "Chemicals" to set up the sequence:

                                                                Populating Empty Values

                                                                Ragic has the ability to populate empty autogenerate fields according to the set sequence. You can add this setting for the autogenerate field in the form page's design mode, and then go to the bottom of the Field Settings > Basic panel.

                                                                If you check the "Generate sequence based on another field:", the system will generate sequence numbers for all the options. For example, if there are no sequence numbers in all the options "A" "B" and "C" and you click "Populating Empty Values", you will see all the options generate their own sequence numbers. You will see A-00001, B-00001, C-00001, A-00002, B-00002, C-00002...etc.

                                                                If you didn't select any options in another field but have selected "Populating Empty Values", the system will still generate sequence numbers without the option. As you can see in the example below, the field value is "-00001".

                                                                This feature can be used when you haven't created a key identifier for your records when you import your data from spreadsheets.

                                                                Sequence Patterns

                                                                For more information on the formatting of these sequence patterns that are based on Java MessageFormat, you may visit the Java MessageFormat class page.

                                                                1.3.2    Cascaded Selections

                                                                Cascaded Selections

                                                                Cascaded Selections help you to set options connected to another selection field depending on what is selected previously.

                                                                Setting up Cascaded Selection

                                                                To set cascaded selections for a selection field, you must first create at least 2 selection fields in the Design Mode.

                                                                Select the field "Minor Category" and check the Set Cascaded Selections box, then select "Major Category" from the drop-down menu.

                                                                Click on the Set button, a pop-up menu will display all options of the referenced selection field. You can add the cascaded selections to each parent option. Each cascaded selection must be written on one line.

                                                                Don't forget to click on the Save button after you finished.

                                                                It is possible to set cascaded selections referring to a field already with cascaded selections, so you can have a chain of cascaded selections.

                                                                Note:

                                                                1. Both the parent selection field and the child selection field need to be added to the listing page if you would like to display one of them there. If you do not want one of those fields displayed on the listing page, you may hide that field.

                                                                2. Multiple selection field doesn't support Cascaded Selection.

                                                                3. The maximum number of selections in a cascaded selection field is 10000. When reaching the limit, the selection settings on the cascaded selection field will be reset after saving the sheet's design. If it is required to have more than 10000 selections, please use link & load with dynamic filtering applied.

                                                                1.4.1    Default Values

                                                                Setting up a Default Value

                                                                In some cases you might need Ragic to fill out some of your fields with a Default Value, such as the current time or date, to save time while filling entries, as well as for error avoidance.

                                                                You can set default values to applicable field types by clicking the link next to the Default Value option in Design Mode, under Field Settings > Basic.

                                                                Variables Offered

                                                                You can use the variables offered in Ragic to generate a default value when an entry is being created or updated, or you can write a value to set as default that will populate this field in each new entry (in the case of setting a Free Text or Selection field).

                                                                Default Value Default Formatting Variable Example
                                                                Create date yyyy/MM/dd $DATE 2015/05/19
                                                                Create time HH:mm:ss $TIME 09:21:05
                                                                Create date time yyyy/MM/dd HH:mm:ss $DATETIME 2015/05/10 09:21:05
                                                                Create year yyyy $YEAR 2015
                                                                Create month M $MONTH 5
                                                                Create weekday E $WEEKDAY 2
                                                                Create user name Name LastName $USERNAME Jane Doe
                                                                Create user e-mail email@domain.com $USERID jane@initech.com
                                                                Last modified date yyyy/MM/dd #DATE 2015/05/23
                                                                Last modified time HH:mm:ss #TIME 09:32:06
                                                                Last modified date time yyyy/MM/dd HH:mm:ss #DATETIME 2015/05/23 09:32:06
                                                                Last modified year yyyy #YEAR 2015
                                                                Last modified month M #MONTH 5
                                                                Last modified weekday E #WEEKDAY 2
                                                                Last modified user name Name LastName #USERNAME Karen Moore
                                                                Last modified user e-mail email@domain.com #USERID karen@initech.com
                                                                Sequence 1,2,3 $SEQ 3

                                                                Regarding the variables related to "create", if default values are added only after record is already existing, the default values are triggered at the moment of adding or editing. If the field is empty, it will capture the editing user and editing time at that moment, rather than the actual creator and creation time of that record. To avoid this, it is recommended to manually populate empty values to fetch the original created information.

                                                                Inputting Your Own Formatting for Default Values

                                                                If you need customized formatting for default values, you can input text into the formatting box below the Default Value options, or can simply choose from the preselected formatting options. You have the option to set a custom date format for date fields as well.

                                                                Applying Formulas

                                                                You can also apply formulas to a default value. From the Form Page, enter Design Mode and check the box Interpret as formula below the Default Value field. Now add your formula directly into the Default Value field. For supported formulas in Ragic, please refer to the following documentation.

                                                                Notes

                                                                Formulas in the default value field will only be interpreted when the reference field is edited for the first time. Once the formula is interpreted, it will not be re-calculated in accordance with further edits. If you would like to have the default value re-calculated in accordance with the reference field value, please use formulas instead of adding formula as a default value. Formulas are explained in detail here.

                                                                For a similar reason, Ragic doesn’t support formulas in the default value field when one formula refers to multiple fields and you turn on autosave in a sheet. Because when autosave is activated, the formula will be triggered when one of the reference fields is auto-saved and will not be re-calculated when other fields are edited.

                                                                Using the Read Only Option

                                                                Fields with default values are often used in conjunction with the Read Only option to prevent users from manually changing the value.

                                                                Populate Empty Values

                                                                When your sheet already has entries and you would like to add a new field with a default value, or you would like to change an existing field type to a field type that has a default value applied to it, Ragic will not automatically populate the default values to existing entries according to the new configuration. Therefore, the new or newly modified field may remain empty. If you would like to have all empty values with a default value such as the most recent update, you can click on the Populate empty values button under the Default Value setting in Design Mode.

                                                                Step 1. Enter Design Mode to configure your default value

                                                                Step 2. Save your modification

                                                                Step 3. Under the Default Value setting, click on the set default value field. Then click on Populate empty values.

                                                                Once you click on the Populate empty values button, Ragic will start to populate the empty values in the background. This may take awhile depending on the number of records in your sheet. Feel free to navigate away from Design Mode if needed. There will be a pop-up notice in the lower-left corner of your screen once the process is complete.

                                                                You will then see the default value(s) autopopulated on the Form Page.

                                                                Setting Multiple Default Values for Select User or Group Fields

                                                                When setting multiple default values for select user fields, you can use '|' to separate the values. For example, entering 'Rex|Amy' as the default value, the field will automatically be populated with the default values: Rex and Amy.

                                                                You can also use '|' to separate multiple values for select group fields.

                                                                Note: If the user or group names themselves already contain the '|', You will need to use '%7C' instead of the original '|'. For example, to include the groups 'IT' and 'RD|Senior', it should be written as follows:

                                                                1.4.2    Fields Formatting

                                                                Setting the Formatting of your Fields

                                                                You can change the formatting of field values, or choose from the offered formatting options when applicable, depending on the field type.

                                                                The formatting that is set will automatically format the input value, according to your custom format string. This makes it easier to make quick inputs on entries in Ragic.

                                                                You can set the formatting of certain field types in the Design Mode of your form, under Field Settings > Basic.

                                                                Example Formatting Types

                                                                See some of the examples on what you can do with custom field formatting below.

                                                                Field Type Formatting Applied Input Formatted Value Notes
                                                                Date yyyy/MM/dd 20151022 2015/10/22 Ragic will format your date value according to what you enter.
                                                                Date dd-MM-yyyy 1022 22-10-2015 If you do not enter the year value, Ragic will input the current year.
                                                                Date yyyy/MM/dd 22 2015/10/22 If you only enter the day, Ragic will autofill with the current month and year.
                                                                Date yyyy, MMMM, dd EE 22 2015, October, 22 Thursday Please check the section below for custom date formats
                                                                Numeric #,###.## 3266.528 3,266.53 Your input will be rounded to the nearest decimal according to the formatting.
                                                                Numeric #,##0.00 3266 3,266.00 If no value exists in a position, access displays a zero (0).
                                                                Auto Generate PO-{1,date,yyyyMMdd}-{0,number,000}   PO-20150519-029 Auto Generate fields do not require input from the user, and will generate a serial number in sequence.
                                                                Money $#,###.## 12859.2 $12,859.2 You can change the currency symbol in the formatting box by replacing $.
                                                                Phone (XXX) XXX-XXXX 9497692270 (949) 769-2270 You can enter your own formatting if your country isn't listed.
                                                                Special Format XXX-X-XX-XXXXXX-X 9781451673319 978-1-45-167331-9 Some options include the standard ISBN, SSN, and VIN, but you can also enter your custom format.

                                                                Custom Date Formatting

                                                                If none of the available date formats fit your requirements, you can write your own formatting with the table below:

                                                                Field Full Form Short Form
                                                                Year yyyy (4 digits) yy (2 digits), y (2 or 4 digits)

                                                                Month MMMM (name. Ex. January),MMM (abbr. Ex. Jan), MM (2 digits), M (1 or 2 digits)
                                                                Day of Month dd (2 digits) d (1 or 2 digits)
                                                                Day of Week EEEE (Monday) E (Mon)
                                                                Hour (1-12) hh (2 digits) h (1 or 2 digits)
                                                                Hour (0-23) HH (2 digits) H (1 or 2 digits)
                                                                Hour (0-11) KK K (1 or 2 digits)
                                                                Hour (1-24) kk (2 digits) k (1 or 2 digits)
                                                                Minute mm (2 digits) m (1 or 2 digits)
                                                                Second ss (2 digits) s (1 or 2 digits)
                                                                AM/PM a

                                                                Displaying the date field in the Japanese calendar format

                                                                If you would like to display the date information in the Japanese calendar format, you can create your own custom date formats by using code from the table below. For example, if you want to display the date information as “Nov 11, Reiwa 3”, you can do it by typing “MMM dd, JGGG Jyy” in the formatting.

                                                                Code Meaning Display in English
                                                                JGGG Japanese era name Reiwa
                                                                JGG / JG Short form of the Japanese era name R
                                                                Jyy / Jy Japanese year 1, 3, 5
                                                                EEEE Days of the week Tuesday
                                                                E / EE / EEE Short form of the days of the week Tue
                                                                a AM/PM AM, PM

                                                                Custom Numeric Formatting

                                                                In Ragic, you can also change the system's numeric format decimal and thousand separators setting. On the left sidebar numeric field setting, click Advanced beside the Format Type. Then, untick the "Use system separators" checkbox and change the separator format under it as shown below.

                                                                Setting Default Formatting Through Account Settings

                                                                It's extremely useful to apply default formatting from your Company Setting > Account Settings section for designing your sheet if you have a regularly used formatting for numeric field type or date field type.

                                                                1.4.3    Additional Field Settings

                                                                Configuring Additional Field Settings

                                                                You can configure additional field settings apart from a default value and a field formatting from the Design Mode, under Field Settings > Basic.

                                                                Not Empty

                                                                Setting fields to "Not Empty" indicates that the field value should not be empty. Fields with this attribute will be marked with a red asterisk on the upper left side of the field title.

                                                                Unique

                                                                When you set a field as unique, the value of this field cannot be a duplicate.

                                                                This feature is most useful when you want to make sure that you do not register the same thing twice in your database, for example, a username, e-mail or phone number.

                                                                With this configuration, when a user tries saving a record with the same value for a field marked as "unique", not only would the database prevent the user from saving, but will also display a pop-up window that includes a link to the original saved record.

                                                                Subtable Unique

                                                                You will see this option in subtable field settings (which is different from the "unique" attribute of general table field settings). Checking this option will block users from entering duplicate subtable field value in an entry, but subtable values in other entries are not subject to this restriction.

                                                                Read Only

                                                                A field can be set as read-only, which means that the value of this field cannot be changed.

                                                                This feature is most useful for fields that are referenced from another sheet, autogenerated fields, or fields that have a default value set.

                                                                Column Span (Merge Cells)

                                                                You can merge cells on your forms to span columns so that a single field may look wider.

                                                                This is significantly different than the method to adjust the height of a row or the width of a column.

                                                                Do Not Clone

                                                                If you're creating many entries with similar data, sometimes it's useful to clone the entry instead of rewriting data.

                                                                If you use the clone entry function often, you can set the fields that should not be cloned while cloning an entry as "do not clone".

                                                                No Wrap Text

                                                                When this configuration is set, the text in this field won't be wrapped.

                                                                Barcode

                                                                Specifies that the value of this field will be displayed in barcode. (QR Code)

                                                                If you would like to generate other types of Barcode, such as Code 128, you may use the Barcode field type.

                                                                Hidden

                                                                Specifies that the field that will be hidden in the following:

                                                                1. Spreadsheet interface

                                                                2. Printer Friendly view

                                                                3. Excel download (and related export options)

                                                                4. Web embed form

                                                                The hidden field can be used to store values that you might need as constants, for formulas, and other use cases where the ability to view this value will not be practical for the user.

                                                                When used in a subtable, a hidden field will leave a gap, therefore while designing a form, please consider moving hidden fields to the end of the subtable.

                                                                Ignore record lock

                                                                When enabling this option, this field will remain unlocked after locking the record.

                                                                Field Instruction

                                                                You can add field instruction to help user enter data to the field.

                                                                The configuration for field instruction can be found from left panel under design mode > Field Settings > Other.

                                                                This will add a (?) to the field header, and your instruction will show when user clicks on the (?).

                                                                Manual Attributes

                                                                Note: Please do not use this feature unless instructed by Ragic support.

                                                                To add manual attributes to a field, you can enter the Design mode of the form page, select the field, and navigate to Field Settings > Other > Manual attributes on the left side of the page.

                                                                After entering your parameter to the Manual attributes configuration, click the "+" button next to it.

                                                                You might notice the entered parameter is now cleared, which means it has been added to the field.

                                                                Before exiting the design mode, please don't forget to save your design changes.

                                                                To remove an attribute, simply try to add an empty attribute value to an attribute and the attribute will be removed.

                                                                1.5    Field Descriptions

                                                                Field Descriptions / Static Text Fields

                                                                A Ragic Sheet can contain more than just fields. It can also contain Static Form Descriptions that serve as instructions or decorative elements for your forms. Normally when you start typing in a field in Design Mode, it creates a field ready for input. You can change the editing mode by clicking on the Editing Fields button at the top, and then clicking on Editing Descriptions. By doing so, when you type on the sheet, you will be able to create Static Form Descriptions instead of Fields.

                                                                Another way to create descriptions is to go to the Add Component tab on the left, and drag and drop a Description from Static Text directly onto your sheet.

                                                                Styling your Field Descriptions

                                                                When you click to select a description field, you can change its style using the formatting panel embedded in the left sidebar.

                                                                You can change the font size and style, text alignment, text and cell colors, and link to a URL.

                                                                Selecting the color options for a Static Text Field will display a Color Picker, which allows you to adjust the canvas, choose a color swatch, or enter a hexadecimal code in the upper-left-hand corner.

                                                                To adjust the width of a Static Text Field in Design Mode, drag the lower-right corner of the field.

                                                                Formulas in Field Descriptions

                                                                Formulas work in Static Description Fields for display purposes only.

                                                                This is useful if you need to recalculate a formula each time your database form is loaded, but do not need to keep this value in your database itself. You will need to use BBCode for your formula to work.

                                                                Let's say that you would like to view a person's age according to their birthday. Writing [formula](TODAY() - A1)/365.25[/formula] into a description field would display the age of this person, which will always be recalculated according to the day that the form is opened.

                                                                1.6    Subtables

                                                                What are Subtables?

                                                                Subtables are extremely useful for handling one-to-many relationships in your form. For example, you may want to create an entry for a customer account with activity history records for multiple contacts. Or, you may need to create records for multiple items in a purchase order or quotation. Subtables are everywhere in business applications, and Ragic provides the easiest way for you to create and manage them.

                                                                Video Tutorial

                                                                Please watch the following video tutorial for a more detailed explanation of how you can create a new subtable on your Ragic form.

                                                                Creating Subtables

                                                                While creating a form in Design Mode, you can create a subtable simply by lining up the fields horizontally. The field headers must be placed next to each other in a row of consecutive cells. Just start typing the next field header in the adjoining horizontal cell, disregarding where the field value of the previous field would typically be placed. Ragic will automatically shift the field values to be displayed vertically below the field headers.

                                                                Remember, forms cannot begin with subtables in Ragic. We recommended placing subtables at the bottom of your sheet design, since subtables will expand to accommodate new entries. We also suggest not placing more than one subtable per row or placing independent field next to the subtable for this reason. If you have different subtables placed in different rows, but start from different columns, it's suggested to place a long description field in between in order to prevent the displaying issue caused when subtables expand.

                                                                For a more detailed explanation of Subtable creation in Ragic, please watch the video tutorial below.

                                                                To learn how to move subtable fields, please refer to the following document.

                                                                Entering Data into Subtables

                                                                When using subtables, users can enter many sub-entries belonging to the main form entry. The subtable will initially show three empty rows for entering data, but as a user enters more information, additional rows will appear.

                                                                Filtering and Sorting in Subtables

                                                                In some cases, you may want to filter or sort subtable records. This can be done by clicking on the drop-down arrows located to the left of each field header.

                                                                Filtering your Subtable records

                                                                You can use the Filter by Text option to filter your subtable. If the field is a Selection Field or a Multiple Selection Field, you can also choose one of the selection options to filter your results.

                                                                The filters applied can be cleared either by using the Clear Filter button located at the top of your page, or by using the Clear Filter option accessible from the drop-down arrow of each field header.

                                                                Sorting the order of your Subtable records

                                                                Options include sorting by ascending or descending order.

                                                                Sorting applied to the subtable can be cleared using the Clear Sorting option accessible from the drop-down arrow.

                                                                Setting a default filter and default sort to a Subtable

                                                                You also have the option to set a default filter or a default sort to subtables in order to filter and/or the results displayed whenever entries are viewed.

                                                                To set a default filter, click the Save current subtable filter and sort as default option accessible from the drop-down arrow.

                                                                Default filters can be cleared using the Remove current subtable default filter and default sort option from the same menu.

                                                                Exporting Data from your Subtables

                                                                The best way to export data from your subtables is by using the Create new sheet from subtable option:

                                                                1. Create a new sheet from your subtable with this linking type. This will generate a new sheet with the total subtable values from that sheet, spanning all entries for all records.

                                                                2. Add other necessary fields If necessary, you can add stand-alone fields from a parent sheet with the link fields from parent sheets method. This way you can export your subtable data along with other related fields.

                                                                3. Export your data from your new sheet Exporting data from the new sheet works just like exporting from a regular sheet.

                                                                More about Subtables

                                                                Learn more about how to use formulas to make calculations in subtables.

                                                                Having hundreds of entries in a subtable can cause the form to load more slowly. If this happens, we recommend managing the records from a new sheet created from the subtable. Learn how to do that here.

                                                                If you would like to prevent users from deleting subtable records, you can lock permissions using the No subtable deletion allowed option while in Design Mode.

                                                                1.7    Tuning the Layout of Your Forms and Tabs

                                                                Formatting the appearance of your sheet is quick and easy in Ragic Design Mode. Having a consistent format for your sheets makes your database look more organized. You can also design multiple versions of the same sheet to match the look and feel you envision when printing or exporting your data as files.

                                                                Video Tutorial

                                                                Changing the height and width of your fields

                                                                In Form Page

                                                                Changing the height and width of cells works the same way as in spreadsheet software applications such as Excel. Dragging the right border of a column's reference tab helps you to adjust the width of the column.

                                                                Likewise, dragging the bottom border of a row's reference tab will adjust the height of the row.

                                                                In Listing Page

                                                                Dragging the right border of a column's reference tab helps you to adjust the width of the column.

                                                                You can also drag the bottom border of a row's reference tab to adjust the height of all the rows in the table.

                                                                Directly set column width or row height

                                                                By right-clicking the column or row you want to edit and selecting the column width or row height option, you can directly enter pixel values in the pop-up window to adjust the column width or row height. You can also drag multiple fields and edit column width or row height.

                                                                Changing the style of field headers and values

                                                                You can change the style of field headers or values from the Styles tab in Design Mode. This can be done separately for form and listing pages.

                                                                If you want to apply custom styling to field values while entering data, you can use BBCodes for text formatting while doing so.

                                                                Adding field borders

                                                                You can also add Field Borders to field headers and values from the Styles tab in Design Mode. This can also be be done separately for form and listing pages.

                                                                Click on the square Border Icon under the Label Style formatting toolbar or the Value Style formatting toolbar.

                                                                A formatting menu will display options for choosing field borders.

                                                                You can also select the border color and style.

                                                                Your border will be placed in your form design.

                                                                Copying styles

                                                                To copy and paste selected formatting to another field, you can click the Copy Styles. This will apply the same style configurations to the next clicked field.

                                                                To copy a selected style to multiple fields, check the Paste copied styles to multiple fields.

                                                                Clearing styles

                                                                Clear style of this field

                                                                You can clear style of a single field by clicking Clear style of this field under Styles tab.

                                                                Clear style of all fields

                                                                You can clear all of the styles and Theme in this sheet by clicking Clear style of all fields.

                                                                Applying a theme

                                                                You can also apply preselected themes to a form page. To preview available themes, click the Select Theme Icon under the Styles tab.

                                                                Select and apply the theme of your choice.

                                                                Moving fields

                                                                From Design Mode, you can move existing fields by dragging and dropping. Click and hold the field header with your primary mouse button, drag it to an empty space on your form, and drop it by releasing the mouse button.

                                                                You can also move your subtable to another row from Design Mode by dragging. First, make sure that you have at least three fields beneath your subtable field headers (these will expand later when editing your form). Drag one of your subtable fields to an empty cell to start the process. You will see a prompt asking if you want to move your subtable. Select the leftmost field where you would like your first subtable field to begin. Upon confirmation, Ragic will shift your entire subtable to match.

                                                                If you want to shift the order of subtable fields, you can drag and drop them horizontally.

                                                                Formatting Static Text Fields

                                                                You can also change fields into Static Text Fields from the Editing Descriptions option under the Editing Fields menu in Design Mode. The usages of static text fields range from headers and other decorative elements to descriptive text fields and user instructions.

                                                                When the field is selected, a formatting toolbar will appear on the left. You can change the font size and style, text alignment, text and cell colors, and link to a URL.

                                                                Selecting the color options for a Static Text Field will display a Color Picker, which allows you to adjust the canvas, choose a color swatch, or enter a hexadecimal code in the upper-left-hand corner.

                                                                Span (merge) fields

                                                                You can span fields in multiple columns by selecting the Span Multi Column option in the left sidebar under the Basic tab, which will then merge the number of fields you input in the same row.

                                                                To do this in static text fields, just drag the lower-right corner of the field.

                                                                Change Tab color

                                                                To change the color of a tab, right-click to access the context menu and then select Change Color.

                                                                This will display a Color Picker, which allows you to adjust the canvas, choose a color swatch, or enter a hexadecimal code in the upper-left-hand corner. Once you have selected your preferred tab color, click Save Color.

                                                                Change Tab Icon

                                                                To change the Tab Icon, right-click to access the context menu and click Change Icon.

                                                                A pop-up menu will be displayed. Simply select or upload the icon you would like to apply to your tab.

                                                                1.7.1    Manage Tabs and Sheets

                                                                When you enter your Ragic database, you'll see a list of all available sheets under each tab that you have access rights to on the user Homepage. You can either scroll down to find the sheet that you want to access, or navigate from the Tab on the top.

                                                                Tab Menu and Tab Manager

                                                                As tabs grows, locating the sheets you need might become a problem. This is when Tab Menu can help. You can categorize tabs into different tab groups (tab menus) such as "ERP", "HR", or "Marketing". Each tab menu will has its own homepage.

                                                                Click on the scroll-down menu on the upper-left of the page, you will see Default Tab Menu which includes all uncategorized tabs. Select Create new tab menu next to the plus sign.

                                                                Click on Create new tab menu and name it.

                                                                Select the tabs you would like to add into the new tab menu and hit save.

                                                                Enter the new tab menu by selecting it from the drop-down menu on the top-left of the page. Only the tabs you added will be displayed on this page. You can also add different logos and banners to each tab menu.

                                                                Note:

                                                                1. Tabs added to other tab menus will no longer be displayed in Default Tab Menu.

                                                                2. Reports will move along with their source sheets.

                                                                Configure Default Tab Menu Set for Specific User Groups

                                                                When your database has numerous tab menu sets, and you wish to streamline the process of finding sheets for users upon login by directing them to commonly used tab menu set, you can apply this setting. For instance, users in the "Sales" group can be directed to the "ERP" tab menu set, while users in the "HR" group can be directed to the "HR" tab menu set.

                                                                First, open the Tab Manager, select the tab menu set you want to configure, and click the gear icon next to it. Choose Set as user group-specific default tab menu set.

                                                                In the window, specify which Groups should have this tab menu set as their default, and remember to Save. Once done, users in that group will be directed to this tab menu set upon login.

                                                                Note: If users belong to multiple groups, each configured with a different default tab menu set, their default will be determined by the order of these sets. If users can't access any sheets or tabs in a set, they will be directed to the next one. If none meet the criteria, they will be directed to the database's default tab menu.

                                                                Sheet Information and Hide Sheet

                                                                Select the sheet you would like to view and right-click to access the Sheet Information.

                                                                In the window, you can see the following information.

                                                                Hidden Sheet

                                                                You can hide a sheet from users that do not have SYSAdmin access rights in Sheet Information. This feature helps to maintain a clear interface by concealing the sheet name.

                                                                Users can still access this sheet via its URL. If this sheet is a linked sheet within the Link & Load feature, it will continue to be accessible in those configurations.

                                                                Sheet Manager

                                                                If you want to change sheet order, you can hover on any tab or sheet and right-click to open Sheet Manager.

                                                                Select a sheet and click on the horizontal arrows to move it to other tabs or click on the vertical arrows to change its order in the same tab.

                                                                Remember to save current arrangement before leaving.

                                                                Delete a Sheet or Tab

                                                                You can access the context menu of a tab or sheet by right clicking on it, or left clicking on the arrow icon that appears when you hover on the tab or sheet name.

                                                                Choosing "Delete" will delete the tab or the sheet.

                                                                To delete a report, you can right click on the report name to access the context menu and choose "Delete".

                                                                If the system stop you from deleting a sheet, please refer to this document.

                                                                If you acccidentally deleted an application tab or sheet and would like to recover it, you can check to see if it's under the Recycle Bin.

                                                                1.7.2    Add Shortcuts Under Tabs

                                                                x
                                                                Add shortcuts under tabs

                                                                New Link

                                                                New Link

                                                                You can add URLs as hyperlinks under tabs through New Link. For instance, you can create a hyperlink to your e-commerce website under "Sales Order" tab.

                                                                Right-click on the tab, and select New Link.

                                                                Set the name,URL, and the groups which can access for the hyperlink.

                                                                1.7.3    Insert Image in Your Forms

                                                                If you would like to add a company logo to your Quotes or Sales Orders forms, you can hover on a blank cell and right-click to Insert Image.

                                                                In this window, you upload an image or fill in the image URL and then set the width and length of the picture.

                                                                Click on the image to edit or delete it.

                                                                After saving the design, it will display in the form.

                                                                The image will also show on the printer-friendly page.

                                                                1.8    Formulas

                                                                Usage of Formulas in Ragic

                                                                Formulas in Ragic work similarly to those used in spreadsheet applications such as Excel. In Excel, we refer to fields by referring to the cells containing their field values. However, in Ragic, we assign formulas by referring to the field containing their field header. This is because Ragic subtables allow multiple cells to contain field values for a field.

                                                                Formulas can be used to calculate not only numbers, but also strings and dates. Ragic will try to automatically determine what type of formula is needed, but it's best to specify the Field Type (such as Number or Date) to ensure accuracy.

                                                                To assign a formula to a field header from your Form Page, navigate to Design Mode and select the field header. Go to the Field Settings menu on the left and enter your formula into the Formula tab.

                                                                Below you can see an example of a Sales Order sheet complete with calculations. The Amount Due (A20) field has the formula that will add and calculate the Total (A17) and Tax (A19) fields.

                                                                There is a fx() icon in the field assigned with formula.

                                                                Clicking on the icon, the system will automatically highlight all of the referenced fields of this formula.

                                                                Note: The "Multiple Select" field type cannot be configured as a reference field in formulas.

                                                                For a list of supported formulas in Ragic, please see below.

                                                                Calculation Operators in Ragic

                                                                Operators specify the type of calculation that you want to perform on the arguments of a formula. There is a default order in which calculations are programmed to occur, but you can change this order by using parentheses.

                                                                Note: Unlike Excel, Ragic does not allow a colon (:) to be used as a reference operator to combine ranges of cells.

                                                                Arithmetic Operators

                                                                To perform basic mathematical operations such as addition, subtraction, or multiplication and produce numeric results, please use the following arithmetic operators:

                                                                Arithmetic operator Meaning Example
                                                                + (plus sign)Addition 3+3
                                                                – (minus sign) Subtraction  3–1
                                                                * (asterisk) Multiplication 3*3

                                                                / (forward slash) Division 3/3

                                                                Comparison Operators

                                                                You can compare two values with the following operators. When two values are compared by using these operators, the result is a logical value either TRUE or FALSE that can be used within conditional formulas.

                                                                >>

                                                                >>>=>

                                                                >=>

                                                                Comparison operator Meaning Example
                                                                = Equal to A1=B1
                                                                == Equal to A1==B1
                                                                > Greater than A1 > B1
                                                                < Less than A1 < B1
                                                                > = Greater than or equal to A1 > =B1
                                                                < = Less than or equal to A1 < =B1
                                                                !=Not equal to IF(A1!=B1,'yes','no')

                                                                Strings in Formulas

                                                                To create strings in formulas, you can use either single quotes, e.g. 'Single Quoted String', or double quotes, e.g. "Double Quoted String" to denote a string in the formula. In this document we will use single-quoted strings for consistency, but please note that both formats are acceptable in Ragic.

                                                                Values in Subtables

                                                                Assigning formulas to field headers makes calculations much easier while allowing you to write more complicated formulas with less effort, especially in Subtables.

                                                                Let's go back to our Sales Order example. The subtable that lists the order information includes Unit price (B12) and Quantity (C12). Multiplying these variables will calculate the total amount of money (D12) owed for each item. Notice how the subtotal of this amount in field A17 references the amount in field header D12.

                                                                Formulas can also work on the subtables themselves. For instance, if you need to count how many rows there are in a subtable, you can simply create a separate field in your form that uses the COUNT() formula.

                                                                For more advanced conditional formula types to count or sum up values in subtables, please see the COUNTIF Function, the COUNTIFS Function, the SUMIF Function, and the SUMIFS Function.

                                                                Calculate unique values in subtable

                                                                You can use UNIQUE() and UNIQUE().length to find or calculate the number of unique values in a subtable.

                                                                UNIQUE(): Lists the unique values of referenced subtable field. The default separator for subtable values would be ",". If you don't modify the separator in your formula, the result will use the default separator and would look like the image below. If you would like to configure your own separator, you should modify your formula to UNIQUE(field,"separator"). For example, you can do UNIQUE(A1,"/"), UNIQUE(A1," "), or UNIQUE(A1,", "). The result would be "Angie/Rex/Lillian", "Angie Rex Lillian", or "Angie, Rex, Lillian" respectively.

                                                                UNIQUE().length: Calculates the number of unique values of referenced subtable field.

                                                                For example:

                                                                Return specific field value when criteria matched

                                                                The VLOOKUP function returns the field value of subtable rows if a specified condition evaluates to TRUE.

                                                                Formulas Syntax
                                                                VLOOKUP VLOOKUP(value, queryField, returnField, [approximateMatch=true], [findMultiple=false])

                                                                The VLOOKUP function syntax has the following arguments:

                                                                value Required. The value you want to look up. Can be a number, expression, reference to another field, or a text string.

                                                                queryField Required. The subtable field where the lookup value is located (A2 field in the below example).

                                                                returnField Required. The subtable field containing the return value (A9 field in the below example).

                                                                [approximateMatch=true] Optional. The approximateMatch argument specifies whether you want VLOOKUP to find an approximate or an exact match. The default value is "true" (approximate match). Set to "false" if you would like to find an exact match.

                                                                [findMultiple=false] Optional. The findMultiple argument determines whether or not the returnFiled returns multiple values. The default value is false. If there are multiple entries that may match the criteria, please set it to "true".

                                                                Example

                                                                Let's say you want to find the teacher of a specific class in the subtable below:

                                                                You may create a new free text field for user to input the query class. Then, create another free text field and apply the VLOOKUP(A9, A4, B4, false, false) or VLOOKUP(A9, A4, B4) formula. The formula will return the teacher's name according to the query class inputted.

                                                                Calculating Dates and Times

                                                                Formulas that refer to date fields

                                                                A formula referencing date fields can calculate dates N number of days in the future or past.

                                                                For example, if A1 is a date field, then A1+7 will be the date for 7 days after A1.

                                                                Another common use for using dates in calculations would be: if B1 is a birthday, you can set the formula to "(TODAY() - B1)/365.25" to represent the current age of the person who has that birthday.

                                                                Check the list of supported formulas below for detailed information about formulas that work with dates.

                                                                Formulas that refer to time fields

                                                                To calculate the time differences within a single day, you can use time fields with formatting (HH:mm).

                                                                For example, if A1 is the start time (HH:mm) and A2 is the end time (HH:MM), there are two ways to calculate the duration from time A1 to time A2 based on the total number of hours:

                                                                1. Use a time field A3 with formatting (HH:mm) by setting up the formula "A2-A1".

                                                                2. Use a numeric field A3 with formatting (0.0) by setting up the formula "(A2-A1)/60".


                                                                If your start and end times span different dates, you will need to use a date field with formatting that contains both time and date elements.

                                                                For example, if A1 is the start date and time (yyyy/MM/dd HH:mm) and A2 is the end date and time (yyyy/MM/dd HH:mm), you will need to use a numeric field for A3 with formatting (0.0) and the formula "(A2-A1)*24".

                                                                WORKDAY Function

                                                                Returns a number that represents a date that is the indicated number of working days before or after a date (the starting date). The WORKDAY function takes a date and returns the nearest working day in the future or past, based on an offset value you provide. Working days exclude weekends and, optionally, any dates specified as holidays, but include specified makeup workdays. Use WORKDAY to calculate invoice due dates, expected delivery times, total days of work performed, or whenever you need to take into account working and non-working days.

                                                                Formula Syntax
                                                                WORKDAY WORKDAY(start_date,days,["holidays"], ["makeup_workdays"])

                                                                Start_date Required. A date that represents the start date.

                                                                Days Required. The number of non-weekend and non-holiday days before or after start_date. A positive value for days yields a future date; a negative value yields a past date.

                                                                Holidays Optional. An optional list of one or more dates to exclude from the working calendar, such as government and floating holidays. It is recommended for users to simply enter date values, but optionally, an array constant of the serial numbers that represent the dates can also be used by advanced users. By default, "January 1, 1900" is serial number 1, and "January 1, 2008" is serial number 39448 because it is 39,448 days after January 1, 1900.

                                                                Makeup_workdays Optional. An optional list of one or more dates to include in the working calendar, such as a make-up workday on Saturday.

                                                                Example

                                                                Apply the formula "WORKDAY(A1,A2,["2017/06/16","2017/06/19"])" in a date field.

                                                                When A1 contains the value "2017/06/15", and A2 contains the value "9", the formula will use 2017/06/15 as the start date and calculate a date nine workdays in the future, excluding the identified holidays on 2017/06/16 and 2017/06/19.

                                                                The resulting date would be 2017/06/30.

                                                                WORKDAY.INTL Function

                                                                Returns the serial number of the date before or after a specified number of workdays with custom weekend parameters. Weekend parameters indicate which and how many days are weekend days. Weekend days and any days that are specified as holidays are not considered as workdays.

                                                                Formula Syntax
                                                                WORKDAY WORKDAY.INTL(start_date,days,[weekend_no],["holidays"], ["makeup_workdays"])

                                                                Start_date Required. A date that represents the start date.

                                                                Days Required. The number of non-weekend and non-holiday days before or after start_date. A positive value for days yields a future date; a negative value yields a past date.

                                                                Weekend_no Optional. If the weekend days are not on Saturday and Sunday, you can use a weekend number that specifies when weekends occur.

                                                                Holidays Optional. An optional list of one or more dates to exclude from the working calendar, such as government and floating holidays. It is recommended for users to simply enter date values, but optionally, an array constant of the serial numbers that represent the dates can also be used by advanced users. By default, "January 1, 1900" is serial number 1, and "January 1, 2008" is serial number 39448 because it is 39,448 days after January 1, 1900.

                                                                Makeup_workdays Optional. An optional list of one or more dates to include in the working calendar, such as a make-up workday on Saturday.

                                                                Example

                                                                Apply the formula "WORKDAY(A1,A2,2,["2017/06/16","2017/06/19"])" in a date field.

                                                                When A1 contains the value "2017/06/15", and A2 contains the value "9", the formula will use 2017/06/15 as the start date, take Sunday and Monday as the weekend, and calculate a date nine workdays in the future, excluding the identified holidays on 2017/06/16 and 2017/06/19.

                                                                The resulting date would be 2017/06/29.

                                                                NETWORKDAYS Function

                                                                Returns the number of whole working days between the start_date and end_date. Working days exclude weekends and any dates identified as holidays. Use NETWORKDAYS to calculate employee benefits that accrue based on the number of days worked during a specific term.

                                                                Formula Syntax
                                                                NETWORKDAYS NETWORKDAYS(start_date,end_date,["holidays"], ["makeup_workdays"])

                                                                Start_date Required. A date that represents the start date.

                                                                End_date Required. A date that represents the end date.

                                                                Holidays Optional. An optional range of one or more dates to exclude from the working calendar, such as government and floating holidays. It is recommended for users to simply enter date values, but optionally, an array constant of the serial numbers that represent the dates can also be used by advanced users as above.

                                                                Makeup_workdays Optional. An optional list of one or more dates to include in the working calendar, such as a make-up workday on Saturday.

                                                                Example

                                                                Apply the formula "NETWORKDAYS(E1,E2,['2017/10/04','2017/10/09','2017/10/10'])" in a numeric field.

                                                                When E1 contains the value "2017/10/01" and E2 contains the value "2017/10/31" and the dates "2017/10/04","2017/10/09" and "2017/10/10" are identified to be excluded.

                                                                The number of workdays between the start (2017/10/01) and end date (2017/10/31), with the three identified holidays as non-working days ("2017/10/04","2017/10/09", and "2017/10/10") excluded would be 19.

                                                                NETWORKDAYS.INTL Function

                                                                Returns the number of whole workdays between two dates using parameters to indicate which and how many days are weekend days. Weekend days and any days that are specified as holidays are not considered as workdays.

                                                                Formula Syntax
                                                                NETWORKDAYS.INTL NETWORKDAYS.INTL(start_date,end_date,[weekend_no],["holidays"], ["makeup_workdays"])

                                                                Start_date and End_date Required. The dates for which the difference is to be computed. The start_date can be earlier than, the same as, or later than the end_date.

                                                                Weekend_no Optional. If the weekend days are not on Saturday and Sunday, you can use a weekend number that specifies when weekends occur.

                                                                Holidays Optional. An optional set of one or more dates that are to be excluded from the working day calendar. Holidays shall be a date, or an array constant of the serial values that represent those dates as above. The ordering of dates or serial values in holidays can be arbitrary.

                                                                Makeup_workdays Optional. An optional list of one or more dates to include in the working calendar, such as a make-up workday on Saturday.

                                                                Example

                                                                Apply the formula "NETWORKDAYS.INTL(E1,E2,11,['2017/06/16'])" in a numeric field.

                                                                When E1 contains the value "2017/06/01" and E2 contains the value "2017/06/30", the 11 argument is used to specify the weekend as Sunday only, and the date "2017/06/16" is identified to be excluded, the formula subtracts 10 nonworking days (four Sundays, one Holiday) from the 30 days between 2017/06/01 and 2017/06/30.

                                                                The result is 25 days.

                                                                The following number values indicate the following weekend days:

                                                                Weekend number Weekend day(s)
                                                                1 or omitted Saturday, Sunday
                                                                2 Sunday, Monday
                                                                3 Monday, Tuesday
                                                                4 Tuesday, Wednesday
                                                                5 Wednesday, Thursday
                                                                6 Thursday, Friday
                                                                7 Friday, Sunday
                                                                11 Sunday only
                                                                12 Monday only
                                                                13 Tuesday only
                                                                14 Wednesday only
                                                                15 Thursday only
                                                                16 Friday only
                                                                17 Saturday only

                                                                List of Supported Formulas

                                                                Below is a short list of the supported formulas in Ragic. Please note that the following formulas are case-sensitive.

                                                                Formula Description
                                                                SUM(value) Returns the sum of (adds) all the field values. You can add individual values, field references or ranges, or a mix of all three. The call to SUM() is actually unnecessary, as it's equivalent to just "value".
                                                                AVG(value1, value2,...) Returns the average (arithmetic mean) of all the listed field values. Field values can either be numbers or names, ranges, or field references that contain numbers. Using the average function also works for subtables, but please note that the average of all field values that are being referenced will be added to the calculation.
                                                                AVERAGE(value1, value2,...) Returns the average (arithmetic mean) of all the listed field values. Field values can either be numbers or names, ranges, or field references that contain numbers. Using the average function also works for subtables, but please note that the average of all field values that are being referenced will be added to the calculation.
                                                                MIN(value) Returns the smallest number in a set of field values. Field values can either be numbers or names, arrays, or field references that contain numbers. Using the minimum function also works for subtables.
                                                                MAX(value) Returns the largest numeric value in a range of field values. Field values can either be numbers or names, arrays, or field references that contain numbers. Using the maximum function also works for subtables.
                                                                MODE.SNGL(value1,[value2],...) Returns the most common value in a range of field values. Field values can either be numbers or names, arrays, or field references that contain numbers. This function also works for subtables and global constants.
                                                                MODE.MULT(value1,[value2],...) Returns multiple most common values in a range of field values. Field values can either be numbers or names, arrays, or field references that contain numbers. This function also works for subtables and global constants.
                                                                ABS(value) Returns the absolute value of a number. The absolute value of a number is the number without its sign.
                                                                CEILING(value,[significance]) Rounds number up, away from zero, to the nearest multiple of significance. Significance is optional; if not specified, round up to the nearest integer. Example: CEILING(2.5) will return 3; CEILING(1.5, 0.1) will return 1.5.
                                                                FLOOR(value,[significance]) Rounds number down, toward zero, to the nearest multiple of significance. Significance is optional; if not specified, round down to the nearest integer. Example: FLOOR(2.5) will return 2; FLOOR(1.58, 0.1) will return 1.5.
                                                                ROUND(value) Rounds a number to the nearest integer.
                                                                ROUND(value,N) Rounds a number to N decimal place.
                                                                ROUNDUP(value,N) Rounds up a number (away from zero) to N decimal place.
                                                                ROUNDDOWN(value,N) Rounds down a number (toward zero) to N decimal place.
                                                                MROUND(number,N) Rounds a number to the nearest multiple of N
                                                                SQRT(value) Returns the square root of a number.
                                                                COUNT(value1,value2,...) Returns the total number of field values. Empty values will not be counted when referencing independent fields but will be counted when referencing subtable fields.
                                                                LEFT(value,length) Returns the first character or characters (from the left side) of a text string, based on the number of characters you specify.
                                                                RIGHT(value,length) Returns the last character or characters (from the right side) of a text string, based on the number of characters you specify.
                                                                MID(value,start,[length]) Extracts a given number of characters from the middle of a supplied text string. For the starting character, the first character on the referenced field will be specified as 0. For example, if the value on field A1 is ABCD, setting the formula as MID(A1,1,2) on another field will return BC.
                                                                FIND(find_text,within_text,[start_num]) Locates one text string within a second text string, and returns the number of the starting position of the first text string from the first character of the second text string.
                                                                LEN(value) Returns the number of characters in a text string.
                                                                TODAY() Returns the current date. In case of automatically daily recalculation, please replace TODAY() with TODAYTZ().
                                                                TODAYTZ() Returns the current date according to Company Local Time Zone in your Account Settings.
                                                                NOW() Returns the current date and time.
                                                                NOWTZ() Returns the current date and time according to Company Local Time Zone in your Account Settings.
                                                                EDATE(start_date, months) Returns the serial number that represents the date that is the indicated number of months before or after a specified date (the start_date). Use EDATE to calculate maturity dates or due dates that fall on the same day of the month as the date of issue. Both "start_date" and "months" are required, and the start_date needs to be a date field.
                                                                EOMONTH(start_date, months) Returns the serial number for the last day of the month that is a specified number of months before or after start_date. Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month. Both "start_date" and "months" are required, and the start_date needs to be a date field.
                                                                YEAR() Returns the year value of a date field
                                                                MONTH() Returns the month value of a date field
                                                                DAY() Returns the day value of a date field
                                                                DATE(year,month,day) Combines values in referenced numeric fields into a date. Please use four-digit years to prevent confusion.
                                                                WEEKDAY() Returns the day of the week, using numbers 1 (Sunday) through 7 (Saturday)
                                                                PI() Returns the number 3.14159265358979, the mathematical constant pi and the ratio of the circumference of a circle to its diameter, accurate to 15 digits.
                                                                RAND() Returns an evenly distributed random real number greater than or equal to 0 and less than 1. A new random real number is returned every time the worksheet is calculated.
                                                                UPPER(value)/TOUPPERCASE(value) Coverts all lowercase letters in a text string to uppercase without changing the original string.
                                                                LOWER(value)/TOLOWERCASE(value) Coverts all uppercase letters in a text string to lowercase without changing the original string.
                                                                PROPER(value) Capitalizes the first letter in a text string and any other letters in a text that follow any character other than a letter. Converts all other letters to lowercase letters.
                                                                SUBSTITUTE(text,old_text,new_text,[instance_num]) Substitutes new_text for old_text when you want to replace specific text in a text string.
                                                                TEXT() Formats a number or date value into a specified format. For details, click here.
                                                                POWER(value,power) Returns the result of a number value raised to a power.
                                                                MOD(value,divisor) Returns the remainder after a number value is divided by a divisor. The result has the same sign as the divisor.
                                                                GCD(value1,[value2],...) Returns the greatest common divisor of two or more integers. The greatest common divisor is the largest integer that divides the specified number values without a remainder.
                                                                LCM(value1,[value2],...) Returns the least common multiple of integers. The least common multiple is the smallest positive integer that is a multiple of all integer arguments value1, value2, and so on. Use LCM to add fractions with different denominators.
                                                                FIRST(value) Returns the first data point of the column in your subtable.
                                                                FIRSTA(value) Returns the first not data point that is not empty of the column in your subtable.
                                                                LAST(value) Returns the last data point of the column in your subtable.
                                                                LASTA(value) Returns the last data point that is not empty of the column in your subtable.
                                                                IF(value==condition,value_if_true,value_if_false) Returns one value if the condition evaluates to TRUE, or another value if the condition evaluates to FALSE. For details, click here.
                                                                IFS(value=condition1,value_if_true1,value=condition2,value_if_true2,...,true,default value) Check whether one or more conditions are met, and return a value that corresponds to the first TRUE condition. For details, click here.
                                                                LOOKUP(value,lookup_list,[result_list]) Searches for the value in a one-column or one-row range (lookup_list), and returns the corresponding value from another one-column or one-row range (result_list). For details, click here.
                                                                AND(logical1, [logical2], ...) Returns TRUE if all its conditions evaluate to TRUE; returns FALSE if one or more conditions evaluate to FALSE. For details, click here.
                                                                OR(logical1, [logical2], ...) Returns TRUE if any condition is TRUE; returns FALSE if all conditions are FALSE. For details, click here.
                                                                NOT(logical) Returns TRUE if the test condition is FALSE, and FALSE if the condition is TRUE. For details, click here.
                                                                COUNTIF(criteria_range,criteria) Returns the number of values in a range within a subtable field that meet a single specified criterion. For details, click here.
                                                                COUNTIFS(criteria_range1,criteria1,[criteria_range2,criteria2]...) Applies criteria to fields across multiple ranges and counts the number of times all criteria are met. For details, click here.
                                                                SUMIF(range,criteria,[sum_range]) Returns the sum of values in a range that meet a single specified criterion. For details, click here.
                                                                SUMIFS(sum_range,criteria_range1,criteria1,[criteria_range2, criteria2],...) Adds all arguments that meet specified criteria. For details, click here.
                                                                UPDATEIF(condition,value_if_true) Modifies a field value when at least one condition is met. For details, click here
                                                                REPT(value,number_times) Returns the repeated value a given number of times.
                                                                COUNTA(value) Counts the number of subtable rows that are not empty.
                                                                SUBTABLEROW(value,nth_row) Returns the targeted data of the column in your subtable, this can only be set in stand-alone fields.
                                                                RUNNINGBALANCE(value, [allow_backend_formula_recalculation=false]) Returns the sum of the values in this row and the previous row of the column in your subtable, used for calculating running balances. "Allow_backend_formula_recalculation=true" means allowing backend formula recalculation for this formula. To use this formula, your subtable records must be created with the correct order.
                                                                WORKDAY(start_date,days,["holidays"], ["makeup_workdays"]) Returns a number that represents a date that is the indicated number of working days before or after a given date. For details, click here
                                                                WORKDAY.INTL(start_date,days,[weekend_no],["holidays"], ["makeup_workdays"]) Returns the serial number of the date before or after a specified number of workdays with custom weekend parameters.For details, click here
                                                                NETWORKDAYS(start_date,end_date,["holidays"], ["makeup_workdays"]) Returns the number of whole working days between a start_date and an end_date. For details, click here.
                                                                NETWORKDAYS.INTL(start_date,end_date,[weekend_no],["holidays"], ["makeup_workdays"]) Returns the number of whole workdays between two dates using parameters to indicate which and how many days are weekend days. For details, click here.
                                                                CHAR(value) Returns a character when given a valid character code. For example, CHAR(10) returns a line break, and CHAR(32) returns a space.

                                                                LARGE(arg, nth, ["arg2"]) Refers to the subtable field(s) and checks the ordinal value of one column while returning the value of another column in the same row. The referenced field "arg2" needs to be in the same subtable as "arg". The formula will sort your entries in descending order in the backend and return the field value of the specified ordinal number.

                                                                UNIQUE() Lists the unique values of referenced subtable field. For details, click here.
                                                                UNIQUE().length Calculates the number of unique values of referenced subtable field. For details, click here
                                                                MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) Returns the maximum value among cells specified by a given set of conditions or criteria.
                                                                MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) Returns the minimum value among cells specified by a given set of conditions or criteria.
                                                                SPELLNUMBER(number, [lang]) You will see numbers that are written in words in some formal documents. For example, use "one hundred" instead of "100". You can use SPELLNUMBER formula if you need to see numbers in words in your sheets. For details, click here.
                                                                ISOWEEKNUM(date) Returns the number of the ISO week number of the year for a given date. Every week begins on Monday.
                                                                WEEKNUM(Date,[return_type]) Returns the week number of a specific date in that year, you can define which day the week begins. For details, click here.
                                                                DATEVALUE(date_text, date_format) Applied on date (time) fields where you can convert a referenced date of a free text field to a date (time) value. For this formula, "date_text" is the date in a free text field that you will be referencing, and "date_format" is the format of the referenced field with the date. For example, if A1 is a free text field with the value “2019/02/01” and you would like to convert it to a value on the date field, you can use the formula DATEVALUE(A1,"yyyy/MM/dd") on the date field to obtain the converted result.
                                                                HOUR() There are three ways to use this formula:

                                                                1. Setting the parameter as a numerical value between 0-1 will return the number of hours in regards to the proportion of 24 hours defined by the parameter. For example: HOUR(0.5)=12.

                                                                2. Setting the parameter as a date field will return the field’s hour value. For example, if field A9’s value is 2020/10/30 18:30:19, HOUR(A9)=18.

                                                                3. Setting the parameter as a date will return the hour value. For example, HOUR(“2020/10/13 17:35:22”)=17.

                                                                MINUTE() There are three ways to use this formula:

                                                                1. Setting the parameter as a numerical value between 0-1 will return the number of minutes in regards to the proportion of 60 minutes defined by the parameter. For example: MINUTE(0.5)=30

                                                                2. Setting the parameter as a date field will return the field’s minute value. For example, if field A9’s value is 2020/10/30 18:50:19, MINUTE(A9)=50.

                                                                3. Setting the parameter as a date will return the minute value. For example, MINUTE(“2020/10/13 17:35:22”)=35.

                                                                SECOND() There are three ways to use this formula:

                                                                1. Setting the parameter as a numerical value between 0-1 will return the number of seconds in regards to the proportion of 60 seconds defined by the parameter. For example: SECOND(0.5)=30

                                                                2. Setting the parameter as a date field will return the field’s second value. For example, if field A9’s value is 2020/10/30 18:50:19, SECOND(A9)=19.

                                                                3. Setting the parameter as a date will return the second value. For example, SECOND(“2020/10/13 17:35:22”)=22.

                                                                TIME(hour, minute, second) The decimal number returned by TIME is a value ranging from 0 (zero) to 0.99988426, representing the times from 0:00:00 (12:00:00 AM) to 23:59:59 (11:59:59 P.M.).

                                                                Hour: A number from 0 (zero) to 32767 representing the hour. Any value greater than 23 will be divided by 24 and the remainder will be treated as the hour value. For example, TIME(27,0,0) = TIME(3,0,0) = 0.125 or 3:00 AM.

                                                                Minute: A number from 0 to 32767 representing the minute. Any value greater than 59 will be converted to hours and minutes. For example, TIME(0,750,0) = TIME(12,30,0) = 0.520833 or 12:30 PM.

                                                                Second: A number from 0 to 32767 representing the second. Any value greater than 59 will be converted to hours, minutes, and seconds. For example, TIME(0,0,2000) = TIME(0,33,22) = 0.023148 or 12:33:20 AM

                                                                ISBLANK() Checks whether the referenced field is empty. For example, ISBLANK(A2) or IF(ISBLANK(A2), 'Y', 'N').

                                                                PMT(rate, nper, pv, [fv], [type]) Calculates the payment for a loan.

                                                                rate (Required): The interest rate.
                                                                nper (Required): The total number of payments for the loan
                                                                pv (Required): The present value or principal
                                                                fv (Optional): The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be 0, that is, the future value of a loan is 0.
                                                                type (Optional.): Fill 0 or omitted, if payments are due at the end of the period. Fill 1, If payments are due at the beginning of the period.

                                                                PRODUCT() Multiplies all the numerical values in referenced fields (neglecting empty and text values). You can also reference a subtable field to multiply all the numeric values of that field.

                                                                TRIM() Remove fullwidth and halfwidth spaces at the beginning and the end of a field value. And if there are multiple fullwidth and halfwidth spaces between texts, it will only keep the first space. Example: TRIM(" a c ") will get "a c".

                                                                INCLUDES_ALL(Multiple select/ image/ file upload field, value1, value2,...) If all the listed values (which can be of any field type or value) are contained in the options, returns true. For details click here.

                                                                NOT_INCLUDES_ALL(Multiple select/ image/ file upload field, value1, value2,...) If all the listed values (which can be of any field type or value) are not contained in any of the options, returns true, equivalent to the inverse of INCLUDES_ANY. For details click here.

                                                                INCLUDES_ANY(Multiple select/ image/ file upload field, value1, value2,...) If at least one of the listed values (which can be of any field type or value) is contained in any of the options, returns true. For details click here.

                                                                NOT_INCLUDES_ANY(Multiple select/ image/ file upload field, value1, value2,...) If none of the listed values (which can be of any field type or value) is contained in any of the options, returns true, equivalent to the inverse of INCLUDES_ALL. For details click here.

                                                                ITEMS_COUNT(Multiple select/ multiple image/ file upload field) Returns the number of values in a multiple select field. For example, if three options are selected in a multiple select field, returns 3; if there are two files in a file upload field, returns 2.

                                                                Formulas in Strings

                                                                A string formula is pretty straightforward: if the value on C1 is Michael, and C2 is Scott, then C1+' '+C2 will be "Michael Scott".

                                                                Further to the previous example, if you want to add a fixed string into your formulas, please mark the string with either single quotes or double quotes. For example, C1+" "+C2+" "+"Jr.". Then, the result would be "Michael Scott Jr.".

                                                                Note: If you want to represent "\" in a formula, it should be written as "\\".

                                                                Concatenating Text

                                                                As a more advanced example, we will create a field that will display an address in standard postal format for shipping purposes in the U.S.

                                                                Make sure you have all the fields that you need to display the information required.

                                                                Here we would like to have the field header Full Shipping Address display the title and name of the customer, with the shipping address written in the standard postal format. We add the following formula to the field settings:

                                                                A3+' '+A4+' '+D14+' '+D13+' '+D12+' '+D10+' '+D11

                                                                Now that the Full Shipping Address is displayed, we can use information from this field whenever we need a full address, for example when printing shipping labels.

                                                                Extracting Text before and after a specified character

                                                                You can use the combination of RIGHT() or LEFT() with the FIND() function to find a specific character and get the corresponding string values before and after this character.

                                                                In the example below, we will get the first and last name of a person, using the space character.

                                                                Our form design is quite simple, with Full Name as the field header A1.

                                                                Use LEFT(A1,FIND(" ",A1,1)) for the first name,

                                                                and RIGHT(A1,LEN(A1)-FIND(" ",A1,1)) for the last name. Notice that we're looking for the space character with the blank space in between quotation marks (" ") with FIND.

                                                                The output is the first name and last name that is extracted from the full name.

                                                                Conditional Formulas

                                                                Ragic supports the use of conditional formulas. Please be reminded that conditional formulas are case sensitive, and that changing the Field Type may affect the calculation results in some situations.

                                                                Note: These are the two circumstances in which you'll need to add ".RAW" to the referenced field upon assigning the IF() formulas:

                                                                1. When using the operator "=" to reference two fields that equal each other as the condition of the formula, and

                                                                2. When assigning the formula to a numeric field using the operator "=" to reference a string field that equals a fixed string value (which will return a numeric value as a result).

                                                                Nevertheless, when referring to only one numeric field that equals to a value, ".RAW" is not needed. For more details about .RAW, please refer to this section.

                                                                Date fields are calculated as days.

                                                                Conditional formulas can also be nested.

                                                                The IF Function

                                                                The IF function returns one value if a specified condition evaluates to TRUE, and another value if it evaluates to FALSE.

                                                                Formula Syntax
                                                                IF IF(value==condition,value_if_true,value_if_false)

                                                                Examples

                                                                Basic example: IF(A2==10,10,0)

                                                                If the value in the reference field A2 is equal to 10, the value in this field would be 10. For any other value of A2, the value of this field will be 0.

                                                                Having a string value as a result: IF(A1==1,'True','False')

                                                                If the value in the reference field A1 is equal to 1, the value in this field would be "True". For any other value of A1, the value of this field will be "False".

                                                                Practical usage: IF(A2>=60,'Yes','No')

                                                                If the age field is greater than or equal to 60, the value in this field "Qualifies for senior discount?" would be "Yes"; otherwise, the value would be "No".

                                                                Note

                                                                Usage of the older syntax of the IF function in Ragic is still supported.

                                                                Value=='condition'?'value_if_true':'value_if_false'

                                                                Basic Example: A1=='open'?'O':'C'

                                                                If A1 is open, give O. If not, give C.

                                                                When to add .RAW?

                                                                1.Referencing two fields that are equal to each other with the IF function

                                                                If you would like to reference two fields that are equal to each other with the operator "=" as the condition in conditional formulas, please add .RAW after the referenced fields.

                                                                Syntax
                                                                IF(field1.RAW=field2.RAW,value_if_true,value_if_false)

                                                                Examples

                                                                Basic Example1: IF(A1.RAW=A2.RAW,1,0)

                                                                If the value in the referenced field A1 equals the value in field A2, return 1, otherwise return 0.


                                                                Basic Example2: IF(A1.RAW=A2.RAW,'Open','Closed')

                                                                If the value in the referenced field A1 equals the value in field A2, return "Open", otherwise return "Closed".

                                                                2. Referencing a string field that equals a fixed string value as the condition with the IF function

                                                                Syntax
                                                                IF(string_field1.RAW="string",numeric_value_if_true,numeric_value_if_false)

                                                                Examples

                                                                Basic Example1: IF(A1.RAW="Yes",1,0)

                                                                If the value in the referenced string field A1 equals "Yes", return 1, otherwise return 0.


                                                                If you are referencing one numeric field that equals to a value with operator "=", ".RAW" is not needed.

                                                                Examples

                                                                IF(A1=1,'YES','NO')

                                                                If the value in the referenced field A1 equals 1, return "YES", otherwise return "NO".

                                                                3.Determining Whether a Field is Empty or Not

                                                                If you would like to use a formula to check whether a field is empty or not, your formula must add .RAW after the referenced field.

                                                                For example, if you would like to see if the field on cell A8 has an empty value, your formula would need to be like the following.

                                                                IF(A8.RAW='','TRUE','FALSE')

                                                                Note: Without adding .RAW to your referenced field on your formula, the numerical value “0” will also be considered as an empty value.

                                                                4. Referencing the numeric value of a free text field and returning it as a text string

                                                                For example, if the field on A1 is a free text field with the numeric value "10001", and the field on A2 is a linked field with a conditional formula set to reference and return A1's value "10001", the formula would need to be set as the following:

                                                                IF(A1!='', A1.RAW)

                                                                Retrieving text with the IF function

                                                                If you would like to retrieve text from referenced fields by using the functions LEFT(), RIGHT(), and MID(), please add +"" after the field you're referencing.

                                                                Example

                                                                IF(A1="Yes",A5,LEFT(A5+"",2))

                                                                If the value in the referenced field A1 is equal to "Yes", the value in this field would be the field value of A5. For any other value of A1, the value of this field will be the first 2 digits of A5.

                                                                Referencing TODAY() or NOW() with the IF function

                                                                Since the system does not support referencing the value of TODAY() or NOW() within an IF() formula directly, you'll need to create another field that references a field containing the value of TODAY() or NOW().

                                                                Example

                                                                If you want to compare the value of the date field A1 to TODAY(), you can create field A2 and configure it with TODAY(). Then, apply the formulas as below:

                                                                IF(A1>A2,"Valid","Expired")

                                                                If the value in the reference field A1 is larger than TODAY(), the value in this field would be "Valid". For a value that is smaller than TODAY(), the value of this field will be "Expired".

                                                                On the other hand, if you want to use the TODAY() formula or the field assigned the TODAY() formula as the referenced conditional field for calculations in IF() formulas, you can create field A2 for whole calculations as follows: A1-TODAY(). Then, apply the formula as below:

                                                                IF(A2>0,"Valid","Expired")

                                                                Please kindly note that the value of TODAY() or NOW() will not be auto-recalculated once the entries are saved. If it's necessary to recalculate the TODAY() or NOW() value, you'll need to Apply a daily workflow.

                                                                Date field with the IF function

                                                                1. Apply on the non-date field to compare the values of date fields

                                                                For example, A1 and A2 are date fields, applying TODAY() to A2. In A4, enter the formula: IF(A1>A2,"Yes","No")

                                                                2. Apply on numeric fields to execute addition or subtraction operation for date fields

                                                                For example, it's not supported to enter the formula IF(A1-1>A2,"Yes","No") in A4. You will need to create the other two numeric fields C1 and C2. In C1, enter the formual: A1-1. In C2, enter A2. In A4, change the formula to IF(C1>C2,"Yes","No").

                                                                The LOOKUP Function

                                                                The conditional process in formulas can also be done with the LOOKUP function, which is the equivalent of conditional processing.

                                                                Formula Syntax
                                                                LOOKUP LOOKUP(value,lookup_list,[result_list])

                                                                LOOKUP searches for the value in a one-column or one-row range (lookup_list) and returns the corresponding value from another one-column or one-row range (result_list).

                                                                value Required. The value to search for in the lookup_range.

                                                                lookup_list Required. An array like [0,100,500]. The LOOKUP function searches for a value in this list, which would need to be in ascending order.

                                                                result_list Optional. An array that is the same size as the lookup_range like ['Small','Medium','Large']. If the result_list parameter is omitted, the LOOKUP function will return the value in the lookup_list. If the LOOKUP function cannot find an exact match, it chooses the largest value in the lookup_range that is less than or equal to the value. If the value is smaller than all of the values in the lookup_range, the LOOKUP function will return an empty string.

                                                                Examples

                                                                Basic Example: LOOKUP(A1,[0,45,65],['Small','Medium','Large'])

                                                                The value would be 'Small' if the value of A1 is between 0 and 44, 'Medium' for 45~64, and 'Large' for greater than or equal to 65.

                                                                Referencing multiple fields: LOOKUP(A1,[0,45,65],[A3+A4,B5,B6])

                                                                The value would be A3+A4 if the value of A1 is between 0 and 44, B5 for 45~45, and B6 for greater than or equal to 65.

                                                                The AND Function

                                                                Returns TRUE if all test conditions evaluate to TRUE; returns FALSE if one or more conditions evaluate to FALSE.

                                                                Formula Syntax
                                                                AND AND(logical1, [logical2], ...)

                                                                The AND function syntax has the following arguments:

                                                                logical1 Required. The first test condition that can evaluate to either TRUE or FALSE.

                                                                logical2, ... Optional. Additional test conditions that can evaluate to either TRUE or FALSE or be arrays or references that contain logical values.

                                                                The OR Function

                                                                Returns TRUE if any test condition is TRUE; returns FALSE if all conditions are FALSE.

                                                                Formula Syntax
                                                                OR OR(logical1, [logical2], ...)

                                                                The OR function syntax has the following arguments:

                                                                logical1 Required. The first test condition that can evaluate to either TRUE or FALSE.

                                                                logical2, ... Optional. Additional test conditions that can evaluate to either TRUE or FALSE or be arrays or references that contain logical values.

                                                                The NOT Function

                                                                Returns TRUE if the test condition is FALSE, and FALSE if the condition is TRUE.

                                                                Formula Syntax
                                                                NOT NOT(logical)

                                                                Example

                                                                NOT(A2>10)

                                                                If the value in reference field A2 is less than or equal to 10, the system returns "true"; otherwise, it returns "false".

                                                                The COUNTIF Function

                                                                Use COUNTIF to count the number of rows in a subtable that met a specified criterion; for example, to count the number of times a particular item appears in a receipt.

                                                                Formula Syntax
                                                                COUNTIF COUNTIF(criteria_range,criteria)

                                                                The COUNTIF function syntax has the following arguments:

                                                                criteria_range Required. This range must be a subtable field to be checked for values that fit specified criteria.

                                                                criteria Required. A number, expression, reference to another field, or text string that determines which values will be included. For example, you can use a number like 8, a comparison like ">8", a field header like A4, or a word like "apple".

                                                                COUNTIF can only refer to a single subtable and can be set in stand-alone fields.

                                                                COUNTIF uses only a single criterion. Use COUNTIFS if you want to use multiple criteria.

                                                                Example:

                                                                The Formula COUNTIF(A4,'apple') entered into field A9 returns the number of rows that subtable column A4 contains for the product name apple.

                                                                The COUNTIFS Function

                                                                Formula Syntax
                                                                COUNTIFS COUNTIFS(criteria_range1,criteria1,[criteria_range2,criteria2]...)

                                                                The COUNTIFS function syntax has the following arguments:

                                                                criteria_range1 Required. This first range must be a subtable field to be checked for values that fit a set of specified criteria.

                                                                criteria1 Required. A number, expression, reference to another field, or text string that determines which values will be counted. For example, you can use a number like 8, a comparison like ">8", a field header like A4, or a word like "apple".

                                                                criteria_range2, criteria2,... Optional. Rows to be counted when additional criteria_ranges matches their associated criteria.

                                                                COUNTIFS can only refer to a single subtable and can be set in stand-alone fields.

                                                                The SUMIF Function

                                                                Use SUMIF to sum up the values stored in a specified subtable row that meet a single criterion; for example, to sum up the monetary value of a specific merchandise item when it appears in a receipt.

                                                                Formula Syntax
                                                                SUMIF SUMIF(range,criteria,[sum_range])

                                                                The SUMIF function syntax has the following arguments:

                                                                range Required. This range must be a subtable field to be checked for values that fit specified criteria.

                                                                criteria Required. A number, expression, reference to another field, or text string that determines which values will be added. For example, you can use a number like 8, a comparison like ">8", a field header like A4, or a word like "apple".

                                                                sum_range Optional. The actual fields to add, if you want to add values within subtable fields other than those specified in the range argument. If sum_range is omitted, only the fields that are specified in the range argument will be added (the same fields to which the criteria are applied).

                                                                SUMIF can only refer to a single subtable and can be set in stand-alone fields.

                                                                SUMIF uses only a single criterion. Use SUMIFS if you want to use multiple criteria.

                                                                Example:

                                                                The Formula SUMIF(A4,'apple',B4) that is entered into field A9 returns the sum of the values in subtable column B4, when subtable field header A4 is the product name apple.

                                                                  

                                                                The SUMIFS Function

                                                                Use SUMIFS to sum up the value stored in a specified subtable row that meets multiple criteria; for example, to sum up the monetary value of a number of specific merchandise items in specific store locations when it appears in a receipt.

                                                                Formula Syntax
                                                                SUMIFS SUMIFS(sum_range,criteria_range1,criteria1,criteria_range2, criteria2,...)

                                                                The SUMIFS function syntax has the following arguments:

                                                                sum_range Required. This range must be a subtable field to be checked for values that fit specified criteria.

                                                                criteria_range1 Required. criteria_range1 and criteria1 set up a search pair whereby a range is searched for specific criteria. Once items in the range are found, their corresponding values in sum_range are added.

                                                                criteria1 Required. The criteria that defines which cells in criteria_range1 will be added. This can be a number, expression, reference to another field, or text string that determines which values will be added. For example, you can use a number like 8, a comparison like " > 8", a subtable field header like A4, or a word like "apple".

                                                                criteria_range2,criteria2,... Optional. Additional ranges to be added and their associated criteria.

                                                                SUMIFS can only refer to a single subtable and can be set in stand-alone fields. In the case that you want to apply multiple criteria to a single field, for example, the sum of the A1 field is equal to A or equal to B, you need to use multiple SUMIF() instead of SUMIFS().

                                                                Example

                                                                The Formula SUMIFS(C11,B11," > A16",B11," < A17") in the field A18 returns sum of values subtable column C11 when order date (the value B11) is later than that A16 and earlier A17 field.

                                                                The UPDATEIF Function

                                                                Use UPDATEIF to retain the old value in the field if the condition is false. The value in a field where the UPDATEIF function is used should change only if the condition being tested by the UPDATEIF Function is true.

                                                                Formula Syntax
                                                                UPDATEIF UPDATEIF(condition,value_if_true)

                                                                Examples

                                                                Basic Example: UPDATEIF(A2==10,10)

                                                                If the value in the reference field A2 is equal to 10, the value in this field would be 10. For any other value of A2, the value of this field would remain unchanged from the previously saved version of the record.

                                                                Practical Example: UPDATEIF(A2=='Same as home address',A1)

                                                                If the value in field A2 is 'Same as home address', the value in the field "Shipping address" would be A1 (home address); otherwise, the value would remain empty.

                                                                Nesting Conditional Formulas

                                                                Conditional formulas can be nested when multiple conditions must be met.

                                                                Example:

                                                                IF(A1==1,'Bad',IF(A1==2,'Good',IF(A1==3,'Excellent','No Valid Score')))

                                                                The above formula means that:

                                                                if A1 is 1, the result is "Bad".

                                                                if A1 is 2, the result is "Good".

                                                                if A1 is 3, the result is "Excellent".

                                                                if A1 is anything else, the result would be "No Valid Score".

                                                                Example:

                                                                IF(

                                                                AND(A1.RAW=='YES',A2.RAW=='Jimmy'),

                                                                C3*C7,

                                                                IF(

                                                                AND(A1.RAW=='YES',A2.RAW=='John'),

                                                                C3*C8,

                                                                IF(

                                                                AND(A1.RAW=='YES',A2.RAW=='Jane'),

                                                                C3*C9,

                                                                C3*C10

                                                                )

                                                                )

                                                                )

                                                                The above formula means that

                                                                if A1 has the value "YES", and A2 has the value "Jimmy", the result is C3*C7.

                                                                if A1 has the value "YES", and A2 has the value "John", the result is C3*C8.

                                                                if A1 has the value "YES", and A2 has the value "Jane", the result is C3*C9.

                                                                if these conditions do not apply, then the result is C3*C10.

                                                                IFS()

                                                                In addition to the nested conditional formulas, you can also use IFS() to check whether one or more conditions are met, and return a value that corresponds to the first TRUE condition.

                                                                Formula Syntax
                                                                IFS() IFS(value=condition1,value_if_true1,value=condition2,value_if_true2,...,true,default value)

                                                                The IFS function syntax has the following arguments:

                                                                value=condition1 Required. The first condition evaluates to TRUE or FALSE.

                                                                value_if_true1 Required. Result to be returned if value=condition1 evaluates to TRUE.

                                                                value=condition2 Required. The second condition evaluates to TRUE or FALSE.

                                                                value_if_true2 Required. Result to be returned if value=condition2 evaluates to TRUE.

                                                                *You need to set at least two sets of conditions. You can apply more if needed.

                                                                true Optional. Please input "true" if you want to set the default value when none of the other conditions are met.

                                                                default value Optional. Result to be returned if none of the other conditions are met.

                                                                Example

                                                                IFS(A1=1,"Bad",A1=2,"Good",A1=3,"Excellent",true,"No Valid Score")

                                                                The above formula means that:

                                                                if A1 is 1, the result is "Bad".

                                                                if A1 is 2, the result is "Good".

                                                                if A1 is 3, the result is "Excellent".

                                                                if A1 is anything else, the result would be "No Valid Score".

                                                                Formula for Multiple Select Field

                                                                Formula Syntax
                                                                INCLUDES_ALL INCLUDES_ALL(Multiple select/ image/ file upload field, value1, value2,...)
                                                                NOT_INCLUDES_ALL NOT_INCLUDES_ALL(Multiple select/ image/ file upload field, value1, value2,...)
                                                                INCLUDES_ANY INCLUDES_ANY(Multiple select/ image/ file upload field, value1, value2,...)
                                                                NOT_INCLUDES_ANY NOT_INCLUDES_ANY(Multiple select/ image/ file upload field, value1, value2,...)
                                                                ITEMS_COUNT ITEMS_COUNT(Multiple select/ multiple image/ file upload field)

                                                                Using INCLUDES_ALL as an example, first apply INCLUDES_ALL(D1, A1, A2, B4) to D2.

                                                                A1 = Free text field, the field value is "A"

                                                                A2 = Multiple select field, the field values are B, C

                                                                B4 = Free text field in subtable with two records. The value in the first record is "D"; in the second record is "E"

                                                                D1 = Multiple select field, the field values are A, B, C, D, E

                                                                D2 will return "true".

                                                                Formula Recalculation

                                                                A calculation based on the formula you have entered will be done while you are first entering data into your database. This value is saved when you first save your entry.

                                                                By default, the values that are already saved in your database will not change when you change the formula while designing your sheet. This is because, in most cases, a previous calculation is still valid for older entries and should not be overwritten when you have updated the formula. A practical example would be calculating taxes after a tax hike; all previous entries would still need to reflect the older tax rate.

                                                                In some cases, you may need to recalculate a formula on all previous entries. To do so, you can choose to apply the formula change to all saved records, or, if you have modified more than one formula, apply all formulas on this sheet to all saved records.

                                                                If you frequently change a formula or apply TODAY(), you also have the option to add a script that will recalculate your formula every day. Please note that, when recalculating records exceeding 5000 through workflow, changes will not be included in entry history.

                                                                Triggering formula recalculation on parent or related sheets

                                                                To run a formula recalculation on related records on other sheets, go to Form Settings > Form Settings > Recalculate all formulas on parent or related sheets.

                                                                The definition of parent and related sheets

                                                                Parent Sheets:

                                                                In the above example, A and B are parent sheets of C.

                                                              4. The sheet which generates a new sheet from its subtable (sheet A) is the parent sheet of the new sheet (sheet C).
                                                              5. The sheet which shows references from existing sheets (sheet B) is also the parent sheet of the existing sheet (sheet C).
                                                              6. Related sheets:

                                                                B and C are related sheets of A; A and C are related sheets of B.

                                                              7. Two sheets are called related sheets if they share the same subtable and are not each other's multiple versions (sheet A and B).
                                                              8. Therefore, to sheets A and B, sheet C (which is generated from the subtable in sheet A) is their related sheet.
                                                              9. Note: The setting to recalculate all formulas on related sheets will be ignored if the number of records to be recalculated exceeds the system's limitation. Currently, the number of recalculated records is 1000.

                                                                The diagram below shows the design concepts and logic between parent sheets, child sheets, and related sheets.

                                                                Formulas in Description Fields

                                                                Formulas also work in Static Text Fields for display purposes only.

                                                                This is useful if you need to recalculate a formula each time your database form is loaded, but do not need to keep this value in your database. You will need to use the BBCode [formula] for your formula to work.

                                                                For example, let's say that you would like to view a person's age according to their birthday. The formula [formula](TODAY() - A1)/365.25[/formula] written in a description field would display the age of this person and will be recalculated according to the current day.

                                                                Math Objects supported in Ragic

                                                                About the Math Objects supported in Ragic, please refer to this page.

                                                                Suggest a Formula

                                                                If you need to use other unsupported formulas, please write to Ragic Support to suggest them.

                                                                1.8.1    Approval Formula

                                                                Using Formulas With Approval Fields

                                                                If your sheet has an approval flow, you can apply the formulas below to return certain values related to the approval process.

                                                                Currently, we support two types of approval formulas:

                                                                1. Related to the whole approval flow

                                                                Formula Description
                                                                APPROVAL.COUNT() Returns the number of approval steps
                                                                APPROVAL.STATUS() Returns approval status.

                                                                N: New

                                                                P: Processing

                                                                REJ: Rejected

                                                                F: Finish

                                                                APPROVAL.SUBMITDATE([true]) Returns the date and time an approval process is started. Supported in Date Fields. The [true] argument is optional, the time value will be displayed using UTC+0 timezone when applied. Otherwise, the time value will display using the account timezone. (Front-end recalculation will be based on browser timezone; Back-end recalculation will be based on company timezone)
                                                                APPROVAL.SUBMITTER() Returns the email address of the user who starts the approval process. Supported in Select User Fields.
                                                                APPROVAL.SUBMITTERNAME() Returns the name of the user who starts the approval process.
                                                                APPROVAL.FINISHDATE([true]) Returns the date and time an approval process ends. An approval ends when all of the approvers approve or when one of them rejects. Supported in Date Fields. The [true] argument is optional, the time value will be displayed using UTC+0 timezone when applied. Otherwise, the time value will be displayed using the account timezone. (Front-end recalculation will be based on browser timezone; Back-end recalculation will be based on company timezone)

                                                                2. Related to a certain step of approval flow

                                                                Formula Description
                                                                APPROVAL.CURRENTSTEPINDEX Returns the index value representing the next step in the approval process.

                                                                Index 0 means the approval process has not yet been started. Index 1 means the approval process has been started but no approver has approved yet. Whenever an approver approves, 1 will be added to the index. When the approval process ends (all approve/ 1 rejects/ canceled), the index returns to 0.

                                                                APPROVAL.STEP([stepIndex]) Uses index value to point to a certain step in the approval process. The [stepIndex] argument is optional, with its default argument being APPROVAL.CURRENTSTEPINDEX.

                                                                APPROVAL.STEP(-1) : Last step

                                                                APPROVAL.STEP() : Next step. Equivalent to APPROVAL.STEP(APPROVAL.CURRENTSTEPINDEX))

                                                                APPROVAL.STEP(0) : Incorrect usage

                                                                APPROVAL.STEP(1) : First step

                                                                APPROVAL.STEP(2) : Second step

                                                                APPROVAL.STEP([stepIndex]).NAME() Returns the name of this step.
                                                                APPROVAL.STEP([stepIndex]).STATUS() Returns the status of this step.

                                                                N: New

                                                                F: Finish

                                                                APPROVAL.STEP([stepIndex]).ISMULTI() Returns True if this step has multiple approvers.
                                                                APPROVAL.STEP([stepIndex]).THRESHOLD() Returns the threshold number of this step, or 1 if this step only has a single approver or no threshold was set.
                                                                APPROVAL.STEP([stepIndex]).USERS() Returns all approvers.

                                                                E.g., Jessica Jones|Nick Fury|Steve Rogers

                                                                Supported in Select Multiple Users Fields.

                                                                APPROVAL.STEP([stepIndex]).ACTIONDATE([email],[true])

                                                                Returns the approve or reject time of a specific approval step. The [true] argument is optional, the time value will be displayed using UTC+0 timezone when applied. Otherwise, the time value will be displayed using the account timezone. (Front-end recalculation will be based on browser timezone; Back-end recalculation will be based on company timezone)

                                                                This formula needs to be applied to a date field. Similar to the NOWTZ() and TODAYTZ() formula, the system will use the browser time zone when recalculating on the front end (entering the record’s editing mode) and use the time zone set in company settings when recalculating on the backend (Recalculations executed in the design mode, from related sheets, or by action buttons)

                                                                [email] is an optional argument. It can be an email string or a select user field. This argument allows you to get a specific user’s approval or a reject time in an approval step with multiple users.

                                                                One approver in an approval step

                                                                (No [email] argument needed)

                                                                Returns the approver’s approval or reject date and time.

                                                                Multiple approvers in an approval step:

                                                                If the [email] argument is not applied, the system will return the date and time when one approver has rejected this approval or when the step is completely approved (the number of approved approvers meets the approval threshold settings).

                                                                If the [email] argument is applied, the system will return the respective user’s approval or reject time.

                                                                (Note: The [email] argument in the formula is only applicable for approval steps created after 2021/07/13)

                                                                APPROVAL.STEP([stepIndex]).UNSIGNEDUSERS() Returns the approvers who haven't approved in this step. Supported in Select Multiple Users Fields.

                                                                APPROVAL.STEP([stepIndex]).SIGNEDUSERS() Returns the approvers who have already approved this step.

                                                                E.g., Jessica Jones|Nick Fury|Steve Rogers

                                                                Supported in Select Multiple Users Fields.

                                                                APPROVAL.STEP([stepIndex]).SIGNEDCOUNT() Returns the number of the approvers who have already approved this step.
                                                                APPROVAL.STEP([stepIndex]).SIG([email]) Returns the digital signature of the approver in this step. Please note that the [email] parameter of this formula should be enclosed in " ".

                                                                E.g., base64 image URL.

                                                                Supported in Upload Image Fields. The [email] argument can be an email address or a Select User Field.

                                                                Single approver:

                                                                The [email] argument is optional.

                                                                Returns the digital signature of the approver in this step.

                                                                Multiple approvers:

                                                                The [email] argument is required.

                                                                Returns the digital signature of a certain approver.

                                                                APPROVAL.STEP([stepIndex]).SIGIMG([email], [width], [height]) Returns the digital signature of the approver in this step in a predetermined image size. The [width] and [height] arguments are optional, with default values being 300px x 150px. This formula can be applied to field descriptions with BBCode [formula]. Please note that the [email] parameter of this formula should be enclosed in " ".
                                                                APPROVAL.STEP([stepIndex]).COMMENT([email]) Returns comments of the approver(s), or null if there is no comment.

                                                                Single approver:

                                                                The [email] argument is optional.

                                                                Returns the comment of the approver.

                                                                Multiple approvers:

                                                                The [email] argument is required.

                                                                Returns the comment of a certain approver.

                                                                APPROVAL.STEP([stepIndex]).COMMENTDATE([email], [true]) Returns the date and time left comments of the approver(s). The [true] argument is optional, the time value will be displayed using UTC+0 timezone when applied. Otherwise, the time value will be displayed using the account timezone. (Front-end recalculation will be based on browser timezone; Back-end recalculation will be based on company timezone)

                                                                Single approver:

                                                                The [email] argument is optional.

                                                                Returns the date and time the comment was left by the approver.

                                                                Multiple approvers:

                                                                The [email] argument is required.

                                                                Returns the date and time left the comment was left by a certain approver.

                                                                Formula Recalculation

                                                                A calculation based on the formula you have entered will be done while you are first entering data into your database. This value is saved when you first save your entry.

                                                                By default, the values that are already saved in your database will not change when you change the formula while designing your sheet. This is because, in most cases, a previous calculation is still valid for older entries and should not be overwritten when you have updated the formula. A practical example would be calculating taxes after a tax hike; all previous entries would still need to reflect the older tax rate.

                                                                In some cases, you may need to recalculate a formula on all previous entries. To do so, you can choose to apply the formula change to all saved records, or, if you have modified more than one formula, to apply all formulas on this sheet to all saved records.

                                                                If you frequently change a formula or a variable that is used in a formula, you also have the option to add a script that will recalculate your formula every day.

                                                                Timezone issue in approval formulas.

                                                                Please note that if your form has already started or completed the approval process, and you subsequently add a field using an approval formula related to return time on a form that already contains date values followed by selecting the option 'Display Using Browser’s Time Zone,' this may lead to the displayed time being adjusted based on your browser's timezone. Notable examples of approval formulas pertaining to time include APPROVAL.SUBMITDATE([true]) or APPROVAL.STEP([stepIndex]).ACTIONDATE([email],[true]).

                                                                Let's consider a scenario where you have already approved a form on August 1, 2023, at 12:00 PM. At that point, the approval time field was not set to 'Display Using Browser’s Time Zone,' and the time was recorded according to the 'company timezone.' Now, if you subsequently add a 'new approval time' field and enable 'Display Using Browser’s Time Zone,' the approval formula may initially return the value based on the 'company timezone' and then add the offset defined by 'Display Using Browser’s Time Zone' (e.g., UTC+8). This could result in the 'new approval time' field displaying a time that is 8 hours ahead, such as 8:00 PM on August 1, 2023.

                                                                Hence, if you encounter timezone disparities in the approval time, as explained previously, please deselect the 'Display Using Browser’s Time Zone' option for that field. This action will ensure that the form calculates the time based on the 'company timezone'.

                                                                Please be reminded that when you choose to select or deselect the 'Display Using Browser’s Time Zone' option, the system will display a warning indicating that your field's date data will be converted. Therefore, we recommend paying special attention to this setting and avoiding toggling it for fields that already contain date values.

                                                                1.9    Approval Flow Configuration

                                                                Tutorial Video

                                                                Configuring the Approval Process

                                                                You may configure the Approval process for your database sheets in Ragic for all users in your account.

                                                                Configure the approval flow of a form by going to Design Mode. You will see the icon in the lower right corner.

                                                                Hovering on this icon will display a dialogue box where you can configure the approval flow for the form.

                                                                This dialogue box can also be opened from the Form Tools menu.

                                                                From this box, you can add as many approval steps as you would like.

                                                                Set the Approver Title you wish to use for an approval step such as "Purchasing Manager", or "Project Manager". The Name field is where you will input the approver name for each approval step.

                                                                You may select an approver name from the Users in your account.

                                                                If an approver can be anyone from a certain user group in your account, you have the option to select a user group instead.

                                                                If the approver must be a user's direct supervisor, you can choose the option Direct Supervisor under the Company Organization Tree menu.

                                                                To set the approver to the user's supervisor's supervisor, you can choose the option Supervisor of Supervisor.

                                                                To include the supervisor of the specified user in the previous step of approval flow, you can choose the option Supervisor of Previous Approver.

                                                                You can also directly select approvers from Select User or Select Group field. As shown in the image below, for example, you can send an approval request to the corresponding Reviewing Officer (the designated approver in charge) of this record as an alternative to selecting someone from the Procurement Department (group) as an approver.

                                                                If you want to set non-users (such as clients and suppliers) as request approvers, you can choose "E-mail" field in the approval flow configuration. The approval request will then be sent to the email address entered in the record's Email field.

                                                                You may also rearrange the order of approval using drag and drop.

                                                                Please note that you will need to fill in the information in the system sheet User for the system to correctly identify user supervisors. If you can't see the Direct Supervisor field in your User sheet, please contact support@ragic.com for more information about how to update the default system sheets.

                                                                After you finish setting up the approval steps, don't forget to Save the changes made in Design Mode.

                                                                Add Approvers in This Step

                                                                By clicking on the gear icon located just on the right of the approver selection menu, you can add approvers in this step. By doing this, all the approvers in this step must approve this form to proceed to the next approval step.

                                                                Set a Threshold for Approval

                                                                After adding approvers in a step, you can also set a threshold for approval. For example, if there are three approvers on the first step of a record and you set its threshold for approval as 2, this record will proceed to the next approval step after two users on the first step have approved it.

                                                                If you would like all members of one or more groups to approve a record, you would need to set at least two approvers in an approval step, which you can then set its threshold for approval.

                                                                For example, if the HR user group has four users and you would like all four users to approve before proceeding to the next step, you can set the HR user group or anyone in the HR user group in the approval step. After that, you’ll be able to see the threshold for approval, which you can then set as 4.

                                                                Advanced Settings

                                                                Below are some additional settings you can configure for your approval flow:

                                                                Strict identity verification: Verify user identification when approval is pending. You may have to set this option to comply with local laws, for example, FDA 21 CFR Part 11.

                                                                Allow users to reject approval: Users will be able to reject the approval.

                                                                Allow returning to the previous approval step after rejecting: Whether to permit rolling back to the previous step after rejection. When it is not enabled, rejecting will cancel the entire approval process.

                                                                Lock record when approval starts: The record will be locked once the approval process starts.

                                                                Start approval after saving a new record: The approval process will only start if one record meets all the following criteria:

                                                                1. No manual selection of approvers is required in any approval step.

                                                                2. Created by internal users.

                                                                Approve with handwritten signature: Users will see a handwritten signature window when approving.

                                                                Only notify the approval starter when approval is completed: This setting will not affect the users selected in "Notify these users when approval is completed".

                                                                Disallow canceling completed approvals: Once configured, "Cancel approval" option is no longer available when approval is completed, and the system will use the authority of last approver to execute the action button, so please make sure the user who approves the last step does have access to execute this action button to make sure it will be auto-executed.

                                                                Disallow approval starter from cancelling ongoing approval process: By default, only the approval starter, SYSadmins can cancel the ongoing approval process. If you want to disallow the approval starter from canceling the ongoing approval, please enable this setting. Note: Enabling this setting overrides all access rights settings, including Feature Access Settings. The approval starter cannot cancel the approval in this sheet, whether they are a SYSadmin or part of a group with "Cancel Approval" permission.

                                                                No reasons needed

                                                                Allow approval to start when no approval steps meet their respective rules: Allow approval to start when no approval steps meet their respective rules and let users to decide whether to regard as approved.

                                                                Notify approvers again if no approval actions: When no approvers have completed an approval step in a specified number of days, the system will automatically notify all approvers in this step again.

                                                                Notify these users when approval is completed: You can notify any user or user group.

                                                                Execute these action buttons after completing approval: The supported action buttons include custom action buttons, apply all formulas, lock record, unlock record, and link & load sync. The system will automatically execute these action buttons no matter if the last approval has the access rights to execute the buttons or not. If action buttons are configured to be executed following the completion of an approval flow, then the approval flow cannot be canceled after it is finished.

                                                                Setting up Rules for the Approval Flow

                                                                You can create rules to skip approval steps according to the values in

                                                                the record. Click Set rules under the Gear Icon.

                                                                For example, you can create a rule stating that only orders totaling more than $1000 require sales manager approval.

                                                                Otherwise, the approval process will skip that step.

                                                                Adding approval related fields

                                                                After adding an approval flow on your sheet, you can use the listing page field picker to add approval-related fields on the listing page.

                                                                If you add these fields on the listing page, they will be automatically added on the bottom of the form page and set as hidden by default.

                                                                Alternatively, you may manually create fields and apply approval formulas to populate approval-related values. For example, if you would like to populate the status of the approval flow, you may create a free text field apply the following formula.

                                                                APPROVAL.STATUS()

                                                                After saving the sheet’s design, you will need to execute formula recalculation to populate the approval status of existing records.

                                                                Note: If you use this formula to populate the status of your approval flow, the system will populate their respective system values, such as “F” means approved and “REJ” means rejected. If you want to convert these system values to text, you may refer to this document.

                                                                Using the Approval Flow

                                                                The approval steps you have set for the form will show up in all user entries. Once an entry is saved, clicking the Start Approval button will begin the approval process. Only the user who has sufficient access right can start approval for the entry - the SYSAdmin of the database, users with Admin access right to the sheet, or users who are the "entry managers" (the entry creator or users who have been assigned to the entry) with Bulletin User or Survey User access right to the sheet.

                                                                You may refer to this guide for further information on how to use the Approval Flow function in Ragic.

                                                                Change approvers

                                                                To change approvers, SYSAdmins can click the + icon and select Change approvers.

                                                                Deputy Approval

                                                                You can assign a deputy user for users in your system sheet User so that the deputy has permission to approve or reject approval requests during the user's absence. For detailed information, you may refer to this article.

                                                                To maintain approval flow when you are on leave, make sure to tick the Notify Deputy checkbox so that your deputy will receive approval request notifications and Emails to assist with the matter on your behalf. About Personal Settings, please refer to this page.

                                                                Please note that you will need to fill in the information in the User system sheet so that the system can identify the deputies for each user. If you can't see the Deputy field in your User sheet, please contact support@ragic.com for more information about how to update the default system sheets.

                                                                1.10    Sheet and Field Version History

                                                                Sheet and Field Version History

                                                                Previous Versions

                                                                History Analyzer

                                                                Field Info

                                                                Previous versions

                                                                In case you mistakenly changed something in your form design, or simply prefer the previous design to the current one, you can always revert it to the previous design that was saved earlier.

                                                                Under the Design Mode, you will see the Previous Versions button in the upper right corner.

                                                                You'll be able to view all previously saved design versions in the menu. After you select one of the versions to restore, click "Restore" to view its design.

                                                                If you are certain to use the chosen version, save the form design for it to take effect.

                                                                Note: the chosen previous version will be restored only if you click the "Save" button. Therefore, even though you click on the wrong version, your form design won't be saved immediately.

                                                                Important: it is suggested to save design periodically when working on a form design.

                                                                If you make a lot of changes in a version and wish to undo the design, you can exit the Design Mode without saving the changes (since manually changing the design back is more time-consuming).

                                                                History Analyzer

                                                                If you would like to check major design changes between each design version, you can use the History Analyzer, which can be found by clicking the graph icon within the Previous Versions menu.

                                                                In the History Analyzer, the details for each design version, such as new fields that were added or modified field types will be shown.

                                                                Please note that only significant design changes will be shown in the History Analyzer, such as formula, field name, field types, etc.

                                                                Field Info

                                                                You can obtain information about the field's configuration and its design change history in all versions in field info by right-clicking on any field in editing or design mode.

                                                                When opened field info on the Listing Page, it will display the settings and change history of the field on the Listing Page.

                                                                When opened field info on the Form Page, it will display the settings and change history of the field on the Form Page.

                                                                2.1    Internal Users

                                                                Managing Users in your Account

                                                                You can manage your users from your Account Setup in Ragic.

                                                                To access the user management menu, you can hover over your user name in the top-right corner of your account and select Users under Account.

                                                                Alternatively, you can click the hamburger icon on the upper-left of the page, and select Manage Users under User Access.

                                                                This user management menu will show you a list of all the users in your account.

                                                                Adding New Users

                                                                You can add a new user by clicking on the +New button and entering their user information. When the user information is saved, Ragic will automatically send an e-mail to the new user containing their temporary password to log into the system. The user can then change their password when they log on to Ragic.

                                                                Resend Invitation

                                                                If you would like to resend the invitation, you can click on the Resend invitation button.

                                                                Custom E-mail

                                                                You can customize the subject and the content of your e-mail notification when adding new users by clicking on Custom Email.

                                                                In the pop-up window, you can design the e-mail template using HTML formatting and use variables. Check all supported variables here.

                                                                You can click on which will show you a demo of what the custom e-mail looks like. If you decide to use our standard template instead, click on will discard all the changes you've made.

                                                                Furthermore, you may also attach a URL, Excel, PDF, or mail merge file of the record; or other attachments.

                                                                After completing the template, you can simply click on the Re-send invitation e-mail button and it will send a new invitation e-mail with your adjusted template to the selected user.

                                                                If you wish to use this template for all future invitations, please click "Save as email template". Please kindly note that the e-mail template will be applied when you add new internal users or external users.

                                                                User Page

                                                                When you save a user, this user will have the information you entered shown on a user page in the system. You can change the design of this page if you need additional information about your users, but please make sure that you do not move or delete any of the default fields.

                                                                Resetting the Password for a User

                                                                If, for any reason, you would need to reset a user's password, go to the user page of this user and click on the "Reset Password" button in the Actions menu on the lower right side.

                                                                If you have already set a default password for your company, the password will be reset to this default, and upon logging in, the user will be prompted to create a new password for their account. If you haven't set a default password, the password will be 0000.

                                                                Changing e-mail for a user

                                                                In case you would like to change the login e-mail address of a user, as a SYSAdmin you may click on the "Change E-mail" action button from the Actions panel within the corresponding user's page. This action button will directly change the E-mail value of the user.

                                                                Input the updated e-mail address in the pop-up window. When the e-mail is confirmed, Ragic will automatically send an e-mail to the updated address containing the user's temporary password to log into the system. The user may then change their password when they log on to Ragic.

                                                                Entry Owner Transfer

                                                                When a user resigns or is transferred to another department/position, you can also transfer the user's entry access rights (such as entries where the user was an entry manager, bulletin user, or survey user, as well as the entries previously assigned , and approvals previously submitted to him/her) to another user via the Entry Owner Transfer action button.

                                                                Click the button and choose to which user you'd like to transfer the access right (note: you cannot transfer entry access right to external users).

                                                                Note: After transferring the access right, the user will no longer have access to the entries he/ she previously had.

                                                                User Privileges

                                                                When you are adding a new user to your account, think of what privileges you would like to grant for specific users, depending on the sheets you have created, and add them to the appropriate user groups. This can be configured from the user page under the field "Ragic Groups". You can set the access rights to each sheet for different user groups. By adding your users to the correct user groups, and setting up access rights on each sheet, you will ensure what each user has access to. If a user is in multiple groups, they will access the form with the group that grants them the most privilege.

                                                                User Suspension

                                                                Suspended users will not be able to access your account. This is an ideal action to do when an employee leaves your company, but you still need to retain their account information. Deleting a user from the user list is not recommended since it would erase his/her account information from your database.

                                                                When suspending or deleting users, the system will automatically decrease the subscription user number. However, if decreasing the number of users will make the subscription fee even higher due to becoming ineligible for volume discounts, the system won't automatically update the subscription user number. For mass deleting, the message will display in the lower-left corner.

                                                                User Identification Value Provided by IDP

                                                                Ragic SSO uses SAML 2.0 protocol. When your SSO authentication account is different from your E-mail, you will need to fill in the User identification value provided by IDP field (please contact support if you don't have this field). If your Ragic account E-mail is "support@ragic.com", but your login name is "ragic/support". You should enter "ragic/support" in this field to successfully pass the authentication process.

                                                                2.1.1    User Card

                                                                When the cursor hovers over the select user field, user avatars in comments, user avatars in tasks, and @mentioned users, the basic information of the respective users will be displayed. It includes user's name, email, phone/extension/mobile, online status, photo, job title, and department.

                                                                Note: External users cannot see user cards, so there is no need to worry about data leakage.

                                                                This information comes from the user page.

                                                                2.2    Access Rights

                                                                Levels of Access Rights

                                                                The Access Rights to your sheet determines the group of users that can view, modify, and add to the data on your database sheet.

                                                                Here is a comparative table for each of these assigned rights can do:

                                                                Setting View Create Modify Description Level
                                                                No Rights Nothing No No Will not be able to see this sheet at all.
                                                                Survey User Entries created by yourself or assigned to you Yes Entries created by yourself or assigned to you Will be able to create, view and edit their own entries, won't be able to see other entries. Additional "no create" or "no edit" options can be set. **
                                                                Viewer All entries No No Will be able to view all entries and entry details, won't be able to edit or create new entries. ***
                                                                Bulletin User All entries Yes Entries created by yourself or assigned to you Will be able to create and edit their own entries, and view all other entries. Won't be able to edit entries that they don't own. Additional "no create" or "no edit" options can be set. ****
                                                                Admin All entries Yes All entries Will be able to create, edit, and view all entries in the sheet. *****

                                                                Having different access rights are useful for different user groups to see different versions of the same sheet. You can create multiple versions of the same sheet, and assign different rights to each version.

                                                                You can create your own user groups if necessary.

                                                                By default, the account owner is granted SYSAdmin rights, which is slightly different from the access rights in the table above, as a system administrator has access to change the design of all the forms. To give other users this privilege, you will have to add them to the SYSAdmin group in their user page under Ragic Groups. Alternatively, you can also assign users to become SYSAdmin for certain tabs.

                                                                Global Access Rights Panel

                                                                You can configure the access right settings for each user group by clicking the hamburger icon on the upper-left of the page, and select Access Rights under User Access.

                                                                If a user is in multiple groups, they will access the form with the group that grants them the most privilege.

                                                                Exceptional case: If an "internal user" is in multiple groups with Survey User access right (can create and edit their own entries, can't see other entries) and Viewer access right (cannot create entries, but they can view all entries), system will grant the user the Bulletin User access right (can create and view all entries, and can only edit their own entries) automatically.

                                                                If a user still cannot see the data after you grant them the privilege, ask them to log out and log back in to refresh their access right settings.

                                                                Setting up Access Rights for Individual Sheets

                                                                You can change the access right settings on your sheet by going to the Design Mode. You will find the Access Rights tab under Form Settings.

                                                                All of the user groups in your account will be listed here, as well as an additional group Everyone, which represents everyone, including the users who haven't logged in, or individuals who are not a user in your account.

                                                                You can set the access rights for every group of users listed here for this sheet. The access privileges that are being set is specified on the configuration interface. If a user is in multiple groups, they will access the form with the group that grants them the most privilege.

                                                                Remember to save the form design after you change the access right settings. You do not need to set this to both listing page and form page, the access right is applied to all pages of a sheet.

                                                                If a user still cannot see the data after you grant them the privilege, ask them to log out and log back in to refresh their access right settings.

                                                                Set Individual User Access Rights

                                                                Below the access rights setting for individual sheet, you can find Set Individual User Access Right.

                                                                Clicking on it allows you to select users from the drop-down menu and set access right for them.

                                                                You can click Set Individual User Access Right again to add a new set of users. However, the same user cannot be repeatedly selected and assigned different access right.

                                                                Field Level Access Rights

                                                                You can configure access rights for each field, in Access Rights under Field Settings.

                                                                There are three level of access rights:

                                                                Access rights level Description
                                                                Not Configured No effect.
                                                                No Rights The field will be hidden.
                                                                Viewer The field will be read-only.

                                                                This setting only applies to user groups that already have sheet access rights.

                                                                Example

                                                                Example 1: The "Sales" group has Admin access rights in the "Product Information" sheet, and the field level access rights for the "Cost" field are set to either No Rights or Read Only. This means that users in "Sales" group can view and edit all records in the sheet, but the "Cost" field in all records will be either hidden or read-only based on the specified configuration.

                                                                Example 2: The "Sales" group has No Rights in the "Employee Management" sheet, and the field level access rights for the "E-mail" field are set to Read Only. This configuration is invalid, as users in the "Sales" group cannot access the sheet. Even if field access rights are configured, they will have no effect.

                                                                Related Features

                                                                Feature Description
                                                                E-mail Notification Following the least access rights privilege, any field set to No Rights or Read-only will not be displayed in the email.
                                                                Including: Add or edit record, Approval, E-mail this entry, Sending mass e-mail, User invitation, Shared view notification, Entry review, Guest user e-mail validation, Reminder, Send custom e-mail.
                                                                Entry Information The field's Entry Information will be hidden according to the configuration.
                                                                Export (Excel, CSV, PDF, Printer Friendly) The fields will be hidden according to the configuration.
                                                                Form Page and Listing Page (including app) The fields will be hidden or read-only according to the configuration.
                                                                Conditional Formatting Field access rights take precedence over conditional formatting: Fields with No Rights setting will not be displayed by conditional formatting.

                                                                Additional Access Rights Settings

                                                                Additional access rights settings can be set for user groups that have the "Bulletin User" or "Survey User" access rights for a more fine-tuned control from the Access Rights tab in your design mode.

                                                                The "No create" and "No edit" checkboxes will be displayed when a user group is set to either "Bulletin User" or "Survey User".

                                                                You can configure in global access rights panel.

                                                                You can also adjust additional access right in design mode.

                                                                Below are the edited settings if options are selected:

                                                                Setting Additional Settings View Create Modify Description
                                                                Survey User No create Own entries No Own entries Will be able to edit their own entries, won't be able to see other users entries or create new entries.
                                                                Survey User No edit Own entries Yes No Will be able to create new entries, won't be able to edit previous entries or see other users entries.
                                                                Survey User No create, No edit Own entries No No Will be able to view previously created or assigned entries, but won't be able to edit them or create new entries.
                                                                Bulletin User No create All entries No Own entries Will be able to edit their own entries, and view all other entries. Won't be able to edit entries that they don't own, or create new entries.
                                                                Bulletin User No edit All entries Yes No Will be able to create their own entries, and view all other entries. Won't be able to edit entries.
                                                                Bulletin User No create, No edit All entries No No Will be able to view all other entries. Won't be able to edit entries or create new entries.

                                                                Video Tutorial

                                                                2.3    User Groups

                                                                What are User Groups?

                                                                By adding users to different user groups, and setting up access rights on each sheet, you can manage the level of access - viewing, creating, or modifying entries - each user group has on each sheet.

                                                                Add or Modify User Groups Through your Account Setup

                                                                You can add new user groups by clicking the hamburger icon on the upper-left of the page, and select Groups under User Access.

                                                                You can then add or edit user groups in this sheet.

                                                                Note:

                                                                1. Please do not modify any system default group names.

                                                                2. Group names must not be duplicated (even in different letter cases).

                                                                3. Group names cannot contain "&", ",", or "=".

                                                                Group Administrator and Tabs

                                                                Group Administrator:Group administrators can create, update, and suspend users in the user group. They can also add sheets to a Group Tab or make design changes to the sheets under a Group Tab.

                                                                Group Tabs:To add a tab as Group Tab, enter the tab's URL slug in the Group Tabs field (e.g. /forms1, as it appears in the last part of the tab’s URL). Separate each tab by commas when there are multiple tabs.

                                                                When the user has been assigned or removed as group administrator, he/she will receive notification mail.

                                                                Add user groups under Design Mode

                                                                You can quickly add a new user group under Design Mode while you are setting up access rights. Go to Form Settings > Access Rights, and click on "Add User Group" under the list of existing user groups.

                                                                2.4    Assigning Entries

                                                                Why Assign Entries?

                                                                Sometimes you need to assign specific entries to specific users. In this case the "Select User" field type is helpful. Entries are typically managed by the entry creator who can edit an entry after the entry is created.

                                                                On the other hand, if the user normally does not have the necessary access rights to view records in one sheet, and you have to grant them access, you can use the Set selected user as entry manager attribute.

                                                                Setting Up the Field to Assign Entry

                                                                If you would like to assign an entry to a user, you must first create a Select User field type in the sheet.

                                                                Check Set selected user as entry manager, and if you would like to assign the entry to multiple users, check Multiple select. If the user or users must be part of a specific group, you can click on All Users drop down menu to select the group.

                                                                After you have completed the settings, while editing records, your users can select the user they would like to assign to from the drop-down menu on that field.

                                                                Assign Entry to a Group

                                                                You can also assign an entry to the users in a user group, with the Select Group field type. This lists the groups of your account to choose from.

                                                                Check Set selected group as entry manager, all users in the group selected will have the same access right as the person who created this entry. And you can also Notify users in assigned group if needed.

                                                                Now with the settings completed, when editing records, users can select the user groups they would like to assign to on that field.

                                                                Assigning for Different Levels of Access Rights

                                                                If the access rights for your sheet is set to "survey user", when you set a selected user as the owner of an entry, they can see and edit this entry even if they aren't the creator.

                                                                If the access rights for your sheet is set to "bulletin user", when you set a selected user as the owner of an entry, they can edit this entry even if they aren't the creator.

                                                                Revoking the Assignment

                                                                This right can be revoked when the user or user group is removed from the field that sets the user as an entry owner.

                                                                View All Entry Managers

                                                                Viewing all the users that can manage an entry can be done from the info panel in the bottom.

                                                                2.5    Entry Review

                                                                What is entry review?

                                                                Sometimes you might need to assign specific users to review specific entries. In this case, the "Reviewer" field type is helpful. Reviewers can be any user in your account, or further configured to be users that belong in specific user groups.

                                                                Ragic will detect when the entry is reviewed by the assigned reviewer and mark the Reviewer field accordingly.

                                                                Setting an entry to be reviewed

                                                                To create a "Reviewer" field, simply select the "Reviewer" option from the dropdown menu under Field Types in the Design Mode while creating your field.

                                                                You can alternatively create a Select User field, and select the option Invite user to review this record.

                                                                By default, all users who have access to this sheet will be shown as a reviewer. You can further configure a user group if appropriate.

                                                                You can also set multiple users to be reviewers by checking the Multiple select option.

                                                                Inviting a user to review an entry

                                                                While filling out your form, select a user (or multiple users if available) from the dropdown in the Reviewer field. Upon saving, Ragic will e-mail the reviewer(s), prompting them to review this entry. Once the review e-mail is sent, the reviewer(s) will also receive a notification in the task icon.

                                                                If you would like to customize the e-mail that is sent to the reviewer(s), please refer to this article.

                                                                Ragic will display a gray check mark icon next to the username, and upon hovering on this cell, a timestamp will state when this user is notified while this entry is still unread by this user.

                                                                Reviewing an entry

                                                                When reviewing an entry, all you have to do is to view this entry in the notification e-mail sent to you, or by navigating to the actual entry in Ragic. The task box will be checked automatically either you viewing it in the notification e-mail or in the form page.

                                                                Ragic will display a green check mark icon next to the username of the reviewer, and upon hovering on this cell, a timestamp will state when this user was notified, and when this user has viewed this entry.

                                                                Custom E-mail template

                                                                You can customize the subject and the content of your e-mail notification.

                                                                In the pop-up window, you can design the e-mail template using HTML formatting and variables. Check all supported variables here.

                                                                You can click on which will show you a demo of how the custom e-mail looks like. If you decide to use our standard template instead, click on will discard all the changes you've made.

                                                                Furthermore, you may also attach the URL, Excel, PDF, mail merge file of the record, or other attachments. If you attach the URL of the record, please make sure that the reviewers have access rights to the entry. Otherwise, they'll still receive the review invitation email and task, but will not be able to access the entry when clicking on the entry URL.

                                                                Once the editing is completed, remember to save before you exit the pop-up window.

                                                                2.6    External Users

                                                                What are External Users?

                                                                External users can be clients, vendors, partners, freelancers or other people who are not in your organization, but would like to access your Ragic account. Ragic allows an unlimited number of free External Users in your account.

                                                                External users can log on and access your Ragic account just like any other users, but with just a few restrictions:

                                                                1. They can only be Survey User or Viewer on a Ragic sheet. Meaning that they can only either see and edit records that are assigned to them, or have read-only access to all the records on a sheet. These two are typical use cases for people outside of your organization.
                                                                2. They do not have access to certain functions inside the Tools or Reports button. These buttons are generally for internal users to manage and analyze your data.
                                                                3. They cannot submit a record for approval. But they can approve or reject a record if they are included in an approval flow.

                                                                Important note: If your account was created before Fall 2015, please view this documentation on managing your external users.

                                                                Enabling External Users in your Account

                                                                To enable the external user function in your account, click the hamburger icon on the upper-left of the page, and select External Users under User Access.

                                                                Fill the form to submit your application to enable external users in your account for the Ragic team to review.

                                                                Once your application is approved, you will have access to the external user management panel that will display external users in your account.

                                                                User Groups for External Users

                                                                External users can only belong to user groups with names that begin with X-, such as X-User. You can add your own user groups with names that begin with an X-, such as X-Vendors or X-Partners. The X- prefix specifies that this user group is an external user group. The system default group for external users is X-User, which will include all your external users.

                                                                By adding your users into the correct user groups, and setting up access rights on each sheet, you will ensure what each user has access to. If a user is in multiple groups, they will access the form with the group that grants them the most privilege.

                                                                By default, the user group X-User is set to "No Rights", therefore Ragic may prompt you to add access rights to your external users from the Global Access Rights Panel if you haven't configured access rights in your sheets yet.

                                                                External User Privileges

                                                                External users can only be assigned with the following access rights:

                                                                Access Right Setting Description View Create Modify
                                                                No Rights The user group will not be able to see this sheet at all. Nothing No No
                                                                Survey User The user group will be able to create and edit their own entries, and won't be able to see other entries. Own entries Yes Own entries
                                                                Viewer The user group will be able to view all entries and entry details, but won't be able to edit or create new entries. All entries No No

                                                                If you would like your users to have more privileges in your account, you can add them as internal users.

                                                                Adding External Users to your Account

                                                                After your application to add external users is approved by the Ragic staff, you will be able to add new external users to your account from your Account Setup under the External Users menu by clicking on the +New button, or by importing to your database under the Tools menu.

                                                                This information will be saved for each external user you add in their profile.

                                                                These users will be notified with the e-mail you have provided, and will be able to access your Ragic account with the access rights that you have assigned to their user group.

                                                                You can make modifications to the external user form, as long as you don't edit the default fields.

                                                                Custom E-mail

                                                                You can customize the subject and the content of your e-mail notification when adding new users by clicking on Custom Email action button.

                                                                In the pop-up window, you can design the e-mail template using HTML formatting and use the variables. Check all supported variables here.

                                                                You can click on which will show you a demo on how the custom e-mail looks like. If you decide to use our standard template instead, click on will discard all the changes you've made.

                                                                Furthermore, you may also attach URL, Excel, PDF, or mail merge file of the record; or other attachments.

                                                                If you wish to use this template for all future invitations, please click "Save as email template".

                                                                External Users Requesting Access to your Account

                                                                Steps for external users

                                                                After your application to add external users is approved by Ragic staff, as an alternative to manually adding external users like in the previous step, users can also request access to your account by typing the URL

                                                                www.ragic.com/accountname
                                                                which will take them to a page like below image since they do not have access to your account yet. Then, ask them to click "Request Access".

                                                                Clicking on this link will take your potential external users to a Database Access Request form where they can fill in their contact details. After this form is filled and saved, the request will be submitted for your approval.

                                                                Note: All sheets on the account must be private for the Request Access link to appear on the home page. If the account has public sheets then those public sheets will be displayed instead. The external users will not be able to request access to the account and the SYSAdmin will have to manually add each external user.

                                                                Steps for the SystemAdmin

                                                                You will be able to approve or reject the received external user requests from your Account Setup, under External User > Approve Requests.

                                                                Under individual entries, you'll see the "Approve" or "Reject" buttons.

                                                                Approved external users will be saved to your External Users menu.

                                                                When approved, the external user will receive a notification e-mail, and will be able to login to your account. After you approve external users' request to sign up to your account, don't forget to assign them to the correct user group.

                                                                If needed, you can also make modifications to the external user registration form, so that you can ask for additional information from users as they register, but please make sure that you do not change the system default fields.

                                                                Please note that you can always invite external users by adding them directly to your account.

                                                                Public Sheets and Temporary Log-in

                                                                You can also have public sheets and control how everyone can see your Ragic database through Ragic's access rights settings.

                                                                Ragic also has a convenient way of giving a user temporary log in without him having an account on Ragic, by setting an E-mail Id. attribute.

                                                                2.7    Guest Users: Temporary Log In Without Signing Up

                                                                Setting up a Guest User Field

                                                                Ragic has a convenient way of giving temporary log-in rights for guests without them having to register an account on Ragic (to be added to your database account). This can be done by setting a Guest User e-mail validation attribute. To do this, set the field type as an E-mail field, and check the Email id checkbox below.

                                                                Note: This feature is only for emails that are not user accounts in your database.

                                                                Guest User Log-in

                                                                When this attribute is set to a field in the form, the temporary user will need to put down their e-mail in this field. As the entry is saved, Ragic will automatically send an e-mail to this e-mail address. This e-mail will contain a link that can authenticate that the guest user is the owner of this e-mail, which they can use to log in to Ragic and access that entry. Please note that the link is for one-time access and valid for 1 month. If the user clicks the link more than once or after expiration, the system will send a new valid link to the guest user's e-mail address.

                                                                Ragic would now determine which records the guest user has permission to view and edit. This type of temporary login is usually used so that the guest users can see and edit changes in the entries they have created.

                                                                Note:

                                                                Anyone who has the authentication link will have the guest user login access. Therefore, it is important to remind the e-mail recipient not to share the link with others.

                                                                Do not email when editing entry

                                                                By default, the system will send emails to guest users when the entry has been edited manually or by action buttons. You may check this setting if you do not want to email guest users in this situation.

                                                                Custom E-mail Template

                                                                You can customize the subject and the content of your e-mail notification by clicking on the Custom Email link under the chosen E-mail field type.

                                                                In the pop-up window, you can design the e-mail template using HTML formatting and use the variables. You can customize the subject and the content of your e-mail notification by clicking on the Custom Review Email link under Invite user to review this record.

                                                                In the pop-up window, you can design the e-mail template using HTML formatting and variables. Check all supported variables here.

                                                                You can click on which will show you an example of how the custom e-mail looks like. If you decide to use our standard template instead, click on will discard all the changes you've made.

                                                                Furthermore, you may also attach the URL, Excel, PDF, or mail merge file of the record; or other attachments. When you attach the URL of the record, please make sure you have granted access rights to the sheet to the recipients. Otherwise, they'll have a blank page when they access the database through the entry URL.

                                                                Once the editing is completed, remember to save before you exit the pop-up window.

                                                                You can click on which will show you an example of how the custom e-mail looks like. If you decide to use our standard template instead, click on will discard all the changes you've made.

                                                                Furthermore, you may also attach the URL, Excel, PDF, or mail merge file of the record; or other attachments. When you attach the URL of the record, please make sure you have granted access rights to the sheet to the recipients. Otherwise, they'll have a blank page when they access the database through the entry URL. Once the editing is completed, remember to save before you exit the pop-up window.

                                                                Resend Verification Email

                                                                A verification e-mail is sent out when your record is created, with the e-mail address that is entered in the Guest User e-mail field. A verification e-mail will be sent out when the record is updated as well.

                                                                To manually re-send the verification e-mail without updating the record, you can click on the blue "E-mail" icon next to the field name.

                                                                Limitations

                                                                The limitations of temp log-in IDs are that:

                                                                1. The guest user will always need to access the entry from the link sent with that e-mail.

                                                                2. Guest users cannot be managed in customized groups, they only belong to "EVERYONE" group, therefore you cannot assign different privileges to them through Ragic's access right settings.

                                                                3. If you have entered your database’s internal or external user’s email address in the guest user authentication field, the user will still not be able to access the entry by clicking the record link in the email if he or she does not have the respective access rights to the entry.

                                                                2.8    Feature Access Settings

                                                                Feature Access Settings

                                                                Ragic has certain default access rights for user groups for features and they are visible under the Feature Settings menu. Click the hamburger icon on the upper-left of the page, and select Feature Settings under User Access.

                                                                Below are the features that are listed in the Feature Access Setting menu.

                                                                Feature Access SettingDescriptionDefault Setting
                                                                Import/Export
                                                                Import Data From FileThe ability to import data from .csv and .xls files. It includes updating record by importingSYSAdmin
                                                                Download Listing PageExporting data from the listing pageEveryone
                                                                Download Files From Listing PageDownload files from file upload fieldEveryone
                                                                Download Form PageDownloading single entries from the form pageEveryone
                                                                Mass Actions
                                                                Mass E-mailSending out mass e-mailsSYSAdmin
                                                                Mass SMSSending out mass text messagesSYSAdmin
                                                                Mass DeleteDeleting filtered entries from the listing page. Users also need to have the Admin or Survey User access right, which means only when you have manager right to all of the records you can access, you will be able to use this featureSYSAdmin
                                                                Mass Update RecordsTo execute Mass Update, users need to have Admin or Survey User access rights and without No Edit restriction, which means only when you have manager right to all of the records you can access, you will be able to use this featureSYSAdmin
                                                                Batch ExecuteTo execute Batch Execute, users need to have Admin or Survey User access rights and without No Edit restriction, which means only when you have manager right to all of the records you can access, you will be able to use this featureEveryone
                                                                Mass CreateMass CreateSYSAdmin
                                                                Mass CloneMass CloneSYSAdmin
                                                                Mass File UploadUploading multiple files into existing records in a sheetSYSAdmin
                                                                Show Edit Icon in Listing PageShowing edit icon in listing pagesEveryone
                                                                Fast Delete FunctionEnabling fast delete mode when deleting entries. Users can only use fast delete when it's allowed in Company SettingsSYSAdmin
                                                                Reporting
                                                                Create ReportIn default, all internal users can generate reports but only SYSAdmin can save reports. And this feature cannot open to external user groupsEveryone
                                                                View ReportIn default, all internal and external users can access all saved reports related to the sheets they have access rights. Note: If both Create Report and View Report permissions are not granted simultaneously, users will be unable to see the "Reports" tab, and this will result in system reports (e.g., approval reports) being inaccessible as well.Everyone
                                                                Generate Website PluginsCreating a website plugin through the web embed toolSYSAdmin
                                                                Basic Actions
                                                                Delete RecordDeleting entriesSYSAdmin
                                                                Clone recordCloning entriesEveryone
                                                                Email EntryE-mailing an entryEveryone
                                                                Lock RecordLocking an entry so it cannot be edited without unlockingSYSAdmin
                                                                Share this EntryGenerate a link to this entry that guest users (non-login users) can modify or seeEveryone
                                                                Cancel ApprovalAll selected group users can cancel the approval for all entriesSYSAdmin
                                                                Side Bar
                                                                Most VisitedMost visited sheets listed on the left side panelEveryone
                                                                Recent ItemsRecent items listed on the left side panelEveryone
                                                                ViewsViews listed on the left side panelEveryone
                                                                User ManualUser manual listed on the left side of home pageEveryone
                                                                Share ViewsCreate shared view on the left side panelSYSAmin
                                                                Home Page
                                                                TasksTasks listed on the right side of home page. Restricting this feature’s access will affect the use of the tasks function on the top right corner and the display of tasks on the home page. Only for the non-SYSAdmin user.Everyone
                                                                EventsEvents listed on the right side of home page. Only for the non-SYSAdmin users.Everyone
                                                                Others
                                                                Calendar SyncGrant the right to execute Calendar Sync for non-SYSAdmin user.SYSAdmin
                                                                Share this sheetGrant the right to execute Share this sheetEveryone
                                                                Entry informationGrant the right to access entry informationEveryone

                                                                Feature Access Settings for External Users

                                                                Currently, only the features listed below are available for External users if the feature access rights are granted.

                                                                1. Download listing and form pages (Export)

                                                                2. Clone, and create records (Basic Actions)

                                                                3. Share this entry, including sharing this entry with WhatsApp (Basic Actions)

                                                                4. Side Bar

                                                                5. Home Page

                                                                6. Generate Website Plugins (Reporting)

                                                                7. Calendar Sync

                                                                Configuring Feature Access Settings

                                                                SYSAdmins and Group Administrators (under group tabs) are the highest privileged users, they won't be limited by feature access settings and sheet access rights. They can change the design, access all records, and use all of the features.

                                                                You can configure the access rights for certain features within Ragic if you have a professional plan subscription or above. Simply select the user groups that should have access to use a certain feature.

                                                                Granting Different Feature Access Rights For a User on Different Sheets

                                                                Your users can have different feature access rights on different sheets. All you have to do is to add them to different user groups that have different feature access rights and sheet access rights.

                                                                For example, let’s say the following database settings are applied:

                                                                1. Amy is part of both the Sales and HR user groups.

                                                                2. The Sales user group is granted with the feature access to export Ragic data, but not the HR user group.

                                                                On the Sales Order sheet, if the Sales user group is set with admin access rights, Amy will be allowed to export the data on this sheet.

                                                                On the Leave of Absence sheet, if the HR user group is set with admin access rights and the Sales user group is set with no rights, Amy will not be allowed to export the data on this sheet despite being able to view or edit all entries. This is because the HR user group is not granted the feature access to export data.

                                                                Therefore, if you would like to allow certain users to use certain features on certain sheets only, you may create a new user group and grant the user group the respective feature access rights and sheet access rights.

                                                                However, if the user group "EVERYONE" is granted a feature's feature access rights, any user in the database will be able to use the feature when he or she has access rights to the sheet and his or her access rights fulfill the requirements of the feature written in the "description" column in the grid above.

                                                                For example, let's consider the following conditions.

                                                                1. User Amy is in the "Sales" user group.

                                                                2. The "Sales" user group is not granted the feature access rights to export data from the listing page.

                                                                3. The "EVERYONE" user group is granted the feature access rights to export data from the listing page.

                                                                4. The "Sales" user group is set with Survey User access rights on the "Sales Order" sheet.

                                                                If the above conditions all apply, Amy may export data from the "Sales Order" sheet's listing page.

                                                                3.1    Customizing Ragic for Your Company (Company Settings)

                                                                If you don't see one of the settings mentioned below in your Company Settings sheet and you would like to use it, please send an email to support@ragic.com so we can help manually update your system default sheets.

                                                                Video Tutorial

                                                                Company Settings

                                                                It's always a great idea to customize Ragic to fit your company's look & feel. If you are using Ragic's professional, on-premise, or enterprise plan, you can replace some assets like logos and banners to fit your corporate identity. If you are using Ragic's lite plan, you can only modify the account settings.

                                                                The following settings can be done by clicking the hamburger icon on the upper-left of the page, and selecting Company Setting under Account Setup.

                                                                Setting up a Custom Logo and Banner

                                                                In Company Setting Panel, you can upload images to the Logo and Banner field. It will apply to all the tab menus.

                                                                When you share your database URL, the uploaded logo will show as the thumbnail.

                                                                If you would like to change the logo or banner for each tab menu, you can navigate to the homepage of the tab menu and click the Gear Icon to upload the image.

                                                                Note: Tab menu logo and banner settings will be prior to those in Company Setting.

                                                                If your banner image is dark, you can choose the option "Y" for the Dark Banner? setting so that the layout's visibility can adjust accordingly with lighter text.

                                                                It's recommended to create your banner image's width depending on the resolution of the monitors set on your computers that your company uses. The recommended height for the banner image is 102px. You can also download from the custom banners we made for you.

                                                                Your uploaded banner will replace the gray area on the top of all pages in your database that is visible behind the search bar and your tabs.

                                                                Setting up a Custom Favicon

                                                                You can upload your own Ragic page Favicon on the Company Setting Panel, Favicon field.

                                                                Your uploaded picture will become your Ragic website icon.

                                                                Setting up a Custom Domain

                                                                You can make it easier for your users to find your database in Ragic by creating a custom web address, also known as a URL.

                                                                For example, with a custom address, users can sign in to their Ragic account at yourdomain.com instead of at the longer default address, such as https://www.ragic.com/youraccountname.

                                                                To change this setting, under your Start tab, click on Account Setup. Navigate to go to your Company Setting.

                                                                Fill in the Company Domain field with the URL you have assigned for this custom domain.

                                                                Note: Please be reminded that Ragic is not a domain provider and that the domain set up in the company setting must have already been registered from a provider. This company domain does not change your original Ragic database URL (https://www.ragic.com/youraccountname) but merely redirects you to it.

                                                                Add a CNAME record with your domain host that points to www.ragic.com (or eu3.ragic.com, ap2.ragic.com, and other server URLs depending on the server that your database is on).

                                                                Example:

                                                                yourdomain.com points to www.ragic.com

                                                                Note that adding a CNAME record requires logging in to your account at your domain host's website, not with Ragic. (You might have already done this to verify your domain, in which case you'll find the steps are similar.) If you can't access your domain's DNS records, contact your domain host directly for assistance.

                                                                You can also refer to this document on typical CNAME configurations

                                                                Setting up a Custom Login Screen

                                                                You can set up a custom login screen for your company that will make it easier for users to recognize your branding while logging in. To do this setting, access your Company Setting Panel.

                                                                Login banner: Upload a custom banner image

                                                                Login banner when login in successfully: Upload a custom banner image

                                                                Login logo: Replace the Ragic logo on the login screen

                                                                Login page greeting 1 and Login page greeting 2: Change the greeting message

                                                                Setting up a Custom Splash Screen

                                                                You can set up a custom splash screen for your company that will make it easier for users to recognize your branding during the short time that it takes to load a page in Ragic.

                                                                To do this setting, access your Company Setting Panel.

                                                                For your custom splash screen, you can use basic HTML in the Custom splash screen field to add your company logo or other types of images.

                                                                Example HTML code:

                                                                Design tip: Depending on the size of the image you are using, the progress bar might overlap your image. For your progress bar to display below your image, you can make some adjustments such as adding a margin property to your image to adjust your overall layout.

                                                                Example HTML code:

                                                                Your custom splash screen will be displayed according to the settings you have made on the company settings page.

                                                                Hide Login Page's Sign Up Button

                                                                After setting it to "Yes," the login page will no longer display the sign-up button.

                                                                Page After Logout

                                                                You can configure the page after logout, users will go to that page after they log out.

                                                                Display Mobile App Link

                                                                You can configure whether to show the Ragic mobile app link for the mobile browser here.

                                                                Watermark

                                                                You can upload your company logo to the Watermark field, you will see the watermark after you download the file as a PDF.

                                                                Skip Interactive Tutorial for New Users

                                                                Although the interactive tutorial is very helpful for new users to get a fast understanding of Ragic, you can disable it for them by selecting “Yes” in this field.

                                                                Security Settings

                                                                You can set up custom security policies for your users in your company.

                                                                To do this setting, access your Company Setting Panel.

                                                                View the last section, Security Settings and make the necessary changes to the fields.

                                                                Password complexity

                                                                Setting the password complexity to high will require the passwords to include numbers and special characters. Your password will need to have at least two of the following: numbers, symbols, and uppercase characters.

                                                                Setting the password complexity to medium will require the passwords to include at least 8 characters in their passwords.

                                                                Change password every __ days

                                                                When set, the user will be prompted to change their password according to the number of days entered here. If there is no need for your users to change their passwords periodically, enter 0 for this value.

                                                                Reuse old password?

                                                                Input number only.

                                                                Set to 0 to allow your users to reuse passwords that they have used before.

                                                                Set to 1 to allow your users to reuse passwords except for previous passwords.

                                                                Set to 2 to allow your users to reuse passwords except for the previous two passwords.

                                                                And so on.

                                                                Default password

                                                                This password will be the default password for users who have had their password reset by the admin. You can change this to another string if required.

                                                                Auto logout after idle time (Minute)

                                                                If set, Ragic will automatically log the user out after the specified minutes of idle time. Set to 0 if this is not required.

                                                                Denied login method

                                                                Check the options to prohibit users from logging in through these methods.

                                                                Ignore denied login method for user groups

                                                                Selected groups will no longer be constrained by the denied login methods.

                                                                File Download With User Authentication

                                                                Setting it to Yes will allow the system to determine whether or not a user has access rights to the original record in the database and can view the files from the URLs related to the file or image upload field in all sheets in the database.

                                                                Without access rights to the original record in the database, users won’t be able to see the data through the URL.

                                                                If the user has access right to the original record in the database, he/ she will also need to log in first before they can download the file.

                                                                Also, with the setting as Yes, forwarding a mail containing the file download link to a third-party recipient will cause the link to expire.

                                                                Enforce two-step authentication

                                                                Setting it to Yes will enable two-step authentication for all users, and they won't be able to turn it off by themselves.

                                                                Allow showing password

                                                                Setting it to No, users will not be able to see passwords through the "Eye" icon.

                                                                Account Settings

                                                                Under this section, there are a few things you can set:

                                                                Company Local Time Zone: The default time zone is determined by the browser time zone of the user who registers this database account.

                                                                Default Job Schedule Execution Time: The default execution time for daily workflow is 19:00 according to your Company Local Time Zone.

                                                                Default Language: The default interface language.

                                                                Default Number and Money Format: The newly added numeric fields and money fields will apply these formats by default. You can still modify the format for each field afterward in the design mode.

                                                                Default Date Format: It will apply to the date field's format, comment, change history, approval, etc.

                                                                Default the First Day of the Week: The system defaults Sunday as the first day of the week. If you wish to set another day as the first day of the week (like Monday), you may change the settings here. However, this function is only supported on the display format on the date picker, but not on calendar reports, scheduling reports, or the on the left sidebar related to defining "this week" and "last week".

                                                                Enable Access Request as External User: Set whether to allow external users to apply for access.

                                                                Default Separator of Multiple Fields: The default separator for multi-select fields.

                                                                Disable Automatic Invitations When Importing Users: Set whether to automatically send invitation emails when importing users.

                                                                iframe sources: When using iframe to embed content into Ragic, you can fill in the domain of the embedding source here to avoid the iframe content being blocked by the system and cannot be displayed.

                                                                You can refer to this article for example formatting types.

                                                                Connection Restrictions

                                                                You can set IP Address, Mask, connection time, and connection days under this section. Once the restrictions are set, users (excluding SYSAdmins) can access this database only if they meet the restrictions.

                                                                System Mail Setting

                                                                If you want the system mail sent from and reply to your own mail server, you can configure the SMTP server in this section.

                                                                After configuring the SMTP server, emails sent using Send Custom E-mail, E-mail This Entry, and Reminders will be through your SMTP server.

                                                                However, if you reply from a record's e-mail thread, it will be sent from the record's e-mail address

                                                                If there are errors in SMTP settings (Incorrect account, password, port, etc.), mailing issues will happen. You may download the mail log of your database in DB Maintenance to see if there are any mailing issues.

                                                                Single Sign-On Setting

                                                                If you have applied single-sign-on integration settings for your Ragic database, you would have to select your identity provider (IDP). You would also have to copy the app federation metadata URL and the application ID from your identity provider to the respective Ragic fields here.

                                                                Recommended Image Sizes for Custom Assets

                                                                Asset Name Recommended image size (pixels, width x height)
                                                                Logo 144 x 44
                                                                Banner any x 102
                                                                Splash Screen No limitations
                                                                Log in Logo any x 28
                                                                Log in Banner 420 x 420 (the bottom 145px will be clipped by the message box)

                                                                3.2    Account Billing

                                                                Subscribe

                                                                To make your database's first subscription, you can click on the Upgrade Account link at the top right corner of the page to start your subscription. You can choose your Ragic plan from the Pricing page, and continue on to your trial for your upgraded account.

                                                                Modify Plan

                                                                You can also upgrade or change plans at any time by clicking the hamburger icon on the upper-left of the page and selecting Account Billing under Account Setup.

                                                                In the Account Billing, it tells your current account plan, including the billing cycle, next billing date, the number of licensed users, billing amount, as well as your accounts' billing contact.

                                                                You can change your plan or plan details, update your credit card information, billing contact E-mail, invoice detail, and other information that will appear on your invoices such as Company Name or VAT number. You may also purchase add-ons such as SMS credits or extra storage space.

                                                                Regarding the pricing changes with modifying plans or the number of users, please refer to this article.

                                                                If you cancel your subscription, your data will be safely saved on our server. You can reactivate your account anytime. To completely delete your account, please refer to this page.

                                                                Manual Payment Subscription Modification

                                                                For databases paid manually, you can also submit a modification request online.

                                                                For databases paid manually, the fee calculation when modifying your database's plan or the number of subscribed users can be referred to this document. If you would like to modify your subscription, please select the plan to change to and enter the number of additional users below. After your submission, Ragic will contact you in 1-2 business days to process your quotation and subscription.

                                                                Billing History

                                                                Clicking on the Billing History tab will show you the details of your previous payments.

                                                                You can access the invoices of your payments by clicking on a line item through the links in your payment description column.

                                                                The information you fill in the “Invoice Detail” box will appear next to the “Bill to”, and the information you fill in the “Billing Contact E-mail” will appear next to “Billing Contact”. If you would like to add more information to the invoice for reimbursement, you may fill it in the “Invoice Detail” box.

                                                                If you don’t fill in the “Invoice Detail” box, what appears next to “Bill to” would be the “Organization Name” field value on your “Company Setting” sheet.

                                                                On-premises Subscription

                                                                If you haven't subscribed to any paid plan, you can purchase an on-premises license through hyperlinks.

                                                                If you have subscribed to a plan, you can modify your plan in On-premises subscription management. Click the pencil icon to add licenses or upgrade plan, or click the X icon to unsubscribe.

                                                                Right here, you will be choosing the number of users and then make your payment online directly.

                                                                After completing your order, we will send you the license file within 24 hours on business days.

                                                                Cancel Subscription

                                                                Please go to the Hamburger Menu. On the left sidebar, click on Account Billing, and find Cancel Subscription.

                                                                Canceling subscription will not affect your data. Your data would be suspended but secure, and you can always return to using Ragic. If you would like to delete your account entirely, please refer to this article.

                                                                3.3    Backup and Restore

                                                                You can find Backup & Restore under Database Management by clicking the hamburger icon on the upper-left of the page.

                                                                How is Data Backed Up?

                                                                Ragic servers are backed up automatically on a daily basis. Therefore, you usually wouldn't have to go through a manual backup process, although it is still recommended to save a snapshot or save a manual backup before making major design changes, such as linking your existing data in Ragic so that you can restore the backup you saved if needed.

                                                                Auto Backup

                                                                If you're using a Professional or higher plan, through your Backup & Restore panel, you will be able to download daily, weekly, or bi-weekly backup and view when the backups were last saved on the Ragic servers if needed.

                                                                Creating and Restoring a Snapshot

                                                                You can save the current version of your database by creating a snapshot that you can restore at a later time if needed. This feature is available for Professional or higher plans.

                                                                To save a snapshot of your current database, click the "Create Snapshot" at the bottom of the "Auto Backup" section. Ragic will save a backup of your account, this may take some time if you have a very large amount of data. Your snapshot will be saved under the "Auto Backup" section.

                                                                If you need to restore a backup that was saved as a snapshot, you can download and manually restore it when needed.

                                                                The restoration process will overwrite your entire database with the restored backup, so please make sure that you are restoring the correct backup file.

                                                                Manually Save a Backup

                                                                Usually, you wouldn't have to go through a manual backup process, but it's still recommended to save a manual backup before making major design changes so that you can restore the backup you saved if needed.

                                                                If the databases that you are backing up and restoring data are located on different servers, please select to back up as the Compressed backup format. You can determine the servers of your database from its URL with the first three letters after "https://", such as www, ap2, ap3, eu2, na2...

                                                                To save a backup manually, navigate to Backup & Restore > Backups.

                                                                Backup the Entire Database

                                                                Make sure that none of the checkboxes are checked to save an entire backup of your database with the current state. Click the "Backup" button. This will save a backup on your computer with the file extension .ragicdb. This is a special file format that only Ragic can read.

                                                                Backup the Design of Your Database

                                                                If you only want to download the backup of the design of your database without data, you can check the "Backup database definition only" box before saving this backup. This will save a backup on your computer with the file extension .ragic, a special file format that only Ragic can read. If you restore this backup on another account, only your design will be restored, and your data won't be affected. This method is usually used to share designs between different accounts. For instance, if you have multiple database accounts, you can modify the design of your test environment and make sure everything works well before restoring it to your production environment.

                                                                Restoring a Manually Saved Backup

                                                                The restoration process will overwrite your entire database with the restored backup. Make sure that you want to restore to your saved backup, and that the version you are restoring is the correct backup. Also note that when you restore a the backup file of an entire database, the list of users set up in the database would be completely overwritten as well. Please log into the destination database with user credentials from the source database afterwards.

                                                                Downloading the Backup Data of a Single Sheet

                                                                You can click the Download as Excel File or Text and choose From Backup that can be accessed on the listing page of a form from Tools to export multiple entries.

                                                                You can download automatic backups or Download From History. When using Download From History, you can select to download values from independent fields or a subtable, until a certain time, or the oldest version.

                                                                Delete Unlinked Files

                                                                When deleting the files in the file upload and image upload fields, these files will not be removed entirely from your database instantly but will be considered "unlinked files". Under certain circumstances, users can still restore unlinked files when restoring entries or using other methods. Unlinked files will be kept in the database for at least a month. If you would like to delete these files entirely from your database, please click this button.

                                                                Automatic Archiving

                                                                As the duration of usage continues to extend, the volume of data will also continue to grow. When there are a lots of records in the sheet, it may potentially affect the system speed, functions including records display, filtering, and generating reports . In such cases, you may consider Automatic Archiving.

                                                                You can see the current archiving settings here, click the "X" behind the archive setting to delete it if needed.

                                                                After clicking on Archive Settings, you can configure the reference date field, the day of the month ,and the timeframe for archiving the desired sheet. Once the setting is complete, remember to Save.

                                                                At the bottom section, you can filter the sheets with archived data. If necessary, you can restore archived data or permanently delete it.

                                                                3.4    Recent Changes

                                                                Recent Changes - data

                                                                Except viewing the history of a record, SYSAdmin can also view the edit history for multiple sheets from Recent Changes, which can be found by clicking the hamburger icon on the upper-left of the page, and select Recent Changes under Database Management.

                                                                You can click on the modified records, to view details on additions and modifications.

                                                                To check all edits only on a sheet, you can apply filter from the Filter by sheet box.

                                                                Database Design Changes

                                                                Scroll down on the Recent Changes page, you can also find history of design changes for all sheets.

                                                                Revert Mass Update

                                                                If you want to revert previous mass update, click the Revert Icon next to the history of a mass update.

                                                                Please note that it is not suggested to revert mass update if:

                                                                1. The design on related field(s) has been changed.

                                                                2. The Mass Update was made a long time ago.

                                                                3.5    Job Schedules

                                                                You can find Job Schedules under Account Setup by clicking the hamburger icon on the upper-left of the page.

                                                                The job execution time in your account will usually be the default job schedule execution time that's set up according to your Account Settings. However, you can still configure a different execution time for each job in this section.

                                                                Please note that a single feature can only have one corresponding execution time, which means that all reminders will execute at the same time in sequence.

                                                                Job schedules include Reminder, Daily Workflow, Import Data From URL and Scheduled Data Export.

                                                                If you would like to execute a job immediately, you can click on execute now.

                                                                You can execute, reset, delete or pause import data from URL in the pop-up window after clicking on Details.

                                                                3.6    DB Maintenance

                                                                You can find DB Maintenance under Database Management by clicking the hamburger icon on the upper-left of the page.

                                                                Reset DB Connection

                                                                You can reset your database connection to Ragic when you need to clear your database's cache data. When you notice some of the changes you have made to data or form design are not showing up, you can try resetting your DB connection.

                                                                Rebuild Search Engine Index

                                                                Ragic's search bar works like a search engine, which can help you to find full values and also offers you search suggestions when you begin to type. This is a very useful tool when looking for a specific entry where you know at least one of the values.

                                                                If you find that you cannot see related search suggestions when you're typing into the top search bar, the reason may be that Ragic's search engine hasn't indexed these records yet.

                                                                You can rebuild your Ragic database's search engine index through the Rebuild Search Engine Index option under your DB Maintenance menu.

                                                                This will allow Ragic to crawl through the values within your database and index your records by sheets. You'll see the indexing status on a pop-up menu on the lower-left side of your screen. Feel free to work on your database elsewhere while indexing is being done.

                                                                Once the indexing is done, the pop-up will display a “Done” note.

                                                                Download Data Dictionary

                                                                You need a Professional Plan subscription or higher to access this feature.

                                                                Your data dictionary shows the data schema of all your sheets, which contains all the field IDs, field names, and stored field types.

                                                                You can save this as a PDF through your browser's Print to PDF setting, and send it to a trusted person who would need this data to work with your account, such as an external developer you're working with, who needs to read and write data using Ragic's HTTP API or to write server-side Javascript workflow.

                                                                Delete My Account

                                                                Ragic has a forever free version that you can use, but for any reason, you can still delete your Ragic account.

                                                                Deleting your Ragic account can be done through your DB Maintenance menu. Since this action is not reversible, make sure that you back up your data in case you would need to restore this data at another time. You can also export your data instead, or make sure that you do not have any data of importance on your account.

                                                                Access your Account Setup from the Start tab, and navigate to the DB Maintenance Menu page. You'll see the Delete My Account option at the bottom.

                                                                Please check this documentation if you are looking to cancel payment to your account.

                                                                You can contact support@ragic.com at any time to help point you in the right direction while setting up your database, or leave feedback regarding using your Ragic database.

                                                                Download System Log

                                                                You need a Professional Plan subscription or higher to access this feature.

                                                                The date and time in the system log are based on UTC+0 timezone.

                                                                Option Description
                                                                System Access Log Lists information including the date, time, and IP address of users that have logged in to your account. In the log, F means a normal log-in session, D means it's a duplicated log-in session and it has logged out the other session that this user has logged in from, usually from another device or browser.
                                                                Workflow Execution Log Lists the errors of workflow execution.
                                                                Mass File Download log Lists the download history from the listing page such as download as Excel file and printer friendly.
                                                                Mail Log Lists notification emails, new user invitation emails, and password resetting emails’ details.
                                                                Job Schedules Modification Log Lists the modification of job schedules.
                                                                Database Usage Log List which user accessed which form; V stands for viewing entries, C stands for creating entries, and U stands for updating entries.
                                                                Subscription Modification Log List the plan and user number modifications through online payments. Manual payment information will not be listed.
                                                                Connection Restriction Log Lists connection restrictions.
                                                                Unsuccessful Notification Mail Log List the record that triggered the notification, the user(s) who received the notification, and the reason for the notification.
                                                                Tab Modification Log Lists when and which users have added, edited, or deleted tabs.

                                                                3.7    File Manager

                                                                As sheets and uploaded files grows, finding the file you need might become a hassle. This is when File Manager comes in handy. File Manager gives you a bird’s eye view of all your uploaded files categorized by sheets, so you can browse, upload, download, and delete any file at ease.

                                                                Click the hamburger icon on the upper-left of the page, and select File Manager under Database Management.

                                                                You will see all the sheets with file/image upload fields and the number of files in each sheet.

                                                                After selecting a sheet, files will be displayed under view by field by default. You can select a specific field to see all the files uploaded to that field. In this page, you can left-click to select a single file, or press Ctrl plus Shift to select multiple files. You may also draw a selection box to select multiple files. After selecting the files you want, right-click to open the tools menu so you can download or delete them.

                                                                Under view by data, files will be displayed by each data entry (represented by the title field of each entry). Click on an entry to view the files in it.

                                                                Under list all files view, you can directly edit each file.

                                                                3.8    Global Constant

                                                                If you don't see one of the settings mentioned below in your Company Settings sheet and you would like to use it, please send an email to support@ragic.com so we can help manually update your system default sheets.

                                                                What are global constants?

                                                                When you're adding a formula or working on creating a Javascript workflow in Ragic, there might be some character strings such as your company URL, company name, and company address that you type often. To configure global constants, click the hamburger icon on the upper-left of the page, and select Global Constant under Account Setup.

                                                                As the SYSAdmin of the database, you can save parameters as global constants. You can later refer to these global constants to auto-populate the company website or address in javascript workflows and in formulas. When you need to update this information in the future for fields that have a global constant with a formula, all you need to do is update the field value in the "Global Constant" sheet and then run a formula recalculation.

                                                                Field description

                                                                Field Name Description
                                                                Constant name Name of the constant. Spaces are not allowed in this field.
                                                                Constant value Value that will to be replaced by global constant.
                                                                Constant type Type of the constant. Please choose from the dropdown menu.
                                                                Effective date (GMT) Effective date of the constant (optional).
                                                                Expiry date (GMT) Expiry date of the constant (optional).

                                                                After configuration, please enter the constant name as below in your workflow or formula with a c_ as the prefix. Ragic will recognize the constant, and replace it with the constant value.

                                                                c_Constant name

                                                                Example

                                                                As shown in the image above, when writing scripts or formulas, www.ragic.com will be auto-populated once you enter c_Website.

                                                                If you select array as your constant type, the constant value should be a numeric array such as [1,2,3,4,5] or a text array such as ['test','item2','item3'].

                                                                3.9    Notifications

                                                                SYSAdmin can configure other users' notification settings through clicking the hamburger icon on the upper-left of the page, and select Notifications under Account Setup.

                                                                Clicking on Notifications beside user name will prompt you to personal notification setting panel.

                                                                (For detailed information on notification setting, please refer to this documentation.)

                                                                You can uncheck the Notify external users checkbox if you'd like to disable notifications to all external users.

                                                                3.10    UI Translations

                                                                Ragic is offered in English, Traditional Chinese, Simplified Chinese, Spanish, and Japanese. While you can design your apps in any language you want, Ragic gives you the opportunity to translate the user interface into your own language so that it would be easier for your users to navigate.

                                                                To translate Ragic into your own language, navigate to the hamburger icon on the upper-left of the page, and select UI Translations under Account Setup.

                                                                Pick the language you would like to translate Ragic into under Language to translate. The UI Sections are the sections to translate.

                                                                You'll see the names of the classes Ragic uses to identify where your text goes in blue. Do not edit this blue text.

                                                                The green text is where you'll be editing into the language you are translating to. After editing the text, click Save above the translation window.

                                                                After you're done with a few sections, you'll start noticing that your saved translations are automatically displayed in the Ragic menus where your UI sections were pointed at.

                                                                You can keep translating to your own language. Users in your account will be able to see these translations and interact with Ragic in the language you're translating to.

                                                                3.11    Customizing Your Database Home

                                                                Customizing Homepage

                                                                Click on the gear icon on the upper-right of the page to start customizing your database's homepage.

                                                                On this page, you can click to add a new section, click X to delete one, and drag the middle border to adjust the width. After adding a new section, click on the section to configure its further settings. Don't forget to save it when you've completed all settings.

                                                                Currently, we support 9 different sections.

                                                                List of Sheets

                                                                List all the tabs and sheets in your database.

                                                                Events

                                                                Events on your homepage lists up to 10 upcoming entries that are entered with date information as events.

                                                                Tasks

                                                                Tasks is the to-do list for each user, it can be generated from the system or manually assigned.

                                                                Starred Records

                                                                Show all starred records from all sheets.

                                                                Ragic Records

                                                                Show 2 field values of the latest 5 records from a selected sheet.

                                                                Online Users

                                                                List all users who are currently online and their last log in time.

                                                                Green: Online

                                                                Yellow: Idle for more than 3 minutes

                                                                Grey: Idle for more than 30 minutes

                                                                Text

                                                                Enter any kind of text, and it supports BBCode. So you can insert an image, video, or hyperlink as well. You can also set whether to enable automatically wrap text.

                                                                Iframe Embed

                                                                Fill in an URL to embed the content in this section. For example, you can embed a Google Calendar or Youtube video on your homepage.

                                                                Report Widget

                                                                Insert Widget on your homepage for data visualization, such as using a pie chart to display revenue by sales reps or revenue growth trend next to sales data.

                                                                Configuring Side Bar Feature Access

                                                                You can configure the access rights of the features listed in the sidebar for users from the feature access settings.

                                                                3.11.1    Tasks

                                                                Clicking the task icon at the upper-right corner of your Ragic account page will list out the tasks users need to do in a descending order. Tasks can be generated from the system or manually assigned. Task items will gray out and will no longer show in the task list once the user ticks the "complete" checkbox.

                                                                You can view all the completed tasks by ticking the "Show completed" checkbox on the upper right side of the task window, which will prompt you back to the default (uncompleted task) list. From there, you can also uncheck completed tasks.

                                                                Task list has four kinds of views:

                                                                View Content
                                                                Assigned to me Tasks assigned to the user
                                                                Assigned by me Tasks assigned by the user
                                                                Assigned to my team On non-supervisor users' account page, the list will show all the tasks assigned to other users under the same supervisor. On the supervisor's account page, the task list will show all the tasks assigned to his/ her subordinates

                                                                Subordinate's tasks Switch to the subordinate's task list

                                                                You can also modify other users' task status in the task list. When the status is changed, system will send notification to whom the task is addressed.

                                                                Tasks Categories

                                                                When reviewing the task items, you can filter the categories to be displayed.

                                                                System Tasks

                                                                1. Approval

                                                                When other users start an approval flow which requires your approval, you will receive both an e-mail request and a task icon badge notification. Once you approve it via the email request or through the form page, the system will automatically mark it as "completed".

                                                                2. Review

                                                                When you're requested to review a certain entry, you will receive both an e-mail request and a task badge notification. Once you open the email request or view the form page of the entry, the system will automatically mark the task as "completed".

                                                                3. Reminder

                                                                When you're configured as the recipient of reminders, you will receive both an e-mail request and a task badge notifications. Once you open the email request or view the form page of the entry, the system will automatically mark the task as "completed".

                                                                Manual Tasks

                                                                You can manually create tasks and assign them to other internal users. On the task icon of your home page, click Create task. In the pop-up configuration window, select a user you'd like to assign the task to, type in the task details, and click Assign.

                                                                Once the task is created, the assigned user will receive an e-mail and a task badge notification on his/ her Ragic page.

                                                                E-mail notification:

                                                                Badge Icon:

                                                                Once the assigned user completes the task and ticks the "complete" checkbox, the task creator will receive a task completion email notification.

                                                                Task Details

                                                                Clicking on one of the task items or the See Detail option on the bottom of the task window will prompt you to a new page where you can manage all the tasks.

                                                                In the task detail page, you can see who assigned the task and edit the task's due date, URL, details and comments.

                                                                3.11.2    Event Calendar

                                                                If there are date fields on your sheet, the Event Calendar on your user homepage lists up to 10 upcoming entries that are entered with date information as events.

                                                                Clicking the name of the event will take you to the form page of the related entry.

                                                                Clicking the Show calendar button will open a calendar report listed with these events.

                                                                You can configure the events you'd like to show on the calendar by hovering on the event name and clicking on the gear icon next to it:

                                                                Hide this type of events: Hide the events that are from the same date field on that sheet.

                                                                Set a short name for this sheet: Set up a short display name for the sheet of the events from the same date field.

                                                                If you would like to change the field value of the Event shown on the calendar, you would need to configure the title field of your sheet, once it's configured, please rebuild your search engine index.

                                                                Recurring Date in Event Calendar

                                                                If your sheet includes recurring date fields, the calendar will display events for the 12 months before and after the current month. When you open the calendar in December 2023, it will show recurring date events from December 2022 to December 2024. Similarly, if you open the calendar in December 2024, it will display recurring date events from December 2023 to December 2025.

                                                                3.12    Recycle Bin

                                                                If you accidentally deleted an application tab, sheet, or entry and would like to recover it, you can navigate to the hamburger icon on the upper-left of the page, and select Recycle Bin under Database Management.

                                                                With filtering, you can also find the deleted records to restore much faster and easier.

                                                                Sometimes, when you click a record URL and find that it was deleted, you can paste the URL into Filter by record URL to see if it's in recycle bin.

                                                                4.1    Views - Saving Frequent Searches

                                                                What is View?

                                                                Ragic gives each user the ability to create different View types. As we query more and more often, there are a set of queries that users will regularly execute.

                                                                On the left sidebar of every Ragic sheet, users can save these types of frequent searches on any combination of fields as Personal Views.

                                                                As the SYSAdmin of the database, you can save common frequent searches as Shared Views for your users. And a shared view can be set as a Default View if necessary.

                                                                If you want your users to view the filtered entries only, you can apply Fixed Filter on the sheet.

                                                                The saved Views are listed on the left side, above the Search button.

                                                                After finishing your search, clicking on the Clear Filters button will lead back to the full database.

                                                                Different types of Views are explained in the below sections:

                                                                Shared View

                                                                If you want every user with access to the sheet to be able to see a saved view, you can set up a Shared View. This way, users can directly refer to the views you created without setting them up themselves.

                                                                You can also decide which group can see the shared views by setting Viewable groups.

                                                                Default View

                                                                You can set a Shared View as a Default View for a sheet so that whenever the users go to a sheet, the default view will automatically be applied. You can set a view as the default view by right-clicking on the shared view's name, or through the arrow on its right side.

                                                                The user can clear the filter conditions applied by this default view by clicking on Clear Filters at the top of the sheet.

                                                                Note: If your filter criteria does not have the "Exact Match" checked, which may slow down sheet loading with extensive data when used as a Default View. If the criteria precisely matches the field value, we recommend checking the "Exact Match".

                                                                Shared View Notification

                                                                Users can configure notifications based on a shared view if they would like to receive notifications only from the filtered records instead of all records in the sheet.

                                                                Custom Shared View Notification Email

                                                                As a SYSadmin, you can notify users of the filtered records (shared views) through custom notification emails.

                                                                To customize the notification email, click on the small arrow next to the view you'd like to notify users, then choose the "Custom Notification Email" option. Select the notification condition, choose notified, and edit the email subject and the content.

                                                                You can use variables to change the email subject and content according to the records. Check all supported variables here.

                                                                You can click on which will show you a demo of how the custom e-mail looks like. If you decide to use our standard template instead, click on will discard all the changes you've made.

                                                                Remember to save the design before closing the configuration window.

                                                                Share View URL

                                                                In some circumstances, you may want to share data with a specific view to other users. For example, as a sales manager, you'd like to share a list of only the unshipped order data with the logistics company.

                                                                To do this, you can set up a shared view first. After you save the view, right-click on the view you just saved and choose the "Share View URL" option. This will generate the three URLs you can use to share the data.

                                                                Option Description
                                                                Here is the shared view URL Directly open the page applied with this shared view.
                                                                Here is the API for shared view URL It's the API link of the page with the shared view applied.
                                                                Here is the download as Excel File URL Directly download the filtered result as an Excel file.

                                                                Update View

                                                                If you would like to overwrite a saved view with the current filter, you can click Update view. For instance, if you searched for all the records with the Status field equal to the value "Confirmed", you can click on this option to replace "Status - Draft" with this current filter.

                                                                Fixed Filter

                                                                Another type of view is called a Fixed Filter. A fixed filter is pretty much like a default view, but the filter conditions cannot be removed by the user. This can be used in conjunction with Duplicate Sheet so that you can create different versions of a sheet by assigning different fixed filters to them.

                                                                You can combine the fixed filter with the field type select from other sheet and fixed filter to limit the selection options.

                                                                Note: If your filter criteria does not have the "Exact Match" checked, which may slow down sheet loading with extensive data when used as a Fixed Filter. If the criteria precisely matches the field value, we recommend checking the "Exact Match".

                                                                4.2    Customizing the Left Sidebar

                                                                You can configure the fields that are displayed, as well as the displayed order of your fields under the left sidebar search tool.

                                                                Click on the gear icon underneath the Search button. From the prompt window, you can remove fields that are displayed on the left sidebar search tool by adding them to the "Available Fields" section. This would not remove the fields from your listing page or form page design. You can also adjust the order of the fields that are displayed in your left sidebar from the "Selected Fields" section. Click "Save" to save your changes.

                                                                5.1    Linking Sheets Together

                                                                Ragic supports several ways of one-to-many relationships. The following sections will show you how to do these through the Sheet Linking Tools that could be found under the Design Mode, within the Form Tools menu.

                                                                These methods are:

                                                                Link & Load

                                                                Multiple Versions

                                                                New Sheet from Subtable

                                                                Show References from Existing Sheets

                                                                You can also edit the existing links through the Sheet linking tools menu or change settings according to the linking type, more details are available in each individual article for the sheet linking tools.

                                                                It's also possible to link fields from parent sheets for sheets that were generated from a subtable, or sheets that have an added reference subtable.

                                                                5.1.1    Link and Load

                                                                Video Tutorial

                                                                Linked Field & Loaded Fields

                                                                Linking two fields in different forms together consists of creating a Linked Field and the corresponding Loaded Fields.

                                                                Let's say that we want to create a form for entering sales orders, in which we would like to include the related customer information, linked from another form that keeps all our customer data.

                                                                The Linked Field would be the field in which the user could select a Customer ID for this sales order.

                                                                A linked value is configured as a field linked to the Selection Title Field of another form. The selection title field is basically the name to identify an entry in a selection box. The "Customer ID" field in the sales order in this example connects to the "customer ID" field in the customer form. Therefore, it's a good practice to choose a field that can clearly and uniquely identify an entry as the Selection Title Field.

                                                                When the user chooses a Customer ID by either clicking on the field, or typing in the sales order form, Ragic can automatically load the customer's information, such as their phone number and address into the sales order. This can greatly reduce data entry work and will also give users a more responsive feeling to your application. We call these type of fields Loaded Fields.

                                                                Link Manager

                                                                The Linked Field and Loaded Fields are easy to set up in the Link Manager. On the Form page, navigate to the Design Mode by clicking the "Change Design" button on the upper right side. On the design mode, click on Form Tools and choose Link & Load under the Sheet Linking Tools options.

                                                                In the Link Manager, you will see two sheets. The one on the left is the sheet you're currently in, and the other one on the right is the sheet from which you're going to load data. To create links, you are required to set up the Linked Field first by simply clicking on the key fields of both sheets (e. g. Customer ID, Product ID, or other fields with unique field value). This allows the system to identify and map each record correctly in the source sheet and the target sheet, respectively.

                                                                Note that this field will be automatically linked to the Selection Title Field of the form that is being linked, as described above. The Linked Fields are displayed in a blue outline.

                                                                After creating the Linked Field, you can link the Loaded Fields to the corresponding cells. These fields will load the corresponding values when the user selects a value in the linked field. Creating Loaded Fields is done the same way as the Linked Field. The Loaded Fields are displayed in a greyish-black outline.

                                                                In the Link Manager, you don't have to always create the corresponding fields for the form that will include the linked fields beforehand in both steps. Clicking a key field from the right sheet and dragging it to an empty cell on the left sheet will also automatically create linked fields for you.

                                                                If the sheet has existing link and load fields, you can focus on the field and Go to link manager in left side panel as well.

                                                                There is a blue L icon in linked field; a grey L icon in loaded field.

                                                                Clicking on the icon, system will automatically highlight all of the fields in the same set of Link & Load.

                                                                Using Link and Load for a Subtable

                                                                You may link & load data from other forms as a subtable. This works best if you would like to manually select (or type to see options) in one field of the data, and load the corresponding information in other fields in a row of the subtable, such as having multiple line items for products in a sales order.

                                                                Please refer to our documentation for generating a new sheet from a subtable and adding a reference subtable for more linking options regarding subtables.

                                                                Select Multiple Subtable Rows at Once

                                                                If there is a Select from other sheet field (linked field) in the subtable, you can apply the Multiple subtable rows at once configuration to select entries and populate multiple subtable rows at once.

                                                                Note: You can only check either Multiple subtable rows at once or Multiple select configuration in a linked field.

                                                                You will need to close the window manually after the data entry.

                                                                (If the Multiple subtable rows at once configuration is not checked, the window will close after you select one entry).

                                                                Linking Multiple Sets of Link and Load to the Same Sheet

                                                                When using link and load for a subtable isn't appropriate, you may link & load data from a form in multiple sets to your sheet. This works best in cases where you'd like to load multiple instances of data that have similar information, such as having multiple legal guardians assigned to one student in the example below.

                                                                First we link the first legal guardian from our "Guardians" sheet as usual. On the top right, you'll see a dropdown menu that allows you to create a new data link from the sheet you're linking data from.

                                                                Creating a new set of link will allow you to use link & load from the same data source again.

                                                                It is recommended to edit your field names on the sheet you have linked to, to make sure that the information can be clearly defined when a user is browsing your sheet.

                                                                Once you're done and have saved your design, you will be able to link & load from the same source sheet.

                                                                This feature is also useful when you'd like to link data from the sheet you're linking to.

                                                                Unlinking Fields

                                                                If you would like to remove an existing link, you can do so by going to the link manager, and clicking on the link you want to remove. This will display a red icon on the sheet you're linking from. Click on this icon to remove the link for these two fields on Loaded Fields.

                                                                If you remove the link for the Linked Field with the blue outline, links you created for all Loaded Fields will also be removed.

                                                                Common Mistakes when Creating Links with Link & Load

                                                                1. Linking data from subtables to your form.

                                                                This type of link will not be permitted in the link manager, as you cannot link from a subtable and load to a regular field (from a subtable on the right side of the link manager to the left side), since a subtable could have many different values entered in an entry, but a regular field would only have one value.

                                                                2. Linking independent fields and subtable fields or fields from different subtables at the same time

                                                                In Ragic, you cannot link and load independent fields and subtable fields in the same set, nor can you apply it to different subtables.

                                                                Below are examples of incorrect linking:

                                                                You cannot link to a subtable field and load to an independent field.

                                                                Also, you can't link to an independent field to load other subtable fields.

                                                                Or link and load a set of data to different subtables.

                                                                3. Linking a different subtable on the same row.

                                                                This would not have any technical issues on Ragic, but if you have other users using the same account, having different subtables on the same row could lead to confusion.

                                                                4. Linking from a non unique field, especially a linked field or numeric field as the linked field.

                                                                The linked field is one kind of selection field (select from another sheet ), in order to identify each selection unique, the linked field should be linked from a key value that can identify each entry on the source sheet as a unique entry, which is usually the id number or serial number field. Thus, you cannot link from a linked field or a numeric field as the linked field.

                                                                5. When loaded fields include cascaded fields in which “parent field” is placed below or on the right side of the same row as the “child field” in the target sheet.

                                                                Ragic system loads data in an up-to-down, left-to-right sequence in the target sheet with link and load relationships. That is to say, the system will load the field values up-to-down wise when the loaded fields are placed in different rows, and left-to-right wise if the loaded fields are in the same row.

                                                                When the loaded fields include cascaded fields, the “child field” will not load its value until the “parent field” is loaded. Therefore, if you place the “parent field” below or on the right side of the same row as the “child field” in the target sheet, the “child field” will not be able to load the corresponding value.

                                                                For instance, you have loaded fields which include cascaded fields where “Car Brand” is the “parent field” and “Car Model” is the “child field”. If you put the "Car Model" field on the top of or on the left side of the "Car Brand" field, the "Car Model" field will not be able to load its values correctly due to improper placement of parent and child fields. In this case, as a parent field, “Car Brand” should be placed on top of or on the left side of the “Car Model” (child field).

                                                                6. Loading from a field which has already been loaded in amultiple versions sheets

                                                                You cannot load a field again if it has already been loaded in another multiple versions sheet.

                                                                For instance, your database has a "Delivery Note (For Sales)" and a multiple versions sheet called "Delivery Note (For Logistics)". In "Delivery Note (For Sales)", you have already loaded from the "Customer Name" field.

                                                                In the multiple versions sheet "Delivery Note (For Logistics)", even if you deleted the "Customer Name" field, you cannot select to load it again (greyed out). If you would like to add the field back, please use this method.

                                                                Syncing Loaded Fields from their Source Sheet

                                                                For fields that load data on a sheet A, that links data from another sheet B with the link & load method, changes that are made on the data in sheet B will not be reflected on sheet A on previous entries.

                                                                The reason for this we can explain with an example. Let's say sheet A is sales orders, and sheet B is customers. When a sales order is entered by user Martha Stewart, her address information is populated with link & load on your sales order. Let's say Martha changed her address. Her previous sales order would still be under her previous address for the records, but new sales orders will be saved with her new address.

                                                                We do understand this might not be how you use link & load, and that you will need to repopulate the loaded fields in all your previous records in sheet A.

                                                                To do so, navigate to the Form page Design Mode, and click on Form Tools to see a list of sheets that are linked with Link & Load under the category. Click on the gear icon next to the appropriate sheet.

                                                                In the pop-up window you can choose to synchronize a single set of linked fields with the updated source value for all records, or all of your linked fields on this form. To keep the loaded values updated, you can check the box next to the option Keep Loaded Value Sync With Source. Every time the source data changes, Ragic will check your entries for records that are loading values from this source, and will execute a Link & Load sync for all the records that load values from the specific record that has been edited.

                                                                Please note that the maximum limit for synchronizing data in a single set of linked fields is 500 records.

                                                                Please note that the option to keep loaded values synced with the source data is turned off for imports. Users will need to do a manual link & load sync after doing an import.

                                                                Link & Load Sync for Select User Fields

                                                                Link & Load syncing can be applied to Select User Field which is linked to the system's users sheet. You can click the gear icon next to the field's settings to open the interface.

                                                                Changing the linked field

                                                                A good rule of thumb is to use the linked field to be a link from a key field, which can identify each record as a unique entry on the source sheet (on the right side of the link manager). If you'd like to change a linked field that is already set, you can simply drag the linked field indicated in blue without unlinking all of your fields and re-setting the link & load.

                                                                Example:

                                                                On the sheet "Sales Order", there's a set of link & load from the sheet "Customer", which uses the field "Customer Name" as the linked field. This is not the most ideal field to be set as the linked field, since there may be different customers who share the same name. In data management practices, it's best to use a unique identifier to eliminate user error. We will change the linked field to "Customer ID" instead, so that we can identify customers in a better way.

                                                                To change the linked field to "Customer ID" (right side), you can first unlink this field to remove the gray line that indicates this field is a loaded field.

                                                                We change the linked field from "Customer Name" to "Customer ID" by dragging the blue linked field on the right side within the link manager.

                                                                The linked field is now linked from the field "Customer ID" on the right side.

                                                                You may want to adjust the field names on the sheet you are designing. The field names do not affect links. Now the users would select the value from the sheet "Customer" according to "Customer ID". The previously saved records will also have the Customer ID as the linked field value.

                                                                5.1.2    Dynamic Filtering

                                                                Dynamic filtering is a way for you to choose a record from another sheet faster by filtering the sheet based on what you have entered on the sheet that you're entering. Similar to Ragic's cascaded selections, the list of records that you can choose can be based on what you entered on another field.

                                                                Dynamic filters can be set to fields that already have link & load configured, or is a select from other sheet field.

                                                                To create a dynamic filter, navigate to your form page's design mode, and from Form Tools, click on the gear icon next to the related sheet name under Link & Load.

                                                                This will show you the setting to create a dynamic filter. Select a field value on the sheet that you're linking from, and match it depending on your requirements with the value or criteria that is going to be filtered from the sheet you're linking to. You can set multiple conditions by clicking on the + sign below the configuration, or enter a custom criteria with the pen tool next on the right.

                                                                Example: Display fields that have the same status

                                                                In our example below, we want to offer VIP services depending on the customers' loyalty program. The service request form can only select customers that belong to a certain loyalty program so we set the "VIP Club Membership" field on the Customers sheet to be filtered by the service type offered on the Service Request field.

                                                                After a Service Type is selected, only the customers that belong to the related VIP club are displayed.

                                                                These dynamic filter rules can also be set on fields that are linked as a subtable.

                                                                Example: Display fields that fit into a date range

                                                                In our example below, the sales order form can only display products in the subtable that is linked from the product sheet that are currently running under a sales promotion. This promotion date range is set on the products sheet, and we check to see if the create date is between the Promo start date and end date. This allows you to set promotion dates beforehand for products.

                                                                Example: Display entries that contain or do not contain specific values

                                                                The example below shows a subtable that is linked to the "Menu" sheet. By applying "does not contain" criteria to the "Allergic to" field, the system will only display choices of meals that do not contain the allergens typed in that field.

                                                                You can also apply "contains" criteria to filter entries that contain certain values.

                                                                In some cases, some fields in your entries may have empty values. To filter out entries with empty values, you can use the parameter "$EMPTY_VALUE".

                                                                Dynamic Filtering on Select User Field

                                                                Dynamic filtering can be applied to Select User Field which is linked to the system's users sheet. You can click the gear icon next to the field's settings to open the interface.

                                                                The process is the same as setting dynamic filters on linked fields.

                                                                5.1.3    Multiple Versions

                                                                Creating a Duplicate Sheet

                                                                In some cases you may want to create different versions of the same form so that you may let different groups of users see different versions of the form.

                                                                To create two versions of the same sheet, right-click on the sheet name, or click on the arrow when you hover on the sheet's name, and select Duplicate Sheet.

                                                                Another way to do this is to click on the Multiple Versions option in the Form Tools menu in the Design Mode, under the Sheet Linking Tools category.

                                                                Check if the box that says Use same data source on new sheet is selected and click on the Duplicate Sheet button.

                                                                Note, if you uncheck the box "Use same data source on new sheet", it will create a copy sheet that has same design and structure as the original sheet without copying the records or sharing the data source. If you would like to copy or duplicate a tab with all sheets under it, you may refer to this article.

                                                                Ragic will create a second sheet that has the same name, fields, and data. The two sheets point to the same set of entry values in the database, therefore when you enter a new entry in one of the sheets, it will also appear on the other. All edits and deletion of entries will also be reflected on both sheets.

                                                                On the other hand, the design changes you make in one of the sheets such as field name, layout, formula, default value, and advanced field setting will not be reflected on the other sheet. This feature is extremely useful since you can delete fields that you want to keep confidential on one of the sheets, but still have the data on the other sheet. You can also create a fixed filter for this reason. Learn more about creating a Fixed Filter in our Shared View and Fixed Filter documentation.

                                                                After having your sheets display the necessary amount of information, you can set up the Access Rights from the Design Mode on the left sidebar. You can set the two sheets to be visible to different user groups with different access rights.

                                                                Configuring this should be pretty useful in cases where you need different user groups see similar pools of data in different ways. In the example below, there are two versions of an employee sheet, one copy seen from the HR department's perspective, and the other copy edited for the IT department.

                                                                click to enlarge

                                                                click to enlarge

                                                                This feature is also useful when you have a large database on only one sheet and would like to display certain fields in another listing page.

                                                                Adding a New Field or Subtable on Multiple versions

                                                                If you create a new field in one multiple versions of a sheet, system will ask you whether or not to add this field to other versions as well. The location of the field will be on the exact same cell or nearby.

                                                                If you need to manually add a new field or subtable to the design in multiple versions of a sheet, this new field or subtable will need to exist on any copy of this sheet first. Next, you'll need to navigate to the version of the sheet you'd like to add the field or subtable that already exists for another version. Click on the Form Tools menu in the Design Mode to view all the existing links under the "Multiple Versions" title. You'll see the all other versions of this sheet where you can then add available fields or subtables by clicking on the sheet name where your fields or subtable exists. A pop-up will appear that show available linked fields and subtables.

                                                                Drag and drop the new fields or subtables you would like to add that already exist onto your sheet from this configuration.

                                                                Remember that the fields that you are adding will show up for every user that has the correct access rights for this sheet.

                                                                Switch to a Different Version of an Entry

                                                                If you have multiple versions of the same sheet, you can add an action button to easily switch between the same record's entries in other sheets within Ragic.

                                                                To do this, go to the design mode of the form page you would like to add the action in. You will find a list of your linked sheets under the Form Tools menu, sorted beneath the type of linking. Click on the gear icon next to the version of the sheet you would like to navigate to through your entries.

                                                                You will be prompted to name the button that will be added to your action.

                                                                This will create an action button that will take you to the URL from each entry to the associated entry in your duplicated sheet.

                                                                To have a link back to the first sheet, you can redo these steps in your second sheet.

                                                                Note: If you want to remove action button, you may refer to this article

                                                                Video Tutorial

                                                                5.1.4    New Sheet From Subtable

                                                                Tutorial Video

                                                                Creating a New Sheet from your Subtable

                                                                Subtables are a great start to build one-to-many relationships. But in some cases, it's a bit hard to enter a lot of information on a subtable since the values will only populate one row, and it will be a bit harder to search for the information entered to the sub-entries inside the subtable, since queries in Ragic is based on the main entries in the form, rather than the subtable sub-entries.

                                                                To make the data in the subtables more accessible, you can create a new form from a subtable. When you're in the Design Mode, simply click on the Form Tools button, and choose the New sheet from subtable option, listed under Sheet Linking Tools.

                                                                Doing so will show you a list of subtables that are on this form. Clicking on the Create New Sheet link will create a new form with the fields of the corresponding subtable.

                                                                Apart from containing all the fields in the subtable, the newly created form will contain an additional field that will link back to your original form, based on your selection in the dialogue window. This field will show the main entry that this subtable entry belongs to.

                                                                In our example above, we create a form out of the Contacts subtable in a "Companies" form, the new Contacts form will contain a field named Company Name, so that you would know which company this contact is from. If you edit this contact and change the company, the corresponding subtable entry will be moved to the new company that you choose.

                                                                Below is a video example of how this type of linking can be used in conjunction with the link & load type.

                                                                It is also possible to insert a subtable from fields that are in another form, which is covered in the next section.

                                                                Adding New Fields from your Sheet to your Subtable

                                                                If you add new fields to your new sheet that you'd also like to add to your original subtable, click on Form Tools to view all the existing links on your sheet. You'll see the name of the sheet you generated, listed under "New sheet from subtable". You will be able to add available fields to your linked subtable by clicking on this name.

                                                                A pop-up window will be displayed, showing available fields and selected fields.

                                                                By moving new fields on your generated sheets from available fields to selected fields, you will be able to display new fields on your original subtable.

                                                                Create a Full Entry in a Linked Subtable

                                                                If you have a subtable that is linked to a full entry with a sheet generated from this subtable, or is a reference from another sheet, you can add an action button to easily add a new entry in the form where this subtable is referring to.

                                                                To do this, go to the design mode of the form page you would like to add the action in. You will find a list of your linked sheets under the Form Tools menu, sorted beneath the type of linking. Click on the gear icon next to the linked sheet you would like to add a new entry in.

                                                                You will be prompted to name the button that will be added to your action.

                                                                This will create an action button that will allow you to add a new entry to your subtable by filling out the full version of the form.

                                                                Note: If you want to remove action button, you may refer to this article

                                                                Link your Subtable Rows to the Related Entry on your Generated Sheet

                                                                When you have created a new sheet from your subtable, you can create a link on your original subtable row for a text field of your choice to take you to the related entry on your generated sheet when clicked.

                                                                In our example below, we have a Companies sheet that contain related Contacts' information in a subtable, which the Contacts sheet is generated from.

                                                                In the form page Design Mode, navigate to Form Tools. You will see the sheet generated from your subtable, with a gear icon next to its name. Click the gear icon to set up the link.

                                                                This will show you a dialogue box to set the field your link will be in. In our example, we want this to be the "Contact Name" field.

                                                                Save your process and exit the design mode. You'll now see that your selected field values have become links.

                                                                Clicking on any of these links will take you to the related entry in the sheet generated from this subtable.

                                                                5.1.5    Show References From Existing Sheets

                                                                Video Tutorial

                                                                Creating a Reference Subtable

                                                                If you have a linked field with Link & Load on your database sheet, you can use reference subtables in order to display all related entries that belong to the sheet you're linking to, in the original sheet that you're linking from.

                                                                For example, let's say that you have a Sales Orders sheet, with a link & load that links the related customer from the Customers Sheet. We can add our Sales Order records related to one customer as a reference subtable on our Customers sheet, so that we can see all sales orders a customer has placed. This is a great way to find back references to your data, which provides great value in database applications.

                                                                Please note that the sheet that you choose should contain a reference to the current sheet. In our example, the sales orders that are being included in the customer form design has a field that selects a customer with link & load. Otherwise, there will be no way for Ragic to determine the connection between a sales order and the customer.

                                                                Below, we're showing the Sales Orders sheet, where a Customer ID field is the linked field, which helps us select a customer.

                                                                Since this link exists, we're able to go to our Customers sheet to add the reference subtable.

                                                                To add a reference subtable to a form, go to the Design Mode of the form where you would like to add a subtable. Choose the option Show references from existing sheets listed under the From Tools button, listed under Sheet Linking Tools.

                                                                Drag the Linked Subtable component that you want to add below it to the desired location of your sheet.

                                                                When you drop the component, a field selector window similar to the listing page field selector will appear for you to choose the fields that you would like to include in this subtable. You will need to choose at least 2 fields since Ragic needs to display the field values underneath your field titles. When you're done, click the Insert Subtable button to have the reference subtable added to your sheet.

                                                                Don't forget to save your sheet design once you've added your reference subtable.

                                                                Ragic will now automatically display related sales order entries from the Sales Orders sheet, under the related customer.

                                                                Please note that the reference subtable is meant to be view-only. Data entry should still be done on the original sheet; in our example, sales orders would still be added through the Sales Orders sheet, and they will automatically be displayed under the respective customers.

                                                                Adding New Fields in your Reference Subtable

                                                                If you would like to add a new field in the reference subtable that exists on your form, click on Sheet Linking Tools to view all the existing links. You'll see the source form's name under "Show references from existing sheets". You will be able to add available fields to your linked subtable by clicking on this name.

                                                                Link your Reference Subtable Rows to the Related Entry on your Source Sheet

                                                                Once you have created a reference subtable on your sheet, you can create a link on the subtable rows for a text field of your choice to take you to the related entry when clicked.

                                                                In our example below, we're going to change one of the reference subtable fields on our Customers sheet to link to the related sales order record in the Sales Orders sheet.

                                                                In the form page Design Mode, navigate to Form Tools. You will see that the source sheet of the reference subtable with a gear icon next to its name. Click the gear icon to set up the link.

                                                                This will show you a dialogue box to set the field your link will be in. In our example, we want this to be the "Sales Order #" field. If the source sheet has multiple versions, you can configure displaying which one as default.

                                                                Save your process and exit the design mode. You'll now see that your selected field values have become links.

                                                                Create a Full Entry in a Linked Subtable

                                                                If you have a subtable that is a reference from another sheet, or is linked to a full entry with a sheet generated from this subtable, you can add an action button to easily add a new entry in the form where this subtable is referring to.

                                                                To do this, go to the design mode of the form page you would like to add the action in. You will find a list of your linked sheets under the Form Tools menu, sorted beneath the type of linking. Click on the gear icon next to the linked sheet you would like to add a new entry in.

                                                                You'll see the option to Create a button to add records with the new sheet.

                                                                You will be prompted to name the button that will be added to your action.

                                                                This will create an action button that will allow you to add a new entry to your subtable by filling out the full version of the form.

                                                                Note: If you want to remove action button, you may refer to this article

                                                                5.1.6    Link Fields From Parent Sheets

                                                                When to Link Fields from Parent Sheets

                                                                If you have added new fields to a sheet generated from a subtable, or have added a reference subtable to a sheet and would like to add new fields from the parent sheet, you can use the link fields from parent sheets option to link the new fields.

                                                                Optionally, you can also add independent fields that belong to the parent sheet for display purposes by using this linking tool.

                                                                For example, on the Sales Order sheet, you initially created a new sheet from sales items subtable, and added a new subtable field on the Sales Order sheet that you would like to add to the new sheet created from this subtable as well. You can achieve your goal by using the link fields from the parent sheet option. If you would like to display other information related to the Sales Order on the new sheet created from subtable, such as the Sales Order Date or Order Status, then you can add these fields by using this linking tool.

                                                                Old & New Ways to Link Fields From Parent Sheets

                                                                1. If you used this method to link fields from parent sheets before 2021/01/09, these fields will be added using the old way. The added fields will have the same field IDs as the respective fields on the parent sheets, meaning that these fields will still belong to the parent sheets and are directly added to the child sheets for displaying purposes only (when linking that field from the parent sheet, it will be set as read-only by default). If you use this way to link fields from parent sheets, your fields may have filtering and sorting issues. To fix these issues, we suggest you remove these fields and add them again by linking them from parent sheets using the new way.

                                                                2. If you used this method to link fields from parent sheets after 2021/01/09, these fields will be added using the new way. The system will add the fields using the link & load tools with the keep loaded value sync with source automatically enabled. In the design mode, you will see that these fields will have an "L" icon with a gray background that is lighter than the background of the icon on a normal loaded field. These fields on the child sheet will be automatically synced from the parent sheet and are only for display purposes (when linking these fields, it will be set as read-only by default).

                                                                How to Link Fields from Parent Sheets

                                                                To use this type of linking, navigate to the Design Mode through the Change Design button. Click on Form Tools. You'll see the available parent sheets as options listed under Link fields from parent sheets, in the Sheet Linking Tools category.

                                                                When you click on the sheet name, a pop-up window will list all the available fields that can be added to your child sheet. You can drag and drop any of these listed available fields into your database design.

                                                                The available fields with a red border are subtable fields linked with the current sheet. The fields with a blue border are regular fields that belong to the parent sheet, which should be used only for display purposes on the current sheet. Don't forget to save your design before exiting the design mode.

                                                                Note: The maximum number of records you can sync at once using Link Fields from Parent Sheets is 50 records, and the system will not sync the excess records. (If you have special needs to increase this limit, please contact us.)

                                                                5.2    Custom Action Buttons

                                                                Action button types

                                                                On sheet design page, you can add custom action buttons.

                                                                1. Convert Records

                                                                2. Update Values

                                                                3. Update Value On Another Sheet

                                                                4. Send Custom E-mail

                                                                5. Combine Buttons can let you execute multiple actions through a single button click, for example, simultaneously executing Create Delivery Note (Convert records) and SO Complete (Update values).

                                                                6. Create custom buttons to have easy access to your frequently used tools

                                                                You can edit existing custom buttons from the design page by going to Custom Buttons section and clicking on the action button name you'd like to edit. Save changes after you finish.

                                                                Additional settings

                                                                These settings can be found under Design mode > Form Settings > Actions.

                                                                Confirm before execution

                                                                To prevent users from accidentally clicking on action buttons, you can configure the action buttons to be Confirmed before execution. With this configuration, users will have to confirm that they would like to execute the action.

                                                                Only executable when approved

                                                                In some situations, executing action buttons make significant changes to existing entries. In order to have another layer of security, you can configure the action buttons to be executable only when approved in the approval flow.

                                                                Hide this action button

                                                                If you would like to hide some action buttons, for example, after combining two action buttons, you will not have the option to delete the old action buttons, but you can hide it to prevent users from accidentally clicking.

                                                                Action available for these user groups

                                                                It's very common for a sheet to be accessible by multiple user groups, with different access right privileges.

                                                                For example, while a user group might be a "Viewer" who can only view entries, "Admin" or "Bulletin Users", on the same sheet would be able to modify entries. In most cases users who have "Viewer" access rights shouldn't be able to view or click on the action button. As the result, you can have a more fine-tuned control on the access rights for each action button through this additional setting.

                                                                By default, the action buttons are available for the EVERYONE user group, which means that anyone who has access to the sheet would be able to execute this action. You can click on the dropdown arrow under "Action available for these user groups" to select the user groups you would like to grant access to.

                                                                Only available for users who can edit this entry

                                                                Sometimes you would like to allow users to modify entries with action buttons, but only the entries that they have editing rights to. In this case, you can check Only available for users who can edit this entry. With this being configured, this action button will be only available for users on the records that they have editing rights to, and not on the records that they can only view.

                                                                Display execution status

                                                                When this setting is enabled, a progress indicator will appear in the lower left corner. This helps prevent misunderstandings or concerns about the button not working or system failures when some actions take longer to execute.

                                                                Removing action buttons

                                                                You can delete the action buttons under Form Page Design Mode > On the left side panel > Form Settings > Actions > click x next to the action button you don't need > Save design changes.

                                                                Other use cases

                                                                1. Scan QR code to execute action buttons by using action barcode.

                                                                2. Adding action buttons into fields.

                                                                3. Hiding or locking action buttons through conditional formatting, please refer to this article.

                                                                4. Put a field’s ID as a parameter in the link address, so you can go to different pages based on its different field values through the action button.

                                                                5.2.1    Convert Records Button

                                                                Converting Records

                                                                Creating a button in order to convert records to post some data values in an entry to be saved in another sheet can be done with this custom action button.

                                                                Your users will be able to click an action button in your source sheet to create a copy of your data (which can be all of your fields, or a selection of your field values) to be saved in this other sheet.

                                                                This linking type is different from having multiple versions of the same sheet as when you convert a record, the data values will be essentially copied and saved in a new entry in another sheet, and will not be using the same data pool. Therefore, it is possible to overwrite the data in the converted record without having it being changed in the source.

                                                                Creating a Link to convert records from one sheet to another

                                                                To create an action that will enable users to convert an entry from a source sheet to another sheet that the data will be saved into, click on the Convert Records option under the Sheet Linking Options button in the Design Mode of your source sheets' form page.

                                                                In our example below, we will be creating a sales order sheet that will use values from a quote sent to a customer.

                                                                The Quotes sheet already has some values for the customer to decide if they would like to place a sales order or not. At this stage, we do not have a link with the Sales Orders sheet.

                                                                The Sales Orders sheet is very similar to the structure of the Quotes. Having a similar design or sharing many fields is not a necessity for converting records, but it's helpful to be consistent with your design.

                                                                Navigate to the Design Mode of your sheet that will contain the source values. In our example, this is the Quotes sheet, as we'll be creating a sales order according to the values we quoted to the customer.

                                                                Click Form Tools to see a list of custom action button types you can add to your form. Click Convert Records.

                                                                This will display a dropdown with a list of sheets in your account. Select the sheet where you'll save values from the source. For our example, this is the Sales Orders sheet.

                                                                In this step, you'll be asked to map fields to each other. The section Use value from this field will show you fields from the source sheet, while the Fill in this field section will display fields that are in the destination sheet. Select the fields that you'd like to save during the conversion, this can be all the fields on your sheet, or only some of the fields on your sheet depending on your specific requirements. You can also click "Auto mapping fields" to map fields that have the same name on both sheets.

                                                                Make sure that you have mapped all fields correctly. Depending on your sheet design, the field names can be the same, or entirely different. It's always helpful to have clear field names in order to have clear communication with different database designers and other users in your account. Once your done with the fields you'd like to map, click Create convert record button.

                                                                Ragic will prompt you to enter a name for the action button that your users will see. Make sure that the action name you are writing will be clear to other users.

                                                                After confirming the above, Ragic will have added your record conversion as an action button, which will be accessible from the Actions menu under your Form Settings. Make sure that you save your form design for your new action button to take effect.

                                                                Using the Action Button to Convert Records

                                                                Once you have completed all the steps to create a convert record link, you'll be able to see your new action button on the lower-right corner of your saved records in your source sheet. When a user clicks this button, this will create a new record in your destination sheet.

                                                                In our example, after clicking the Create Sales Order from Quote action button, the values from our quote record will be saved as a new record in our sales orders sheet. This way, we're able to see the Quote ID of the original quote that was sent to the customer, and all other related field values from our quote such as the product line items are being copied as well.

                                                                Each time the action button is clicked, a separate new record will be saved in the destination sheet. In this example, this means that we can generate different sales orders from the same quote.

                                                                To prevent users convert an entries more than once, you can refer to this article.

                                                                You can make revisions to your destination sheet to have more fields according to your specific requirements. In our case, this could be adding the tax percentage and amount, and a discount percentage that is applied before the sales order is finalized.

                                                                Converting records from a subtable

                                                                While you can convert a main form entry from one sheet to a main form entry in another sheet, you can also convert subtable entries from one sheet to become part of another sheet's main entries.

                                                                In the example "from a Quote to a Sales Order" we used above, we've been able to convert subtable entries from one sheet to another sheet's subtable entries. When we click "Create Sales Order from Quote" button, the data value of subtable fields like Product SKU and Product Name in the Quote sheet are copied to the subtable fields in the Sales Order sheet, and every time we click this button, there will be a record saved in the Sales Order sheet.

                                                                To convert subtable entries from one sheet to another sheet's main form entries would be a little different. If there are N entries in the subtable, every time you click the convert button, there would be N records added in the corresponding sheet.

                                                                In our example below, we will be creating a Quote Records sheet that will use subtable values from a Quote sheet.

                                                                The Quotes sheet already has fields including Quote ID, Contact Name, Address, Phone Number in the main form, and subtable fields including Product SKU, Product Name, Unit Price, Oty, Subtotal.

                                                                The Quote Records sheet has fields including Product SKU, Product Name, Unit Price, Oty, Subtotal.

                                                                Clicking on the Convert Records option under the Sheet Linking Options button in the Design Mode from the Quote sheet's form page, we select to convert to the Quote Records sheet, and map the subtable fields of the Quote sheet to the fields of the Quote Records sheet, to create a convert record button.

                                                                After saving our setting, when we click this "Create Quote Records from Quotes" button, 2 records will be converted to the Quote Records sheet since this subtable contains 2 sub-entries.

                                                                Advanced Setting: Apply Subtable Filtering Criteria

                                                                If the record you are converting includes subtable fields, you can apply a filter to only convert subtable entries matching the designated condition.

                                                                For example, if you would like to convert a sales order to one delivery note, yet not all the products on the sales order would need shipping, you can add an additional field to state whether the product would need shipping.

                                                                And in the advanced settings of its convert records button, you can select to apply a subtable filter criteria, such as to convert subtable records when selected “Yes” for shipping.

                                                                After the setting is completed, you will only convert subtable records that match the filter condition.

                                                                Advanced Setting: Apply Subtable Grouping Criteria

                                                                If your convert record settings include subtable fields to be converted onto fields on the main form and subtable fields in the target sheet, you will create as many new records in the target sheet as the number of records you already have on the subtable in the source, and each new record will have as many subtable records as you have in the source. If you would like to group the records and create a new record for each group while converting, you may apply a subtable grouping criteria in your covert records button.

                                                                For example, we have a sheet that records the daily sales of a store, with a subtable recording each successful sale.

                                                                We would then want to convert the subtable records to another sheet but wish to only create a new record for each salesman, and the other affiliated data would be populated in the subtable.

                                                                To do that, you will first need to map your fields correctly in the convert records setting, and then apply subtable grouping criteria and select the field you want your subtable records to be grouped by. In this case, your subtable records will be grouped by the field “salesman”.

                                                                After clicking to convert records, you will then create as many new records on the target sheet as the number of different names you have in the “salesman” subtable field.

                                                                With each new record having a subtable that contains the converted data affiliated to the salesman.

                                                                You can also select to convert subtable records with an empty value in the grouping field. By selecting it, those subtable entries with an empty value in the grouping field will all be in one group and create one new record on the target sheet.

                                                                Situations when you convert records

                                                                to a main form entry to subtable entries
                                                                from a main form entry ✔ (clicking the button once to create one record)
                                                                from subtable entries ✔ (clicking the button once to create N records, N = the number of subtable entries) ✔ (clicking the button once to create one record)

                                                                Note: The system will not allow you to convert a main form entry from a sheet to subtable entries in another sheet because a main form entry only has one value in a field, but the subtable entries may have more than one value in a field.

                                                                Other configurations for action buttons

                                                                Additional Settings

                                                                There are some additional settings you can configure for action buttons, you may refer to this article for detailed information.

                                                                Remove the action button

                                                                If you want to remove the action button, you may refer to this article.

                                                                5.2.2    Update Values

                                                                About Update Values

                                                                Sometimes you might want to update field values on a record without manually inputting the values, especially for repetitive actions in your workflow. For this, you can create an update values action button that will run an update for your record without entering the editing mode.

                                                                We are taking a sheet "Tickets" as our example here, to create an action button that can enter a field value in the field "Need Action?" by clicking the Update Values action button.

                                                                Setting up an Action Button to Update Values

                                                                Navigate to the form page Design Mode, and click Form Tools. You'll find Update Values under the Custom Buttons section.

                                                                You can now set up one or more fields to be updated with this action button, by entering their field values.

                                                                You can click + to add more fields that you would like this action button to help update simultaneously if necessary.

                                                                After your configuration is completed, click the "Create Update Values button".

                                                                You will be prompted to name the button, which will be added to your "Actions" menu, visible to users in every records' form page on the lower-right corner.

                                                                Note: If you click the "Create Update Values button" with your value empty in the update value action button configuration, you will be prompted that your values for these fields will be cleared, therefore please make sure you want these values to be empty when the action is run.

                                                                Don't forget to save your design changes once you set up your update values action button.

                                                                Once your update values action button is saved, you will see this action button on the lower-right corner of every form page when you access your records.

                                                                You can click the action button to update your values.

                                                                The value updated by this action button will be recorded in the record history, in the i icon on the lower right corner.

                                                                If you want to update a field with different sets of values depending on the situation, you can create multiple update values action buttons.

                                                                Advanced Setting: Create a new subtable record

                                                                You can allow the system to autopopulate subtable fields with your frequently entered subtable values by creating an Update Values action button with the “Create a new subtable record” configuration.

                                                                Example:

                                                                Let's say that most clients in your ski resort rent the same pieces of equipment. By creating an update values action button with the "Create a new subtable record" configuration in the sheet, the system will auto-populate the subtable with the frequently rented equipment data.

                                                                Set up all the fields and the field values you'd like to populate with, then click the "Create a new subtable record" option in the advanced setting. Remember to click Create 'Update Values' button, enter a name for this action button, then click OK.

                                                                As shown in the below images, the subtable values are auto-populated through an action button click.

                                                                You can also simultaneously enter multiple sets of field values to the subtable by creating multiple action buttons and putting them together as one Combine button.

                                                                Data in the entry can still be modified after the action buttons are executed.

                                                                Advance Setting: Update all subtable records

                                                                In Ragic, you can update all subtable records with an action button click. This is a very convenient way to, for example, update all the subtable checkbox field values to "Yes" (thus showing check marks) after a customer return all the ski equipments rented from your ski resort.

                                                                In the action button configuration, fill the text box under "with these values" caption with the values you want to update, then click Advanced > Update all subtable records.

                                                                Also remember to click Create 'Update Values' button, name the action button, click OK and save the sheet design.

                                                                After the action button is set, you can simultaneously change all the values of a subtable field with one click.

                                                                Advanced Setting: Apply Subtable Filtering Criteria

                                                                If we only want to update the subtable records which fulfill certain conditions, we can apply this setting. For example, in the Quotes sheet, the client decided to buy some of the product eventually, so will only need to convert some of the subtable entries and also update their statuses.

                                                                You can check Apply subtable filter criteria under Update all subtable records and customize filtering criteria.

                                                                After you've completed the settings, you can click the action button and the system will update all subtable records that match your filtering criteria.

                                                                Supported variables of updated values

                                                                Below are the supported variables you can use in the update value action button configuration as updated values.

                                                                Variable Updated values
                                                                {{USER}} The user(email) who clicks on this action button.
                                                                {{USERNAME}} The user(name) who clicks on this action button.
                                                                {{TODAY}} The updated date (default timezone: UTC+0 if there's not custom configured timezone in company setting.)
                                                                {{NOW}} The updated time (default timezone: UTC+0 if there's not custom configured timezone in company setting.)
                                                                {{Field ID}} Reference values from a specific field. Only regular fields are supported.
                                                                {{$SEQ}} Use Update all subtable records mode to reset sequence number in subtable. About detailed instruction, please refer to this page.
                                                                {{$SEQ_FILTERED}} Use Update all subtable records mode and Apply Subtable Filtering Criteria to reset sequence number for specified text value in subtable.
                                                                {{CLEAR_DEFAULT}} To clear fields that apply the following Default Values ($SEQ, #DATE, #TIME, #DATETIME, #YEAR, #MONTH, #WEEKDAY, #USERNAME, #USERID), you must use this variable. In other cases, updating the fields with empty values will clear them.

                                                                Other configurations for action buttons

                                                                Additional Settings

                                                                There are some additional settings you can configure for action buttons, you may refer to this article for detailed information.

                                                                Remove the action button

                                                                If you want to remove the action button, you may refer to this article.

                                                                5.2.3    Update Value on Another Sheet

                                                                About Update Value On Another Sheet

                                                                Sometimes you might want to update field values in sheet A's records according to the values in a record from sheet B, for example, issuing goods from a Sales order to change the inventory of the products, or running balances of an account according to your transaction records. To achieve this, you can create an update value on another sheet action button that will run an update for your records.

                                                                How to Set up an Action Button to Update Values On Another Sheet

                                                                Let's say we have two sheets "Sales Order" and "Inventory". We can take issuing goods as our example here.

                                                                To change the inventory of the products based on a sales order, we can create an action button on the sheet "Sales Order". Navigate to the design mode on your form page by clicking on the "Change Design" button, and click Form Tools. You'll see Update Value on Another Sheet listed under the Custom Buttons category.

                                                                Choose the sheet to be updated from the pop-up window. In our case, we want to update our "Inventory".

                                                                You will be able to configure the conditions for ways to update Inventory records as explained further below:

                                                                Updating value on other sheet

                                                                Use this field value on sheet Sales Order: Qty (this is a subtable field)

                                                                Update to: "-" (To deduct)

                                                                This field value on sheet Inventory: Total Quantity


                                                                You can update more than one field value by clicking the "+" button.

                                                                Note: The execution sequence would be from top to bottom.

                                                                The conditions of updating value on another sheet

                                                                When field value on sheet Sales Order: Item

                                                                Matches

                                                                This field value on sheet Inventory: Product Name

                                                                You can add as many conditions as you'd like by clicking the "+" button.

                                                                (If there are multiple conditions, the action can be executed successfully only if all conditions are met.)

                                                                Note: If your conditions are not reasonable, you will not be able to save your configuration. To check what common mistakes are while setting conditions, please see here.

                                                                Advanced Setting

                                                                Clicking on "Advanced Setting", you will be able to configure these advanced settings:

                                                                Recalculate formulas in sheet Inventory: If you have any fields that have formulas referring to the field values that will be updated by the "Update Value On Another Sheet" action button, you should check this box to recalculate formulas once the field value is updated.

                                                                Create reverse action button: This will create a new action button, which will allow you to reverse the update that was submitted with the "Update Value On Another Sheet" action button.

                                                                Automatically execute when saving: The update value on another sheet action will be triggered automatically when saving the entries after creating new entries, or after modifying existing entries. The updated value will always be based on the latest value. Only one set of action buttons can be configured as automatically executed on a sheet.

                                                                After your configurations are complete, click the "create update value on another sheet button".

                                                                You will be prompted to name the button, which will be added to your "Actions", visible in every records' form page in the lower-right corner.

                                                                You may notice there are new date & time fields created by the system in order to record the time you execute an update value on another sheet action. Please do not delete this field.

                                                                If your action button was created after 2017/06/01 with a reverse action button, it's recommended to configure this field as read only to prevent users from modifying the field value manually, which might cause the action to execute a reverse action multiple times.

                                                                If your action button was created after 2023/03/21, the "Executed Time Field" will have an undeletable attribute. You will need to delete the action button before deleting this field.

                                                                Now that your update value on another sheet action button is created, don't forget to save your design changes.

                                                                We can create a new sales order and try out the new action to update value on sheet "Inventory".

                                                                As you can see from the link & load pop-out list, the quantity of the item "Chair" in our inventory is 35, and in this sales order, the customer wants to order 15.

                                                                After saving this record, you can click on the update records action button "Good issue".

                                                                The system will prompt a message saying that the update is finished, and will automatically fill the date & time field.

                                                                The item quantity of the item "Chair" in our inventory will now be updated, and there are only 20 left.

                                                                To reverse the action "Goods issue", you can click on the action button "Reverse Goods issue". The reverse action will be executed and the value in the date & time field will be cleared.

                                                                (You will have this action button only if you have checked the box Create reverse action button while setting your update records action.)

                                                                If your action button was created before 2017/06/01, you may need to refer to this section for information regarding using the reverse action button.

                                                                Reverse Action Button

                                                                Note: The "Reverse action button" that reverses the action for the update value on another sheet button has been updated on June 2017.

                                                                If your update value on another sheet action button was created or edited before June 2017, to reverse the action, please clear the value in the system-generated date & time field first, then click on the "Reverse action button".

                                                                The following outlines the update of the "reverse action button".

                                                                Previously, users would check the last executed date & time field. If the field is not null, the action button will be executed, and update the executed date & time.

                                                                The current behavior has changed to directly executing the action, and clearing the executed date & time field automatically.

                                                                Previously, there was no prevention mechanism for repetitively executing reverse actions.

                                                                You can now execute the reverse action button only if the last modified time field has a value. The system will determine whether the update value on another sheet action button has been executed or not, based on the recorded executed date & time.

                                                                Note that Ragic still supports the previous versions' action buttons, following the previous rules.

                                                                Advanced Setting: Apply Subtable Filtering Criteria

                                                                If the record includes subtable fields, you can apply a filter to only update subtable entries matching the designated condition.

                                                                For example, if you would like to update stock, yet not all the products on the outgoing stock would need shipping, you can add an additional field to state whether the product would need shipping.

                                                                And in the advanced settings, you can select to apply a subtable filter criteria, such as to update subtable records when selecting "Yes" for shipping.

                                                                Based on the conditions, when the button is executed, it will only deduct the quantity of subtable items that have selected "Yes" in the "ship?" field.

                                                                Trigger the Button More Than Once

                                                                You can only trigger the update values on another sheet action button once in each entry. The system will check the system-generated date & time field to prevent double execution. There are scenarios that you may need to trigger the button again:

                                                                You would like to update the sheet content and run the button for newly added info

                                                                It usually happens when the button is set up with "+ to add" or "- to deduct." If you clear the value of the system-generated date & time field, existing rows might be repeatedly added or deducted incorrectly. Hence, please run the reverse action button first, update the entry, and re-trigger the action button. For example, you have a purchase order containing 1 item and have deducted the inventory already via the action button. Now, if you would like to add an extra item, the process would be below:

                                                                Step 1. Run the reverse action button

                                                                This step will revert the deduction resulting from the existing line item.

                                                                Let's say you've deducted three inventories for the existing line item, the reverse action button will help you add back those inventories and clear the system-generated date & time field. This step is pretty important to ensure there won't be double deductions.

                                                                Step 2. Add an extra line in the subtable and trigger the update values on another sheet action button.

                                                                You'll modify the values constantly and would like the values to be updated to the destination sheet always

                                                                It usually happens when the button is set up with "= equal." For example, there are two sheets that have no linking relationship directly. However, you would like modifications in sheet A to be updated to sheet B always. You may follow the step below:

                                                                Step 1: When creating the action button, check the "Automatically run when saving" option in advanced settings.

                                                                Step 2: Apply the formula: " " to the system-generated execution time field.

                                                                Common Mistakes and Tips While Setting Conditions

                                                                1. If you are going to add or deduct the value, the field types of both source and field to be updated have to be Numeric. (To fill in a string, please use "=".)

                                                                2. You need at least one set of conditions.

                                                                3. You are not allowed to set different conditions on the same field of the target sheet.

                                                                4. Your update record action button will become invalid if you remove the date & time field that is created by the system. (You can rename the field if necessary, or hide the field if you do not wish to create a reverse action.)

                                                                5. You cannot click on the update records action button twice or click on the Reverse action button without clearing the value from the date & time field created by the system.

                                                                Other Configurations for Action Buttons

                                                                Additional Settings

                                                                There are some additional settings you can configure for action buttons, you may refer to this article for detailed information.

                                                                Remove the action button

                                                                If you want to remove the action button, you may refer to this article.

                                                                Other use cases

                                                                Apart from the example of inventory in this article, you probably would like to know how to calculate a running balance on Ragic.

                                                                5.2.4    Send Custom E-mail

                                                                About Send Custom E-mail

                                                                It's possible to create e-mail templates and saving them directly on your sheet design in order to have users send out e-mails that contain your entry values saved in your database. Users can directly press an action button created with the Send Custom E-mail option to send out e-mails that have been automatically filled with your values. The e-mail template's subject and body text can contain parameters described below.

                                                                Use cases include sending order confirmation details to customers or sending purchase receipts to vendors.

                                                                Setting up an Action Button to Send Custom E-mail

                                                                Navigate to the Design Mode on your form page and click Form Tools > Send Custom E-mail under the Custom Buttons title.

                                                                A pop-up window will allow you to compose your e-mail template. You can use HTML formatting and the variables. Check all supported variables here.

                                                                You can click on which will show you a demo on what the custom e-mail looks like.

                                                                If you decide to use our standard template instead, click on will discard all the changes you've made.

                                                                Furthermore, you may also attach URL, Excel, PDF, or mail merge file of the record; or other attachments. When you attach the URL of the record, please make sure you have granted the access right of the sheet to the recipients. Otherwise, they'll have a blank page when they access the database through the entry URL.

                                                                Once the editing is complete, remember to save before you exit the pop-up window.

                                                                Send custom e-mail after saving

                                                                You can check Automatically run when saving if you want to automatically execute this action button after saving.

                                                                History of sent custom e-mails

                                                                After sending a custom e-mail, you may click on the mail icon to view custom e-mail history.

                                                                Other configurations for action buttons

                                                                Additional Settings

                                                                There are some additional settings you can configure for action buttons, you may refer to this article for detailed information.

                                                                Remove the action button

                                                                If you want to remove the action button, you may refer to this article.

                                                                5.2.5    Combine Buttons

                                                                About Combine Buttons

                                                                It's possible to just click one action button and execute multiple actions through combine buttons, for example, clicking Create Delivery Note + SO Complete to execute Create Delivery Note (Convert records) and SO Complete (Update values) simultaneously.

                                                                Combining Buttons

                                                                Navigate to Design Mode on your form page and click Form Tools > Combine Buttons under the Custom Buttons title.

                                                                Note: You can see combine buttons only if your sheet already contains existing action buttons, and only the action buttons created from Custom Buttons under Form Tools can be combined.

                                                                A pop-up window will allow you to select the buttons that you would like to combine.

                                                                Changes made on any of the source buttons will be applied to the Combine Button that has already been set. However, if any of the source buttons are deleted, Combine button will also need to be recombined.

                                                                Advanced Settings

                                                                When executing a combined button, its actions will be executed based on the order set in the combined button. If one of its actions fails, by default, the previous actions will be backtracked, and the subsequent actions will not be executed, which is equivalent to not executing the combined action button at all.

                                                                If this option is checked, when executing the combined action button, the failed action will be skipped, the previous actions will not be backtracked, and the subsequent actions will continue to execute.

                                                                Other configurations for action buttons

                                                                Additional Settings

                                                                There are some additional settings you can configure for action buttons, you may refer to this article for detailed information.

                                                                Remove the action button

                                                                If you want to remove the action button, you may refer to this article.

                                                                5.2.6    Add Frequently Used Tools as Custom Buttons

                                                                Add frequently used tools as custom buttons

                                                                If you disable import, export, and mass actions in feature access setting but still wish to grant users those feature accesses to certain sheets, you may consider adding them as custom action buttons. You can also create custom buttons to have easy access to your frequently used tools. From Design Mode, go to Form Settings, select the suitable Action type, and name your button.

                                                                Simply click on the “Add Action” button, save the design, and exit Design Mode. Your custom button will show up in the lower-right corner of your database:

                                                                In Listing Pages

                                                                Here are the tools which you can add as custom buttons in Listing Pages:

                                                                Tools
                                                                Download as Excel File
                                                                Printer Friendly
                                                                Send Mass E-mail
                                                                Delete all filtered

                                                                In Form Pages

                                                                Here are the tools which you can add as custom buttons in Form Pages:

                                                                Tools
                                                                Clone Entry
                                                                Download as Excel File
                                                                Download as PDF
                                                                Printer Friendly
                                                                E-mail this entry
                                                                Apply all formulas to this record
                                                                Lock or unlock record
                                                                Delete entry
                                                                Link & Load Sync

                                                                Other configurations for action buttons

                                                                Additional Settings

                                                                There are some additional settings you can configure for action buttons, you may refer to this article for detailed information.

                                                                Remove the action button

                                                                If you want to remove the action button, you may refer to this article.

                                                                5.2.7    Add Action Buttons Into Fields

                                                                x
                                                                Add action buttons into fields

                                                                Add to Form Page

                                                                Add to Listing Page

                                                                Note: The action button created by mail merge cannot be added into fields.

                                                                Add to Form Page

                                                                If your sheets already have action buttons, then you can add them into fields through drag-and-drop.

                                                                You can also right-click to Insert Action Button.

                                                                By doing so, you can place action buttons wherever you want in the sheets.

                                                                Add to Listing Page

                                                                After creating action buttons, you can also add them to the Listing Page as fields.

                                                                Under Listing Page Design Mode, you can add action buttons as fields using the Field Picker.

                                                                By doing so, you can directly execute the action button on the Listing Page without clicking into the Form Page for each record.

                                                                5.3.1    Validation

                                                                Validation with Regular Expressions

                                                                Ragic provides a simple validation mechanism via regular expressions. If you know how to write regular expressions, you can create a regular expression to check if the user input is valid.

                                                                If you are not familiar with regular expressions, you can still choose a validation template from the sample box or apply conditional formulas as workaround.

                                                                AI Regular Expressions Generator

                                                                You can ask AI to help you create regular expressions (regex). Your requirement should be concise and clear. For example, if you want to restrict the field value to have the first 3 characters as numbers and the last 3 characters as letters, you can simply specify it as "First 3 characters are numbers, last 3 characters are letters".

                                                                Click Generate Regex, it will automatically create a regular expression. Then, by clicking Copy to Validation Field, you can copy the syntax into the validation.

                                                                After finishing the configuration, remember to save the design.

                                                                Validating Unique Attributes

                                                                A common validation that our users usually need is to make sure that the field value stored has not been stored in the database before. This requires a backend database check, which cannot be done by regular expressions. You can simply go to the field configurations under the Basic tab in Field Settings, and check the Unique attribute. Ragic will then check if the value that the user has entered is unique. If not, the value will not be stored and the user will be prompted for the duplication.

                                                                Validating Number of Characters

                                                                You can use a regular expression in the validation tab for your field to validate the input.

                                                                The regular expression

                                                                ^.{6,7}$

                                                                validates that the field has a minimum of 6 characters and a maximum of 7.

                                                                Other than changing the set of numbers, you can also set it to a maximum, such as ^.{0,7}$ (a maximum of 7 characters), or a minimum, ^.{6,}$ (a minimum of 6 characters).

                                                                Validating the Language of Input

                                                                You can ensure the user fills in a field in a certain language by using the validation feature by adding a regular expression that checks the input to be in a certain language code range.

                                                                For example, if you want to make sure the language is in Cyrillic, you can use:

                                                                [\u0400-\u04FF\u0500-\u052F]

                                                                Below is a list of language code ranges for each language. You can also go to this link for more references.

                                                                Code Language
                                                                0000-007F Basic Latin
                                                                0080-00FF Latin-1 Supplement
                                                                0100-017F Latin Extended-A
                                                                0180-024F Latin Extended-B
                                                                0250-02AF IPA Extensions
                                                                02B0-02FF Spacing Modifier Letters
                                                                0300-036F Combining Diacritical Marks
                                                                0370-03FF Greek and Coptic
                                                                0400-04FF Cyrillic
                                                                0500-052F Cyrillic Supplement
                                                                0530-058F Armenian
                                                                0590-05FF Hebrew
                                                                0600-06FF Arabic
                                                                0700-074F Syriac
                                                                0750-077F Arabic Supplement
                                                                0780-07BF Thaana
                                                                07C0-07FF NKo
                                                                0900-097F Devanagari
                                                                0980-09FF Bengali
                                                                0A00-0A7F Gurmukhi
                                                                0A80-0AFF Gujarati
                                                                0B00-0B7F Oriya
                                                                0B80-0BFF Tamil
                                                                0C00-0C7F Telugu
                                                                0C80-0CFF Kannada
                                                                0D00-0D7F Malayalam
                                                                0D80-0DFF Sinhala
                                                                0E00-0E7F Thai
                                                                0E80-0EFF Lao
                                                                0F00-0FFF Tibetan
                                                                1000-109F Myanmar
                                                                10A0-10FF Georgian
                                                                1100-11FF Hangul Jamo
                                                                1200-137F Ethiopic
                                                                1380-139F Ethiopic Supplement
                                                                13A0-13FF Cherokee
                                                                1400-167F Unified Canadian Aboriginal Syllabics
                                                                1680-169F Ogham
                                                                16A0-16FF Runic
                                                                1700-171F Tagalog
                                                                1720-173F Hanunoo
                                                                1740-175F Buhid
                                                                1760-177F Tagbanwa
                                                                1780-17FF Khmer
                                                                1800-18AF Mongolian
                                                                1900-194F Limbu
                                                                1950-197F Tai Le
                                                                1980-19DF New Tai Lue
                                                                19E0-19FF Khmer Symbols
                                                                1A00-1A1F Buginese
                                                                1B00-1B7F Balinese
                                                                1D00-1D7F Phonetic Extensions
                                                                1D80-1DBF Phonetic Extensions Supplement
                                                                1DC0-1DFF Combining Diacritical Marks Supplement
                                                                1E00-1EFF Latin Extended Additional
                                                                1F00-1FFF Greek Extended
                                                                2000-206F General Punctuation
                                                                2070-209F Superscripts and Subscripts
                                                                20A0-20CF Currency Symbols
                                                                20D0-20FF Combining Diacritical Marks for Symbols
                                                                2100-214F Letterlike Symbols
                                                                2150-218F Number Forms
                                                                2190-21FF Arrows
                                                                2200-22FF Mathematical Operators
                                                                2300-23FF Miscellaneous Technical
                                                                2400-243F Control Pictures
                                                                2440-245F Optical Character Recognition
                                                                2460-24FF Enclosed Alphanumerics
                                                                2500-257F Box Drawing
                                                                2580-259F Block Elements
                                                                25A0-25FF Geometric Shapes
                                                                2600-26FF Miscellaneous Symbols
                                                                2700-27BF Dingbats
                                                                27C0-27EF Miscellaneous Mathematical Symbols-A
                                                                27F0-27FF Supplemental Arrows-A
                                                                2800-28FF Braille Patterns
                                                                2900-297F Supplemental Arrows-B
                                                                2980-29FF Miscellaneous Mathematical Symbols-B
                                                                2A00-2AFF Supplemental Mathematical Operators
                                                                2B00-2BFF Miscellaneous Symbols and Arrows
                                                                2C00-2C5F Glagolitic
                                                                2C60-2C7F Latin Extended-C
                                                                2C80-2CFF Coptic
                                                                2D00-2D2F Georgian Supplement
                                                                2D30-2D7F Tifinagh
                                                                2D80-2DDF Ethiopic Extended
                                                                2E00-2E7F Supplemental Punctuation
                                                                2E80-2EFF CJK Radicals Supplement
                                                                2F00-2FDF Kangxi Radicals
                                                                2FF0-2FFF Ideographic Description Characters
                                                                3000-303F CJK Symbols and Punctuation
                                                                3040-309F Hiragana
                                                                30A0-30FF Katakana
                                                                3100-312F Bopomofo
                                                                3130-318F Hangul Compatibility Jamo
                                                                3190-319F Kanbun
                                                                31A0-31BF Bopomofo Extended
                                                                31C0-31EF CJK Strokes
                                                                31F0-31FF Katakana Phonetic Extensions
                                                                3200-32FF Enclosed CJK Letters and Months
                                                                3300-33FF CJK Compatibility
                                                                3400-4DBF CJK Unified Ideographs Extension A
                                                                4DC0-4DFF Yijing Hexagram Symbols
                                                                4E00-9FFF CJK Unified Ideographs
                                                                A000-A48F Yi Syllables
                                                                A490-A4CF Yi Radicals
                                                                A700-A71F Modifier Tone Letters
                                                                A720-A7FF Latin Extended-D
                                                                A800-A82F Syloti Nagri
                                                                A840-A87F Phags-pa
                                                                AC00-D7AF Hangul Syllables
                                                                D800-DB7F High Surrogates
                                                                DB80-DBFF High Private Use Surrogates
                                                                DC00-DFFF Low Surrogates
                                                                E000-F8FF Private Use Area
                                                                F900-FAFF CJK Compatibility Ideographs
                                                                FB00-FB4F Alphabetic Presentation Forms
                                                                FB50-FDFF Arabic Presentation Forms-A
                                                                FE00-FE0F Variation Selectors
                                                                FE10-FE1F Vertical Forms
                                                                FE20-FE2F Combining Half Marks
                                                                FE30-FE4F CJK Compatibility Forms
                                                                FE50-FE6F Small Form Variants
                                                                FE70-FEFF Arabic Presentation Forms-B
                                                                FF00-FFEF Halfwidth and Fullwidth Forms
                                                                FFF0-FFFF Specials

                                                                5.3.2    Conditional Formatting

                                                                You can set Conditional Formatting to hide, or show fields, as well as set the color of a field label, field label background, field value, or field value, according to their value, or other fields' values. Your conditional formatting will also be applied on the embedded version of your form (currently only Database Form and Raw Embed).

                                                                Setting up Conditional Formatting

                                                                Our example form design is a shop that has different categories and subcategories of products, named "Product Category" and "Product Type" respectively. We have set the product types in cascaded selections, but don't want to display the "Product Type" field when it's empty (when the category "Special Collection" is selected).

                                                                Navigate to Conditional Formatting under Form Tools in the Design Mode.

                                                                Click New Rule to set options.

                                                                For our example, we would like to show the field "Product Type" if the "Product Category" is not "Special Collection".

                                                                Multiple formatting conditions can be set by clicking + button for the conditional formatting rule.

                                                                You can click on New Rule to add a new rule. In the example below, we would like to color the label background of the "Product Name" field when the "Special Collection" category is selected. To set the color, you can click on the color swatch next to the field.

                                                                Make sure you save your form design.

                                                                The rule we have just set works great to avoid confusion during form filling.

                                                                Note: Previously, our conditional formatting setting was called "Form Rules".

                                                                Other than the example mentioned above, you can also compare a date field with time parameters. This is extremely useful when you want to highlight entries based on the date field on the listing page.

                                                                Showing, hiding or locking action buttons

                                                                You can also show, hide or lock action buttons through conditional formatting. For instance, in "Purchase Requisition", you may hide the "Create PO" action button when the logged-in user is not "Procurement Officer" to prevent from inadvertently pressing the action button.

                                                                Read only

                                                                Your Ragic fields can also be set as read only with conditional formatting.

                                                                When a field simultaneously has conditional formatting for read-only based on rules and a field-level read-only setting, the conditional formatting takes precedence over the original field's read-only setting.

                                                                Not Empty

                                                                You can set the fields as Not Empty with conditional formatting. This can only be applied to independent fields on the Form Page.

                                                                If a field has been configured with the field-level Not Empty setting, it will remain Not Empty regardless of whether it meets the conditions for being Not Empty.

                                                                Hiding or showing field descriptions

                                                                You can also hide or show field descriptions through conditional formatting.

                                                                Hiding or showing value

                                                                You can also only hide or show field value with conditional formatting.

                                                                5.3.3    Reminders

                                                                What are Reminders?

                                                                You can set Reminders that are triggered by the values entered into the date fields in Ragic. You will have the option to send the reminders according to your daily workflow execution time. You can send reminders to the Entry Creator or the values on the Select User Field, Select Group Field, or E-mail Field when creating the form. Once the reminder is triggered, you'll receive a notification mail and the reminder will show up on the Event Calendar.

                                                                Setting up Reminders

                                                                To access the reminder settings in a form from Design Mode, go to the Form Settings tab and click on the Reminder tab.

                                                                Here you can set reminders according to the fields that contain dates. You will only have to do this once in your form design, and Ragic will send reminders automatically according to the date values entered into entries. You can set as many reminders as you want.

                                                                In the example below, we have already set two reminders for a Sales Order form that contains two date fields. A reminder will be sent to the data creator, and we're adding a new one for the field "Shipping Date", which will send a notification to the customer's e-mail the day an order is shipped.

                                                                Do not merge e-mails to the same receiver

                                                                It will affect whether to merge the reminders to the same receiver on the same day. If you choose to merge e-mails to the same receiver, you won't be able to customize the e-mail subject.

                                                                When the setting is unchecked, all reminders will be included in one e-mail thread.

                                                                When the setting is checked, each reminder will be sent as a separate e-mail.

                                                                Only for records matching shared view

                                                                In addition to fulfilling the date rule of the reminder, you can also send out emails only for records matching a specific shared view. For instance, you can provide promo codes to customers who haven't confirmed their orders (matching "status - draft") five days after creating them.

                                                                How Reminder e-mails are displayed

                                                                The image below shows the order shipping reminder e-mail.

                                                                Custom reminder e-mail

                                                                You can customize the subject and the content of your e-mail notification by clicking on Custom Email.

                                                                In the pop-up window, you can design the e-mail template using HTML formatting and the variables. Check all supported variables here.

                                                                You can click on which will show you a demo of how the custom e-mail looks like. If you decide to use our standard template instead, click on will discard all the changes you've made. Once you've finished editing, remember to save before you exit the pop-up window.

                                                                Reminder on the Event Calendar

                                                                Once a reminder is triggered, it will show up on the Event Calendar on the database homepage.

                                                                The title of the reminder on the event calendar will be the same as the subject line of the custom reminder e-mail. If you would like to change the title, you may customize the subject in the Custom E-mail link on the Reminder menu.

                                                                If you don't want to display the reminder on the event calendar, you may uncheck the box "Add this reminder to events calendar when record saved " in the Form Settings tab:

                                                                5.3.4    Processing Payments

                                                                Connect your bank account

                                                                You can accept payments with Ragic via the service provided by Stripe.

                                                                To set up your payment process, go to Change Design > Form Settings > Payment. Choose the field to indicate the payment amount, set up the currency, then click Connect bank account.

                                                                You will be directed to Stripe account activation page. From there, you'll be able to set up connection with Ragic.

                                                                Follow the instruction to fill in the form and click Authorize access to this account after you complete it. You'll then be redirected to Ragic.

                                                                Click the "Click to confirm connection" button on your Ragic sheet design mode. If the connection is successfully established, you will see the "Connection confirmed!" message. Remember to save your design afterwards.

                                                                Pay with Ragic

                                                                After the bank account is connected, users will see a cart icon at the bottom right side of the page and clicking it will show the red "Proceed to checkout" button. By clicking that button, users can fill in the card information they'd like to pay with. They will also be informed on whether or not the payment is successful and the payment date.

                                                                Manage payments in Stripe

                                                                You can manage all the payments in Stripe's dashboard.

                                                                For more information, please refer to Stripe's Documentation.

                                                                5.3.5    Auto Save

                                                                Turn on Auto Save

                                                                You can find the Auto save button on top of the sheet design mode. Click to turn it on.

                                                                When auto save is activated, any changes made when users are editing data will be automatically saved without the need to click on the save button.

                                                                History

                                                                Users can see the latest update time next to the reload button when they are entering data. Record modification history will be updated regularly.

                                                                Sheet validation

                                                                Please note that if the data entered do not meet the setting requirements, such as not empty, validation, unique...etc, changes will not be saved. You can click on Why? at the upper right side of the page to see why the data isn't saved.

                                                                5.3.6    Set Custom Save Message

                                                                If you want the system to display a message whenever a record is created or edited, you can set custom save message. For example, showing the message "We have already received your feedback. Thank you for dining with us!" after someone submits a survey form.

                                                                In Design Mode, under the Form Settings > Form Settings in the left-side panel, you can see two options:

                                                                1. Custom create message: You can custom the message displayed after creating an entry here.

                                                                2. Custom edit message: You can custom the message displayed after editing an entry here.

                                                                5.3.7    Freeze Rows or Columns

                                                                Please note that this feature is not supported on Internet Explorer.

                                                                If you would like certain rows from the top or certain columns from the left to remain on the screen no matter where users scroll on the sheet, you can freeze its rows or columns.

                                                                In the design mode of the form page, go to form tools and click on Freeze Rows/Columns to select the number of rows from the top or columns from the left you would like to freeze.

                                                                After that, your selected rows or columns will remain on the screen of the form page no matter where your users in this database scroll to.

                                                                You can also apply this function when you go through the same process on the listing page, but unlike on the form page, you are only allowed to freeze the columns of the listing page.

                                                                5.3.8    Form Deletion Policy

                                                                If you have subtable(s) in the sheet, and there's sheet linked with this subtable (by using new sheet from subtable or the subtable is inserted by using show references from existing sheets), you can configure if the subtable records should be reserved in the linked sheet when deleting the record from the parent sheet.

                                                                You can find this configuration under Form page design mode > Form settings > Form settings > Form Deletion Policy

                                                                There are three options:

                                                                1. Do not delete related subtable record

                                                                2. Delete subtable records

                                                                3. Delete subtable plus reference subtable records

                                                                Do not delete related subtable record

                                                                The records in the new sheet from subtable won't be deleted when you are deleting the related record in parent sheet if yu choose this option. You will only see that some values disappear in fields which are from parent sheet.

                                                                Delete subtable records

                                                                You can delete records and related subtable records in the new sheet from subtable at the same time when you choose this option. You will see that the records are deleted in the new sheet from subtable after you delete the related entry in parent sheet.

                                                                Delete subtable plus reference subtable records

                                                                This option is similar to "Delete subtable records" but with one more configuration.

                                                                If you have a subtable which is made from show reference from existing sheets show reference from existing sheets, you will be able to delete entries in subtable and the entries in the reference sheet at the same.

                                                                5.3.9    Sheet Sections

                                                                Feature Overview

                                                                As fields and subtables multiply in a sheet, you might need to constantly scroll up and down to check information, and the sheet might take longer to load.

                                                                This is a good chance to apply Sheet Sections. You can group rows into different sections, and view each section by selecting different tabs on the same row-level without scrolling.

                                                                The benefits of Sheet Sections include:

                                                                1. Avoid constant scrolling when sheet becomes too long

                                                                2. Organize related fields and subtables in the same section

                                                                3. Increase page load speed

                                                                Design guide

                                                                First, select the rows you would like to group as a section. You can select both independent fields and subtables.

                                                                Right-click on selected rows to Create Section.

                                                                Click + next to section tabs to add a new section.

                                                                Choose which row the new section will end on. Note that all sections will need to be adjacent to each other (without empty rows in between), and a subtable cannot be separated into 2 sections.

                                                                Click on a tab to rename it.

                                                                Right-click on the tab name allows you to edit the style of the tab, such as adjusting font size, font, color, and more.

                                                                Click x to cancel the section.

                                                                5.3.10    Widgets

                                                                Create Widget

                                                                You can insert widgets directly on your sheets to for data visualization, such as using a pie chart to display revenue by sales reps or revenue growth trend next to sales data.

                                                                In the Listing Page's or the Form Page's Design Mode, you can right-click on Insert Widget to insert a widget on your preferred location.

                                                                You can name the widget, select the source sheet, and configure what kinds of graphs you want to display in this window. There are two kinds of widgets to either show trends (Sparkline, Bars, 3D bars) or show rankings (Bars, Pie, Tree map, Radar, displaying top 5 categories only). You can further decide whether to display the total and changes from the previous period. In addition, you may show records under certain rules, for example, only analyze sales orders with the status "Completed".

                                                                Besides, you can drag and drop the widget to anywhere in the sheet and you will be able to insert multiple widgets in a sheet.

                                                                Record Filtering

                                                                Please refer to the chart below for the filtering mechanisms of widgets in different locations.

                                                                Widget Location Filtering Situation
                                                                Homepage Widget Filtering priority: Fixed filters > Filter conditions set within the widget. All of these will affect the displayed data.
                                                                Listing Page Widget Filtering priority: Fixed filters > Custom views and shared views > Filter conditions set within the widget. All of these will affect the displayed data.
                                                                Form Page Widget Filtering priority: Fixed filters > Filter conditions set within the widget. All of these will affect the displayed data.

                                                                5.3.11    Setting the title field for your sheet

                                                                x
                                                                Setting the title field for your sheet

                                                                Title Field

                                                                Selection Title Field

                                                                Title Field

                                                                It will be displayed in features such as full-text search, notifications, file management, etc. Making it easier for users to identify a specific record. Ragic automatically uses the first field in the sheet as Title Field, but sometimes these fields may not help you locate the needed data. For instance, you want to search for a purchase order number (PO), but the first item listed is the product name.

                                                                If you wish to make changes, you can enter the Form Page Design Mode, navigate to Form Settings in the left side bar, choose the title field you want from the menu, and remember to save once you are done.

                                                                In full-text search, the first item displayed will be the Title Field we just set, making it quicker to find the required data.

                                                                Selection Title Field

                                                                In Link and Load and Importing Data into Subtables features, Selection Title Field is for the system to identify each record. Please choose a field that contains unique values, such as a serial number. Some fields are not listed for selecting, typically because they are not unique value fields, such as numeric fields or selection fields.

                                                                6.1    Importing and Exporting

                                                                Tutorial Video

                                                                Preparing your Import Files

                                                                For Ragic to map your information correctly to entries, you will need to have a unique identification that we call key field, such as "Product ID" for products, or "Customer No." for your customers. To make your database easier to use, let the first column of your import data be this type of key field.

                                                                Your file should have the first row as the headers of the fields. If you have other types of formatting such as logos or informational text on your first few rows, for your specific import file, you can remove these and save a version with field headers on the first row.

                                                                Ragic supports .xls .xlsx and .csv files. We recommend that you save your file as .csv for the best performance.

                                                                Here is the maximum size for each file format:

                                                                Format Maximum File Size
                                                                .xls 10 MB
                                                                .xlsx 10 MB
                                                                .csv 200 MB

                                                                For On-premises Plan, there is no import file size limit.

                                                                To import multiple values for your multiple selection fields, you can format your fields in the file you are importing with a vertical bar character (|) or a comma character (,) to separate your values. (If the value itself contains a comma character, you should use a vertical bar character to separate them).

                                                                Importing your Data

                                                                Ragic has a convenient import wizard for users to import their existing data from Excel or CSV files. To import from your files to Ragic, you can go to the listing page that you would like to import your data to, and choose Import Data From File under Tools.

                                                                Upload your file.

                                                                Determine if your first row is the header. If so, Ragic will automatically determine how the data in this row will be mapped to your fields for the next step.

                                                                Check to see if all the target fields are correct. This is especially important if you have similar names for two separate fields. You can also choose to ignore columns of data that you do not want to import. Note that the target field values should be in the correct formatting, such as the date format (make sure to adjust the format on the sheet listing page, too).

                                                                Import Policy

                                                                Choose the import policy to handle duplicated keys during your import. Ragic will match to the entries in your sheet according to the key value in the first column in the imported file.

                                                                If you choose Create new entry, new entries will be created containing data with the same key values.

                                                                If you choose Renew data, your existing data will be updated if you have entries with the same key value, and new entries will be created for the key values that aren't in your database.

                                                                If you choose Update without creating new data, your existing data will be updated if you have entries with the same key value and entries with key values which aren't in your database will not be imported. 

                                                                This type of import policy is especially useful when you are doing mass editing.

                                                                Advanced Settings

                                                                You can configure Advanced Settings in Import Policy as well if necessary.

                                                                Advanced Setting Description
                                                                Fill in default field values If you have a configured default value in your sheet, please check this box so that the field value will be updated or populated with the import.
                                                                Execute link and load If there are sets of link and load configured on your sheet, please check this box to have the loaded fields auto-populated. Otherwise, the loaded fields will be left empty if the field values aren't included in your import file.
                                                                Recalculate all formulas Recalculate all formulas during the import.
                                                                Execute work-flow Execute work-flow, if any, in your sheet.
                                                                Execute not empty check Check if there are field values configured with the "Not Empty" feature. If there is no field value, Ragic will skip that row during the import.
                                                                Create detail history Show editing history in entry's information panel.
                                                                Execute validation check Check if the field value meets the configured validation . If it doesn't, Ragic will skip that row during the import.
                                                                Omit leading and trailing whitespaces The unwanted leading and trailing whitespaces will be omitted when importing (checked by default.)
                                                                Import date values using browser time zone When enabling "Import date values using browser time zone", the date values in your import file will refer to your browser's time zone. If this option is not selected, the date values would be considered in the UTC+0 time zone.
                                                                Check and disallow importing data to read-only fields If the imported file contains read-only field values, those values will not be written into the database.

                                                                These advanced settings will be executed in the following order: Fill in default field values -> Execute link and load -> Recalculate all formulas -> Execute not empty check -> Execute validation check -> Execute workflow.

                                                                If you're not importing into an existing Ragic sheet, you can also use the Excel or CSV file to create a new sheet as you import. Just choose "Create Form From Excel" in the "Tools" menu instead. This method is explained in detail here.

                                                                Save Import Configuration as Template

                                                                After mapping fields and choosing import policy and advanced settings, you can save the current import configuration as template so that users can directly apply it when importing files with this format in the future.

                                                                In the pop-up window, you can name the template and review the import settings.

                                                                You may select to directly apply a saved import template when you would like to import data to this sheet in the future.

                                                                This function is only available when the situation matches all the following conditions:

                                                                1. The import is executed by a SYSAdmin or tab SYSAdmin.

                                                                2. This import is not executed with an existing import template.

                                                                4. This import is not a periodic import.

                                                                Creating a New Database Sheet by Importing Data

                                                                You can use an Excel or CSV file to create a new sheet as you import your data into Ragic, instead of creating the Ragic sheet first. (If you would prefer to build a Ragic sheet first, please check the normal process of developing Ragic sheets.)

                                                                Note. If your Excel file includes some formulas, it can't be auto-applied to your Ragic sheet when you create a new sheet by importing. You will need to manually add them to your Ragic sheet design. For the list of supported formulas in Ragic, you can refer to here.

                                                                You can create a new sheet by clicking on the + sign at the top of your page.

                                                                Name your new sheet and check the box Create new sheet with my Excel file. This will take you to the import wizard. The step-by-step wizard will guide you through the field mapping process as well as other configurations for the data to import correctly.

                                                                Pick a file from your computer to upload into Ragic.

                                                                Ragic supports .xls .xlsx and .csv files. We recommend that you save your file as .csv for the best performance.

                                                                For Ragic to map your information correctly to entries, you will need to have a unique identification that we call key field, such as "Product ID" for products, or "Customer No." for your customers. To make your database easier to use, let the first column of your import data be this type of key field.

                                                                Determine if your first row is the header. If so, Ragic will automatically determine how the data in this row will be mapped to your fields for the next step.

                                                                You can choose an initial field type for each field.

                                                                There are many other field types available in Ragic, and you can later edit your fields according to your own requirements.

                                                                The last step is to import your data and create your new sheet in Ragic. This step can take up to a few minutes if you have a lot of columns and rows in your spreadsheet.

                                                                Congratulations, you have now created your new database sheet in Ragic.

                                                                Importing Data into Subtables

                                                                To import data into a subtable, please navigate to the "Form Settings" and check the "Selection Title Field":

                                                                Note: you may switch to a different selection title field from the drop-down menu. However, please select a field without unique values, such as "Order Number" or "Client ID".

                                                                Then, please put the "Selection Title Field" into the first column of your file. With the example above, we'll put the "Sales Order Number" in the first column and input the values:

                                                                In the future, the system will use the values in the first column to recognize which main entry the imported row belong to.

                                                                Furthermore, please make sure every main entry exists in your sheet. For example, if you wish to import the order details to order "SO-00462", you must have an entry of "SO-00462" first. If not, please create it before you make the import.

                                                                When you import, you can select the subtable you would like to import to from the drop-down menu:

                                                                In the mapping process, the system will lock the first column automatically. Please map the rest of the fields. If you wish to renew values in existing subtable rows, please map the second column to the unique field in the subtable.

                                                                After mapping fields, you may select proper import policy and advanced settings and then import your data.

                                                                Terminate import

                                                                If you would like to terminate the current import process, you may click this button.

                                                                During import, you won't be able to use the mass update function. If you want to terminate the current import, you may also terminate it in this warning window.

                                                                Notice: Your importing process will not be terminated immediately when clicking on either button to terminate import. It will stop after completing the import of the current row. After successfully terminating, the system will send an email to notify the user that clicked this button.

                                                                Revert import

                                                                If you want to revert a previous import, you can go to Account Setup > Recent Changes and click the Revert Icon next to the history of an import. This action will delete newly created records via import and revert the updated ones.

                                                                WARNING:

                                                                1. This operation cannot be undone once executed.

                                                                2. Field values updated by link and load, formula recalculation, and workflow will not be reverted.

                                                                3. Reverting import will not trigger link and load, formula recalculation, and workflow.

                                                                Exporting your Data

                                                                Exporting Options

                                                                Ragic has many useful export options that are accessible from the Tools Menu. Please note that if you're exporting many entries from the listing page with any method, the filter that is applied from searches will affect the records that are exported.

                                                                Download as Excel or CSV File

                                                                You can use the Download as Excel or CSV file feature that could be accessed on the listing page of a form from Tools to export multiple entries.

                                                                On the download configuration window, you can choose if you want to export all fields or only the fields that are displayed on the listing page, as well as configure the number of entries you would like to export.

                                                                Note: If you have more than 5000 entries to export, the system will export entries into CSV format. Furthermore, if you are exporting more than 30000 entries, the system will generate the CSV file asynchronously and send the file to your email when it is done.

                                                                If the number of records you'd like to download is within 100 and they contain Image Upload field(s), the downloaded Excel file will automatically embed the images.

                                                                However, if the number of records you'd like to download is over 100 and you don't set an exact number of records to export, the images will not be embedded in the Excel file.

                                                                To export one entry, navigate to Tools under the form page instead.

                                                                Download as PDF File

                                                                You can use the Tools > Download as PDF feature to export multiple entries from the form listing page:

                                                                On the download configuration window, you can choose if you want to export all fields or only the fields that are displayed on the listing page, as well as configure the number of entries you would like to export.

                                                                While on the listing page, you can still download the form page of your entries too. While on form page part of the PDF Download window, you can select to save your entries as a single file or separated files that are compressed into a zip file.

                                                                You can also download individual entries as PDFs as they look on the form page:

                                                                You can also attach a watermark of your company logo on the PDF file by uploading the image of the logo to the Watermark field in the Company Setting sheet.

                                                                Printer Friendly

                                                                The Printer Friendly option will display your data in a clear, ready-to-print way. In the printer-friendly configuration, you can choose to print your data as it is displayed on your listing page or download individual entries as they look on the form page.

                                                                You can switch to the record's other versions in the gear icon.

                                                                Other Exporting Options

                                                                Learn more about the types of reports you can generate in Ragic here.

                                                                Our mail merge tool allows you to export your data in a specific excel template that you can upload into Ragic.

                                                                You also have the option to backup your entire Ragic database.

                                                                Exporting Data from your Subtables

                                                                The best way to export data from your subtables is outlined below:

                                                                1. Create a new sheet from your subtable with this linking type, this will generate a new sheet with all your subtable values from all of your entries in that subtable, spanning different records.

                                                                2. Add other necessary fields If necessary, you can add stand-alone fields from your parent sheet with the link fields from parent sheets method. This way you can export your subtable data with other fields that are related.

                                                                3. Export your data from your new sheet Exporting data from the new sheet is just like exporting from a regular sheet.

                                                                Exporting Data from backup

                                                                Select Download as Excel or Text, and click the From backup tab to download sheet data from auto backup.

                                                                6.1.1    Mail Merge (Export as Word/Excel)

                                                                What is Mail Merge?

                                                                You can download reports of individual entries in a customized Excel or Word format in Ragic with the mail merge tool.

                                                                Creating a Template for Mail Merge

                                                                Click Mail Merge under Tools in your listing page.

                                                                You can download the template created by Ragic according to your form page design, by clicking the Download button next to Sample Template.

                                                                Feel free to make modifications to customize your template in any way you want. You can choose to omit fields if you want. Repeating field values is also possible, just make sure that you are writing:

                                                                <>

                                                                where you want to add the field values.

                                                                If the field values are in subtables, they can be written as

                                                                #Field Name#

                                                                in a row.

                                                                Note: If you have duplicate field names, and you want to mail merge the data from those fields (with the same name), you will need to change them to different names so that the system can map the fields correctly when you download the data.

                                                                In the example above, Microsoft Excel is used to edit the template, but basically, any type of spreadsheet application would work as long as you can save your spreadsheet with .xlsx format.

                                                                If you need a text document instead, you can create a template directly in a text editor application such as Microsoft Word. The field values would be formatted like the above. Save the text document with the .docx format. Please note that some elements like text boxes are not supported for variables yet.

                                                                If you need to mail merge the subtable records, it's currently only supported with Excel.

                                                                After you're done designing your template, upload this report template to your sheet by clicking on Create a template on the mail merge configuration.

                                                                You can name and save your uploaded template here (don't forget to click Upload to save).

                                                                You can upload as many report templates as you want.

                                                                Including Multiple Entries in a Page

                                                                By default, mail merge exports data as one page per entry. However, sometimes you may want to include multiple entries on one page, such as when printing a phone book, labels, business cards, etc. To do this, you can create a Word template in mail merge (Note: Excel format doesn't support including multiple entries in one page).

                                                                By adding parameters like << Field Name or ID~~1 >>, << Field Name or ID~~2 >> etc., you can configure how many entries you'd like to include in one page in the template.

                                                                After the template is saved, you can download data in the template format.

                                                                Please note that you need to upload the template to listing page and the template can only be on one page.

                                                                Download Reports Formatted with your Template

                                                                Click the Mail Merge button next to your report name when you would like to generate reports from the data in your database. This will take you to an option that displays the number of entries you would like to download with the mail merge template applied.

                                                                You can configure the number of entries to download, and choose to download them as Separated files (compressed into a zip file) or A single file (separated by tabs). Furthermore, you can also store to a file upload field if you have one of them on your sheet.

                                                                If you select to export them as separate files, the reports will then be downloaded to your computer in a .zip file. If a filter is applied to your listing page, only the filtered records will be mail merged.

                                                                This would be how a single report looks like with the template example above:

                                                                Here are other examples, with an image field included:

                                                                Excel Format

                                                                Word Format

                                                                Note: Word mail merge does not support multiple image setting for upload image field. Unlike Excel, Word does not have clear cell divisions, so there is no suitable output logic for arranging multiple images in the field.

                                                                Referenced field for file names

                                                                By clicking the gear icon next to an existing template, you can set its referenced field for file names. That referenced field's values will be the file names of your mail merged documents.

                                                                Store to File Upload Field

                                                                If you have an file upload field in your form, you can store your mail merged file there. On the mail merge window, while selecting "form page format (with single record template)" from the listing page, you can choose to store to a file upload field.

                                                                The file will be placed on your selected field and you can download the file of the respective entry from there.

                                                                Mail Merge Approval Process Records

                                                                The original format of the sample template document that you download from Ragic mainly contains the fields of the sheet and its subtable(s). If this sheet is configured with an approval process, the approval process records that are shown on the bottom right side of your sheet within Ragic would not automatically appear in the sample template document.

                                                                If you want to add them, you need to manually add instructions when you modify the Excel template document. After that, upload your customized template document so you can download reports formatted to contain the approval process records.

                                                                Parameter Output Note
                                                                #{{APPROVAL_STATUS}}# Approval Status If an assigned deputy helps approve or reject approval requests, (Deputy) wil be shown next to the approval status
                                                                #{{APPROVAL_APPROVER_TITLE}}# Step Name
                                                                #{{APPROVAL_DATE}}# Approval Date Only shown when the approval step was approved
                                                                #{{APPROVAL_APPROVER_NAME}}# Approver’s Name
                                                                #{{APPROVAL_APPROVER_SIG}}# Approver's Signature in Personal Settings
                                                                #{{APPROVAL_APPROVER_EMAIL}}# Approver’s E-mail
                                                                #{{APPROVAL_COMMENT}}# Approver’s Reason
                                                                <> Approval's Result Support exporting to Word

                                                                Example

                                                                In this example, we will show you how to create a mail merge template that will display approval process records on a mail merge.

                                                                First, we download the template document from the mail merge menu. It does not contain approval process records as you can see below. The fields and subtable fields are shown as below:

                                                                Here, we manually add the fields with the necessary parameters for the approval process on this spreadsheet document: Approval Status, the Approver’s Name, and the Approver’s E-mail address. After uploading, we can use this document as the new template.

                                                                With this new template, we can now have records of the approval process when we export our data through mail merge.

                                                                List of Mail Merge Parameters

                                                                Parameter Output
                                                                <> The value of a field.
                                                                <> The value of a field. Case sensitive. If there is more than one field with the same field name, use <> instead.
                                                                #Field Name# The value of a subtable field
                                                                <<$USERNAME>> Download User Name
                                                                <<$USERID>> Download User E-mail
                                                                <<$DATE>> Download Date
                                                                <<$DATETIME>> Download Date and Time
                                                                <> The URL of the record

                                                                Export Selected Entries

                                                                You can use the mail merge function to only export selected entries. To do so, please select the entries you would like to export by ticking the checkbox next to the entries and then click Batch Execute.

                                                                Next, choose the format you would like to export under the Mail Merge tab.

                                                                Mail Merge For Listing Page

                                                                Similarly, you can also use the mail merge function for the listing page. If you upload your report templates on the listing page window with the corresponding field names or IDs, the data on the listing page can be exported onto your selected template. Furthermore, if you apply filter or sort on the listing page, you can also export data onto the template regarding your filter or sort. However, while on the form page, you cannot use the template that you uploaded on the listing page.

                                                                Let's take this sheet as an example, say you want to export the details of Football Stadiums in London from Ragic.

                                                                You then have to map the fields on the excel template like this first before uploading it back onto Ragic.

                                                                After clicking on Mail Merge with the template, your exported excel sheet will contain data of your entries from the listing page.

                                                                Using Formulas For Listing Page

                                                                You can also apply formulas on your mail merge template to calculate your records on the listing page. You can do this by adding the formula in the template with the following format.

                                                                <>

                                                                In the formula that you enter, you can also set up dynamic parameters so the system can automatically calculate with a selected cell value. There are two types of dynamic parameters:

                                                                {{r}}: Will automatically be replaced by the current row

                                                                {{l}}: Will automatically be replaced by the last row of the selected current column

                                                                For instance, if you want to find whether the capacities of these stadiums are greater than 20000, you can use this function on your mail merge template:

                                                                <=20000, "yes","no")>>

                                                                On Excel, your results will additionally populate according to the formula.

                                                                On the other hand, you can use the dynamic parameter {{l}} when you want to calculate a list of data. For example, if you want to calculate the total capacity of all stadiums, you can use the following function on your mail merge template:

                                                                <>

                                                                Note: You would still have to enter the first cell of the list of data that you want to calculate in the formula while making your template, which is D4 in this example.

                                                                While mail merging your data from Ragic, the system will also do the calculation of your formula, as you can see in the "total capacity" field.

                                                                Naming the Mail Merge File

                                                                Form Page Mail Merge

                                                                You can select to reference a certain field while naming your mail merge file. The settings can be found by clicking on the gear icon next to the mail merge template you would like to use.

                                                                While executing mail merge, if you select to save multiple records as a single file separated by tabs, the selected referenced field will apply its values on the tabs in the Excel file.

                                                                On the other hand, if you select to save multiple records as separated files (compressed into a zip file), the selected referenced field will apply its field values to the respective files’ name.

                                                                Listing Page Mail Merge

                                                                You can name your mail merge file by clicking on the gear icon next to the mail merge template you would like to use.

                                                                Access Rights

                                                                The gear icon located on the right of each template allows you to modify its access rights.

                                                                Video Tutorial

                                                                Please view the video below for a step-by-step tutorial:

                                                                Note

                                                                The format of mail merge is fixed, meaning that the heights of rows will not be automatically adjusted after exporting subtable entries. However, you can refer to this Excel instruction for how to adjust row height after exporting data onto Excel.

                                                                6.1.2    Publish to the Web (Data Feed)

                                                                Publishing to the Web

                                                                If you would like to send an Excel file of your records to others, you may use our export feature Publish to The Web. This will generate a link for other people to allow them to download the Excel file directly.

                                                                To use the Publish to the Web feature, navigate to Listing page > Tools > Publish to The Web under the Export section.

                                                                When you publish to the web, you will need to configure the correct access rights for the user group EVERYONE, in order to let others download records of this sheet. Keep in mind that configuring the EVERYONE user group is directly related to configuring access rights to the public for your sheet.

                                                                If you haven't made your sheet public through the access rights settings, you'll have two options:

                                                                Set access right of group EVERYONE to Viewer

                                                                Click on Set access right of group EVERYONE to Viewer. This will make this sheet public to everyone, but they still won't be able to create or edit any records, and make sure the group EVERYONE has feature access of "Download Listing page". You can change the access right any time.

                                                                Once you complete the access right setting, you may select which fields, fields on the listing page or all fields, to be displayed and if you would like to apply a saved shared view.

                                                                Once you finish using Publish to The Web and would like to stop publishing, you can configure the access right for user group EVERYONE to No Rights or Survey User through the panel of this feature without navigating to the Design Mode.

                                                                Generate link with API key

                                                                Click on Generate link with API key. This will generate a link using the API key of your access rights, hence the users who have this link will be able to access the database as you.

                                                                It's recommended to create a separate test user account for API Key usage and grant proper access rights. By this, you won't be logged out if others access into your database through this link.

                                                                Once you complete the access right setting, you may select which fields, fields on the listing page or all fields, to be displayed and if you would like to apply a saved shared view.

                                                                If you would like to use API Key other than the account you're currently logged in to Ragic, please refer to this documentation to get API key. After getting API Key, you can post it after "APIKey=" in the url.

                                                                Using Publish to the Web

                                                                You can share the links you have generated with the Publish to the Web tool to allow others to download data in different formats.

                                                                You may also import your data with third-party tools that allow you to import from a URL.

                                                                Example: Google Sheets

                                                                In the example below, we're using Google Sheets to further analyze our data.

                                                                You can view the example Ragic database here, and the example Google Sheet here.

                                                                Using the IMPORTDATA formula with the .csv format, we can import data into our spreadsheet from our Ragic database sheet.

                                                                Using this data, we can create charts with different criteria using the Charts tool.

                                                                This pivot table was created by selecting the range of data on the spreadsheet, and navigating to Data > Pivot Table.

                                                                Using the Report Editor menu, we can use multiple criteria to group fields, and display values accordingly. On our example, since we can use different criteria and stack them within the pivot table, we're able to group our products in our example under different product categories.

                                                                More information about pivot tables on Google Sheets can be found here.

                                                                Specifying fields to export

                                                                Regarding how to specify fields when using publish to the web, you can refer to this article.

                                                                6.1.3    Periodic Import from URL

                                                                The URL of your import file

                                                                Please make sure that the link is for downloading as .csv or .xlsx file that opening the link in browser will download the .csv or .xlsx file.

                                                                And the Protocol (http:// or https://) should be included in the URL as well.

                                                                In order to allow Ragic to access your import file and process the import, please make sure that your imported file is a CSV or an XLS file that can be downloaded by anyone when clicking on its link. (We suggest testing this by clicking on the link to download the file without logging in to any applications using a private/incognito window. For example, if your periodic import from URL is using the link generated from Google Sheet, please make sure that you can click on the link to download the file without logging in to your Google account.)

                                                                If you have a spreadsheet file that is updated periodically, and this file is stored in the cloud, you can have Ragic import this file from a URL and automatically update your records within your Ragic sheet with Periodic import from URL. You can choose to keep your data synchronized from the URL.

                                                                In order to periodically import your file from a URL, please make sure that you uploaded file is formatted correctly. Similar to the Ragic import process, you'll need to prepare your import files with the first row as the headers of the fields, and the other rows as the corresponding values.

                                                                Once you have your import file ready, please make sure that you are hosting your file online. Some online spreadsheet applications such as Google sheets will also let you publish your sheets to the web, which will give you the URL link to your file that you can use for the import process.

                                                                Periodic Import from URL

                                                                Navigate to the Tools menu on your form, and select Periodic import from URL under Import.

                                                                Enter your file URL to the import process, and select your file type. You can use .csv, .xlsx, .xls, and .txt files with this import process. Please use the full URL to do the periodic import, which should include the Protocol (http:// or https://)

                                                                If you check the option Keep data synchronized from the URL, Ragic will automatically import data from your file hosted on the URL every day. The data on your sheet will be overwritten by the imported data if you do select this option.

                                                                Follow the import wizard through the next few steps. Determine if your first row is the header. If so, Ragic will automatically determine how the data in this row will be mapped to your fields for the next step.

                                                                Check to see if all the target fields are correct. This is especially important if you have similar names for two separate fields. You can also choose to ignore columns of data that you do not want to import. Note that the target field values should also be in the correct formatting, such as the date format. If you're importing into a "select user" field, you will need to have the user's e-mail that's used in Ragic instead of the username that you see to uniquely identify the person.

                                                                Choose the import policy to handle duplicated keys during your import.

                                                                If you choose Create new entry, new entries will be created containing data with the same key values.

                                                                If you choose Renew data, your existing data will be updated if you have entries with the same key value, and new entries will be created for the key values that aren't in your database.

                                                                If you choose Update without creating new data, your existing data will be updated if you have entries with the same key value, and entries with key values which aren't in your database will not be imported. 

                                                                You can configure Advanced Settings in the Import Policy if necessary.

                                                                Ragic will import your data from the hosted file, and update records accordingly if you've selected the option to keep data in sync with your hosted file.

                                                                For more information on importing from Excel files stored in OneDrive or Google sheet, please refer to this article.

                                                                Import execution time

                                                                Once you set up periodic import from URL, it will execute an import right away. If you choose to Renew data, the system will set up a daily execution time of this function according to the Daily Workflow Execution Time setting, which you can set up in your Company settings. If you would like to change the execution time of this function, you may configure it from Job Schedules under Account Setup.

                                                                (Please note that if you initially set up "Periodic import from URL", and then change the "Daily Workflow Execution Time" in Company settings, the previously saved job "Periodic import from URL" won't be updated, so you will need to make this configuration from Job Schedules.)

                                                                6.1.4    Schedule Report

                                                                In cases where you need to automatically E-mail reports of the records in a particular sheet within a regular time interval (e. g. to keeping track of your company’s weekly/monthly/yearly sales), Schedule Report can be a very useful tool.

                                                                To schedule a report, go to Tools on the sheet’s listing page and choose Schedule Report under the Export section.

                                                                A configuration window will pop up. You may choose to schedule a new report or modify a scheduled report.

                                                                On the view selection, you may choose to schedule a report of records with saved Shared view applied, or no view to schedule a report of all the records in the sheet.

                                                                On the time interval selection, you may choose when and which records you’d like to schedule a report on:

                                                                Time Interval Records sent within the chosen time interval
                                                                Records of all time All records compliant with the view criteria created at any time will be sent everyday.
                                                                Records of yesterday All records compliant with the view criteria created on the previous day will be sent everyday.
                                                                Records of last week All records compliant with the view criteria created on the previous week will be sent on Monday every week.
                                                                Records of last month All records compliant with the view criteria created in the previous month will be sent on the first day of every month.
                                                                Records of last quarter All records compliant with the view criteria created at the previous quarter will be sent on the first day of every quarter.
                                                                Records of last year All records compliant with the view criteria created in the previous year will be sent on January 1st every year.

                                                                You can download the report as an .xlsx file or onto an existing listing page mail merge template.

                                                                Name your file and enter the email address(es) you’d like to send the report to. Use the symbol “,” to separate multiple E-mail addresses, then click Save report, or Undo changes if you still need to modify the settings.

                                                                You can schedule reports of up to 5,000 records in the sheet. Please note that when the number of records in the sheet exceeds 5,000 and the time interval is set to send “records of all time”, the system will only send the report of the first 5,000 records. Therefore, it is important to choose the time interval carefully.

                                                                Please note that one schedule report rule (shared view + time interval) makes one report. If different users need to schedule a sample report, select “modify a scheduled report” and add other E-mail recipients.

                                                                To see all existing scheduled reports of the sheet, click View scheduled reports on the upper-right side of the pop-up window. This will take you to Job Schedule.

                                                                6.2    Embedding on Your Website

                                                                What are Website Plug-ins?

                                                                Ragic applications come with a variety of useful Website Plug-ins that could be embedded on your website or sent as a separate link to others. These website plug-ins become available automatically as you create the sheets in your applications.

                                                                This means that you could embed forms to your website that will be stored in your database once they are submitted, provide access to your customers and clients to search your database, or even view your entire database.

                                                                Embedding your Database with the Web Embed Tool

                                                                To view the website plug-ins that are available, click on the Tools menu on either the listing page or form page, and select Embed This Sheet under Share in the menu.

                                                                Here you can choose from six types of plug-ins that are offered.

                                                                After following the steps in the wizard, Ragic will give you an HTML code snippet that you can copy & paste to the place where you want to embed the plug-in on your website. You will also see a form link for you to simply send out to directly use the plug-in as a standalone page.

                                                                Ragic also supports embedding on WordPress with a WordPress plug-in.

                                                                Types of Website Plug-ins

                                                                Deciding on how your viewers will be viewing your database is the key when choosing which type of website plug-in to use. Here is a condensed guide to choosing the correct plug-in depending on your purposes (click on the plug-in name for more information).

                                                                Name Purpose
                                                                (1) Database Viewer A simple listing of all your entries in your sheet that your website user has access to, with three different layouts to choose from.
                                                                (2) Database Query Displays query fields that allows users to create queries to search for entries in your database.
                                                                (3) Database Form Displays a blank database entry form that will allow users to submit forms, that will be saved as a record in your database.
                                                                (4) Database Search Displays a search engine box that will enable keyword searches for entries in your database sheet.
                                                                (5) Database View & Query Displays query fields that allows users to create queries to search for entries in your database. The search results will be displayed below.
                                                                (6) Raw Embed Embeds your database in an iframe with the Ragic UI you see on your account.

                                                                Once you choose the type of website plug-in, you may also tune the layout for each embed type with custom CSS.

                                                                (1) Database Viewer

                                                                The database viewer is a simple listing of all the entries that your website user has access to. You can grant access to your entries with Ragic's access rights, which also gives you the option to make the entire database public if needed.

                                                                You can configure different types of layouts listed below on the first step after picking "Database Viewer" as your web embed type.

                                                                Just like the listing page - form page transition, your viewers would be able to click on the entries to view the more detailed form page.

                                                                Database Viewer Layout Types

                                                                The table layout shows your records with a bare-bones list, which is displayed according to how you display your listing page.

                                                                The block layout has a little more flexibility, it will display your records in rows according to the fields you would like to pick in this configuration. Simply hover on the fields that are displayed in the preview to change the field that is mapped to.

                                                                The album layout is suitable if you have images in your database. This layout shows an image as a thumbnail, and your records will be arranged in a grid. Like the block layout, you can hover on the fields that are displayed to change the fields they are mapped to.

                                                                (2) Database Query

                                                                The database query form allows your users to query your Ragic database with the criteria available for each field you decide to add.

                                                                You can pick which query fields will be shown as default and the order you would like the fields to appear on the configuration page. To do so, click "Set Default Query Field"

                                                                The query fields will be displayed in accordance with the field types in your sheet. For example, if your field is a selection field, the query form can show multiple selection options in a dropdown menu so that the query can be made in multiple categories.

                                                                After the query is submitted, users of your form will be able to view records that fit into their query criteria with the database viewer layout type you pick in the next step.

                                                                Just like the listing page - form page transition, your viewers would be able to click on the entries to view the more detailed form page.

                                                                Database Query Exact Mode

                                                                The Exact Mode setting is available for Database Query and Database View & Query. With this setting, users would be able to search the data by entering the query that is exact matched even if your sheet is not in public. For detailed information, you can refer to this article.

                                                                (3) Database Form

                                                                The database form gives you the option to embed a form that your users can fill. The forms will automatically be saved as entries in your database when submitted by your users.

                                                                After picking "Database Form" as your web embed type, you can preview and configure the layout of your form. You may refer to this document for more information about the difference between the old version and new version.

                                                                Banner Settings

                                                                You can click on the "Banner settings" section to choose a banner image or upload one. the suggested image size is 1500 x 300 pixels.

                                                                Background Color Settings

                                                                Right here, you may select the background color of your embedded database form.

                                                                Field Order Settings

                                                                For better user experience on different devices, The new version of the Database Form has a single-column layout, which is the same as the layout of Ragic's mobile app. By default, fields are displayed from left to right, top to bottom. You can select the "Field Order Settings" section, click on the field name/description you want to move, and use the arrow button to arrange the order.

                                                                Pre Fill Value Settings

                                                                If you would like to let users fill out a web form with some default values, you can apply this feature. For instance, if you hope that the users from different departments can auto-fill their corresponding product category and department when signing up for internal training, you may configure Pre Fill Value Template. Besides, you can set multiple templates for each department. After finishing the settings, click the template you want to choose (grey out) and save.

                                                                Provide the link which applies the "For Marketing" template to the users in the marketing department. When they open this form, the field "Product Category" and "Department" will be already filled with the values you set in the template.

                                                                Selection Field Display Settings

                                                                You can slightly tune the way your form is displayed for some field types, such as selection fields. Clicking on the "change type" text on the bottom of fields in the configuration will switch a selection field from a dropdown menu to radio buttons.

                                                                Please note that the selection field cannot be set to display as "radio buttons" in situations written below:

                                                                1.The selection field contains more than 5 options in it.

                                                                2.The selection field is in a subtable.

                                                                3.Cascaded selection field

                                                                4.Select from other sheet field

                                                                If the form contains Selection or Multiple Select fields, you can randomize selection order.

                                                                You may also tune the layout of your embedded forms with custom CSS by clicking on "Add Custom CSS" in the bottom left corner.

                                                                After configuring the layout, you may click "Next" to set up the response message after form submission.

                                                                You can choose to display this message as "Plain Text" or "HTML" by selecting the tab above the text entry box. If you put some HTML codes in the text entry box, you'll need to select the "HTML" tab.

                                                                If you add spam prevention

                                                                Users will see a checkbox for verifying whether the user is a human or not at the bottom of the embedded form.

                                                                If you enable Display "Submit another entry" link

                                                                Users will see this after submitting an entry, which they can click on the link to submit another entry.

                                                                If you wish to fill in pre-defined values in selected fields, you may achieve this by adding the pfv parameters in the embed URL:

                                                                https://www.ragic.com/ramzawang01/forms2/4?webview&webaction=form&ver=new&pfvfieldID=value

                                                                For more rules, use the "&" to combine each rule:

                                                                https://www.ragic.com/ramzawang01/forms2/4?webview&webaction=form&ver=new&pfvfieldID1=value1&pfvfieldID2=value2...

                                                                The URL consists of 3 components:

                                                                1. URL generated by the embed tool: For example, https://www.ragic.com/ramzawang01/forms2/4?webview&webaction=form&ver=new

                                                                2. fieldID: The field ID of the selected field. For example, 1002358.

                                                                3. Value: the value you would like to fill in.

                                                                With the above setting, when users click on the URL to create an entry, the system will fill in the pre-defined values in the selected fields.

                                                                (4) Database Search

                                                                This search engine box will allow your users to search your Ragic database with keywords.

                                                                The search results will be displayed similarly to the database viewer with the criteria that were entered. After the search is submitted, users of your form will be able to view records that fit into their query criteria with the database viewer layout type you pick in the next step.

                                                                Just like the listing page - form page transition, your viewers would be able to click on the entries to view the more detailed form page.

                                                                (5) Database View & Query

                                                                The Database View & Query will allow you to view the query results on the same page where you enter the query instead of heading to a new page for the query result as Database Query does. It's like Database Query that's combined with Database Viewer.

                                                                Database Query Exact Mode

                                                                The Exact Mode setting is available for Database Query and Database View and Query. With this setting, users would be able to search for data by entering the query that is exact matched even if your sheet is not set to public. For detailed information, you can refer to this article.

                                                                Display logout button

                                                                By selecting to display logout button, there will be a logout button on the top right corner of the page.

                                                                (6) Raw Embed

                                                                Embed the same spreadsheet UI you see on Ragic with an iframe on your website. This is not a bare-bones HTML form or list, so it will be different from the other embedding options above. Users will need to log in to your account if you don't have public sheets set up.

                                                                On your settings for the raw embed, you will have the option to select whether or not to create a new entry by default, showing the search sidebar, and showing the top form buttons to users.

                                                                After setting up, you can copy and paste the embed code and use it to embed Ragic on your website.

                                                                Users will be able to do full text searches from the search icon on the upper right corner, similar to how full text searches are done within your Ragic database sheets.

                                                                4. Access Rights

                                                                One great advantage of using the Web plug-in is that you do not need to purchase user licenses for users of the Web plug-in if your sheets are set as public.

                                                                On the other hand, if you didn't set your sheets as public while using Web plug-ins, visitors will see a log-in page if they are not logged in (except for Database Query.)

                                                                However, Database Query Exact Mode and Database View & Query Exact Mode are the exceptional cases that you don't have to set your sheets as public and users are still able to search the data by entering exact matched query.

                                                                5. Parameters for the web embeds

                                                                If you would like to have some of the fields pre-filled with values determined by your embed code, you can add a parameter to your Raw embed iframe URL starting with the prefix "pfv" to specify the value you would like to fill in.

                                                                For example, if you would like to fill the value "Ragic" to field id: 1000001, you can add pfv1000001=Ragic to the iframe URL query string.

                                                                Furthermore, if you have enabled autosave on your sheet, you can also automatically create a new record by adding the parameter “autoSaveData” to the URL.

                                                                You can also do queries to your embeds by referring to this knowledge base article.

                                                                6.3    Calendar Sync

                                                                You can add your event data from your Ragic database sheet to your calendar applications with more information like title, description, and duration with beginning and ending date & time.

                                                                To do this, navigate to the Calendar Sync option found under Tools

                                                                Configure the timezone for your Calendar sync, and select the fields you would like to add to your calendar like Start Date (required), Start time, End Date, and End time, Title, Description, and the Location of an event from the pop-up menu. You can create another set by clicking plus button if needed, also select subtable fields if the events data you would like to sync is in the subtable.

                                                                Obtain your iCalendar URL from the button below, and follow the instructions to add these dates to your favorite calendar application.

                                                                Ragic's calendar feature is supported on major calendar applications, including iCal, Google Calendar, IBM Lotus Notes, and Microsoft Outlook, which means that you'll be able to track the important dates within your Ragic database from all devices.

                                                                Below is the result of Calendar sync with Google Calendar:

                                                                Calendar Sync Data Range

                                                                In consideration of maintaining optimal system performance, only data compliant with the below criteria will be shown on the calendar app:

                                                                (1) Maximum of 1,000 events with "Start Date" during the current month.

                                                                (2) The 200 most recent events with "Start Date" before the current month.

                                                                (3) The 200 most recent events with "Start Date" after the current month.

                                                                6.4    Integrating Ragic With External Applications

                                                                There are 3 ways to integrate Ragic with an external system without scripting, and 2 ways to integrate Ragic with scripting.

                                                                For the non-scripting ways:

                                                                1. You can use the import from URL function to periodically import data from an external source to a Ragic sheet.

                                                                2. You can use the publish to the web function to publish a Ragic sheet as an Excel, CSV, or JSON feed.

                                                                3. You can use our Zapier Integration to integrate Ragic with other popular cloud applications.

                                                                For more custom integrations with scripting, you can:

                                                                1. Write a Javascript Workflow as post-workflow so that the script is executed each time a record is created or saved. Developers can write scripts that calls external HTTP/HTTPS API URLs based on record content when a record is saved.

                                                                2. Write an external script calling Ragic's HTTP API. The script can decide when and how it calls Ragic HTTP API for reading data from Ragic, or writing data to Ragic.

                                                                6.4.1    Zapier Integration

                                                                What is Zapier?

                                                                Zapier lets you easily connect the web apps you use, making it easy to automate tedious tasks. Ragic now supports integrating with other online services via Zapier. If you'd like to join in to use Ragic as a trigger or action application, you can navigate to the Tools menu and select Connect with your web apps under the Sync section.

                                                                Apply pre-built zap: connect with Gmail

                                                                Once you click on Connect with your web apps, a pop-up window will appear with pre-built suggestions.

                                                                Clicking on any of the suggestions will lead you to the configuration wizard. For example, to connect with Gmail, you’ll be asked to log into your Google account before proceeding with the next step.

                                                                Step 1. Configure the trigger

                                                                In our example, you’ll need to set Ragic as a trigger application, with creating a new record as the trigger action.

                                                                You can generate your API key in Personal Settings.

                                                                And fill in the API Key on Zapier.

                                                                Step 2. Configure the action

                                                                After connecting to your Ragic account, you can continue on with the next step. In our example, you’ll need to set Gmail as the action application and sending an email as the action.

                                                                In this step, you’ll need to create the mail template and decide what kind of information you would like to populate in the e-mail subject and the e-mail body.

                                                                Once you have mapped all the necessary fields, you will be able to test and view samples from the Gmail account you are using.

                                                                If the test mail works perfectly, you can name your Zap, which will automate actions according to your specified settings and timeframe.

                                                                Create a zap with Ragic and the app you want to integrate with.

                                                                Log into your Zapier account (or create an account if you don't have one yet.) Click "Make a new Zap" to get started on your integration. You should be able to see Ragic in the available apps.

                                                                Ragic can be used as either a trigger or an action on Zapier when creating new entries.

                                                                Example: Ragic + Trello

                                                                In this example, when a new record is created in Ragic for a project task, a new card for this task will be created in Trello, a team collaboration tool. The possibilities are endless with all the available apps that have Zapier integration.

                                                                Step 1. Configure the trigger

                                                                In our example, you’ll need to set Ragic as the trigger application, and creating a New Record as the trigger action.

                                                                If you're doing an integration with an app on Zapier for the first time, you'll need to connect the apps you use to allow Zapier access to read and write data.

                                                                In Ragic's case, you'll need to connect the API Key and Sheet Path. These can be found on your Ragic API page, which will be linked from Zapier in this step.

                                                                You can generate your API key in Personal Settings.

                                                                And fill in the API Key on Zapier.

                                                                Step 2. Configure the action

                                                                Once you have connected your accounts, you can continue on with the next step.

                                                                The steps that Zapier offers for integration might differ according to the app combination you are creating. Usually, you will need to map which fields correspond to each other.

                                                                Tip: Since the available fields on Ragic differ depending on your sheet design, you can always go back to redesign your sheet if you would like to make modifications, such as adding extra fields as needed. Zapier will save the Zap you are editing as a draft.

                                                                Once you have mapped all the necessary fields, you will be able to test and view samples from each app you are using.

                                                                Once you have finished linking your apps together, you can name your Zap, which will automate actions according to your specified settings and timeframe.

                                                                In this example, Zapier would automatically check for new Ragic records in our Project tasks sheet every 15 minutes, and will post them to Trello if there are new records with no further action required from the user.

                                                                  

                                                                Note: With Zapier free plan, the frequency of syncing is 15 minutes and limit to 100 entries per month. Therefore, if you create more than 100 entries in a month, those entries would be unable to sync via Zapier successfully. You can go to Zapier Official Website for more details.

                                                                6.4.2    Make (Formerly Integromat) Integration

                                                                What is Make?

                                                                Make (formerly Integromat) is an integration tool that allows you to create "Scenarios" and configure "Modules" to determine when and how Make should integrate different software and trigger automation processes.

                                                                For example, if you design a questionnaire in Ragic and want to send a thank-you email to respondents after completing it, you can create an automation process like this:

                                                                Make stands out from other integration tools like Zapier because it allows you to build not only simple linear integrations but also complex structures resembling tree diagrams or nested structures. Make can be a more convenient choice if you want to trigger multiple actions simultaneously and define the order and conditions of the automation process using built-in paths and filtering features.

                                                                For instance, if your questionnaire asks respondents if they want to receive promotional newsletters, you might need to automatically create records for customers who agree to subscribe to the newsletter, and then send a confirmation email. The process could look like this:

                                                                Next, we'll provide an introduction and demonstration of both basic integration (sending an email automatically when new data is created) and advanced integration (sending an email and creating records based on conditions).

                                                                Basic Integration

                                                                Create a sheet in Ragic according to your needs. As an example, let's design a "Customer Satisfaction Survey" with the following fields:

                                                                Log in to Make, and if you don't have an account, you can register here. Once logged in, you will be redirected to the Make dashboard.

                                                                Step 1: Create a Scenario

                                                                Click "Create a new scenario" in the top right corner of the dashboard.

                                                                Step 2: Set up Triggers

                                                                After creating the scenario, click the "+" symbol in the editor to select the tool and conditions that will trigger the scenario.

                                                                Since we want the process to trigger when there is a new record in the Ragic sheet, select Ragic and then "Watch New Record".

                                                                Step 3: Link to the Ragic sheet

                                                                Make will ask you to create a Webhook in the Ragic database.

                                                                To do so, you’ll need to input your Ragic account's API Key and server address. Generate a new API Key in your Ragic account's settings and paste it into Make.

                                                                Also, enter the server address (the part before your database account in the URL). For instance, the URL of the example sheet looks like this:

                                                                Therefore, the server address should be “https://ap8.ragic.com”.

                                                                Once you finish connecting your database, select the sheet you want to integrate and save the configuration.

                                                                To update the trigger module’s information, you’ll need to run the scenario once first. Click "Run once" in the editor's bottom left corner.

                                                                After that, create a new record in the Ragic sheet to trigger the Make scenario.

                                                                Save the entry and head back to Make, you’ll see the scenario has been triggered successfully, and the information such as the field IDs and values was retrieved correctly.

                                                                Step 4: Set up Actions

                                                                Since we need Make to automatically send an email when a new record is created, add an action module to send an email using Gmail.

                                                                To make the module work, Make will ask you to connect to your Google account.

                                                                If you have a Google Workspace (formerly G Suite) account, we recommend you test with it. If you’re using a personal Google account, you must follow this article by Make to set up the connection.

                                                                After connecting your Google account, you could start configuring the module, for instance, you may use the email address from the Ragic sheet and personalize the subject with the respondent's name.

                                                                Rerun the scenario to test the email-sending process. First, click “Run once” and create a record in Ragic.

                                                                Returning to Make, the scenario should be triggered.

                                                                You could check the inbox to see if the email was sent correctly.

                                                                Advanced Integration: Setting up Router

                                                                If you want to recruit members through the survey, design fields in the sheet to confirm respondents' consent. For instance, there's a field asking if they agree to receive a promotional newsletter:

                                                                We could use the built-in router and filter in Make to create records automatically if the respondents agree to subscribe to the newsletter, you could design another sheet based on your needs.

                                                                Step 1: Add a Router

                                                                Right-click on the connection line between the modules and select "Add a router".

                                                                You could press the “+” symbol to add more paths to the router.

                                                                Step 2: Set filtering conditions

                                                                Define conditions to filter data based on user responses. For instance, the field asking for consent has the field number "1002781":

                                                                Since we want Make to create a record to another sheet if the field value is “Yes”, you may set the condition accordingly.

                                                                Step 3: Set up actions

                                                                Add a new Ragic module and configure it to create records in another sheet.

                                                                You can also add additional actions to let the customers know that they’re successfully registered as members, such as sending another email.

                                                                After that, test the entire flow by running the scenario and creating a test record in the Ragic sheet.

                                                                Go back to Make and see if the scenario was triggered.

                                                                You can also see that the data has been saved correctly by going to the "Newsletter Subscribers" sheet:

                                                                Check the inbox to see if both emails were sent correctly.

                                                                Also, you could try to create another record that shouldn’t trigger the additional actions to see if the scenario working properly.

                                                                Returning to Make, you can see that Gmail at the top has successfully sent the message, while the number below the filter shows "0", and the subsequent action module is not running, which means that the data has not triggered the record creation process:

                                                                Note: Make has usage limits called "Operations." The free version allows 1000 operations per month, and triggering modules always use 1 operation, but the usage for action modules depends on the "bundles" Make processes. Check Make's official document for more details.

                                                                7    Reports

                                                                Ragic has various types of reports that you can generate from the data you have in your Ragic sheets, and save to your account.

                                                                Video Tutorial

                                                                Adding description to your report

                                                                You can also add description to your report.

                                                                Saving Reports

                                                                You can save your reports that you generate often by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering Reports With Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria. You can change the applied view within the report, from the top-right side.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Restore to Previous Version

                                                                If you want to restore the previous versions of your report, go to New Report under Reports Tab. In the upper-right corner, you will see the list of the Previous versions of your report. Choose the Version you wish to restore.

                                                                Style Settings

                                                                You can configure style settings in any report. By clicking the "more" icon at the top right corner, you can see style settings in the first option.

                                                                There are three things that you can configure in style settings: Basic, Font, and Boundary.

                                                                Basic

                                                                You can refer to the image below to know what you can configure in Basic.

                                                                Another thing is that you can select fields in Filters to let users apply filters on those fields before they use the report.

                                                                Font

                                                                You can adjust Font, Font Size and Alignment here.

                                                                Boundary

                                                                You may modify a report's inner boundary and outer boundary.

                                                                Inner boundary means the distance between the border and the report content.

                                                                Outer boundary means the distance between the border and the browser border.

                                                                7.1.1    Line Graph

                                                                Generating a Line Graph

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Ragic can help you to generate a line graph showing trends over time.

                                                                You can select one or more numeric field(s) to be analyzed on the vertical y-axis and choose a date field to be analyzed on the horizontal x-axis.

                                                                You can change these anytime while viewing your report. You can also save these configuration by saving your report.

                                                                Configurations for Line Graphs

                                                                Here's an example of a line graph generated in Ragic. It will be generated after clicking on the Report tab and choosing "Line Graph”. You can then configure this chart on the upper-left corner of it.

                                                                You can simply click on the drop-down menus to select the fields you want to analyze.

                                                                Let's begin with the first row of this area. Here, you can choose how to break down your data and choose to plot total or average values in the y-axis.

                                                                You can click on the left drop-down menu in this row to break down your data.

                                                                The options of the drop-down menu include the default option "all data". When this option is checked, all the uncategorized data will be shown in one single line.

                                                                The other option(s) will be the selection field(s) in the data source sheet. Take the above picture as an example, the two other options: "Name" and "Gender" are the selection fields in the "Blood Pressure Tracker" sheet. When you check "Gender" here, there will be two lines shown on the graph: one represents the data of "male", the other represents the data of "female".

                                                                The second row of this area is where you can select the fields to analyze on the y-axis. You can choose to analyze the number of records or the numeric / money fields of the source data sheet.

                                                                If you select to analyze "all data" on the first row, you'll find a "+" icon next to this menu and can click on it to add more numeric fields to analyze. For example, you can select "Systolic Blood Pressure", "Diastolic Blood Pressure" and "Heart Rate" to analyze in the same time. They will be shown as lines in three different colors.

                                                                Please note that if you already select a certain field to break down your data in the previous step, there will be no plus icon shown here, which means that you can only select a numeric field to analyze.

                                                                The third row is where you can select the time to analyze on the x-axis. All the date fields and the "Create Date" of records will be listed as options here.

                                                                You can also choose a timeframe (day, week, or month) to view your graph.

                                                                Saving your Report

                                                                If you generate the same line graph report often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.1.2    Pie Chart

                                                                Generating a Pie Chart

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Configurations for the Pie Chart

                                                                Ragic can analyze your data by generating a pie chart with the numerical fields in your database.

                                                                You can select the first field on the top left corner to determine which numeric field you want to use or you can select # of records.

                                                                The field right next to the first field is the field that you select to analyze, you will see one more available field after selecting the first field to analyze. The pie chart will only have one layer if you select only one field, and two layers if you select two fields. You can visualize the composition of your categorical data using pie chart.

                                                                Saving your Report

                                                                If you generate the same pie chart often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a chart.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criterion.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.1.3    Gantt Chart

                                                                Generating a Gantt Chart

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Ragic can analyze your data to generate a gantt chart.

                                                                Configurations for Gantt Chart

                                                                The gantt chart will be generated based on the selected Start Date field and End Date field. You can configure the Labels to be shown with the data.

                                                                You can configure the Timescale to determine if your data will be shown by Days, Hours, or Quarter Hours.

                                                                To show the data by each categories according to a field, you can select a field as a Category.

                                                                To include more information on the Gantt Chart, you can configure it to show other fields.

                                                                Saving your Report

                                                                If you generate the same gantt chart often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.1.4    Calendar Report

                                                                Generating a Calendar Report

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Ragic can analyze your data in a form that has two date fields, to generate a Calendar Report according to the criteria you choose. Configuring a start and end date for certain events or tasks, and determining which field should be used as a title for the label is required.

                                                                Besides, you may also select a recurring date field to generate the calendar report. Once you select a recurring date field as the start date, the system will close the end date and let you determine which field should be used as the event's title.

                                                                This is pretty helpful when it comes to recurring events like clients' birthday or renewal dates of certificates.

                                                                Different Calendar Report Views

                                                                You can view your calendar in a Monthly, Weekly, or Daily view.

                                                                It's recommended to use a date format that includes hours for the weekly and daily views.

                                                                The monthly view is ideal for tasks that may span a few days.

                                                                The weekly view is ideal for viewing weekly tasks or shifts with a clear display of date and hour format.

                                                                The daily view is ideal for a quick overview of the days' tasks.

                                                                Saving your Report

                                                                If you generate the same calendar from your form often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display the results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.1.5    Address Mapping

                                                                Generating a Map for Address Mapping

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                If you have an address field in your database sheet, you can generate a report with Ragic to show all records on a map. Just pick a label field and the map will show you where these addresses are.

                                                                To display the addresses next to the label field, check the box If show address.

                                                                By clicking on the pin, you can view the details of the entry related to this location.

                                                                Set current location and zoom as default

                                                                You can set current location and zoom as default with this button. After saving, when users open this report, it will show that location and zoom by default.

                                                                Saving your Report

                                                                If you generate the same address mapping report often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save your report as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of the report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.1.6    Dashboard Report

                                                                Generating a Dashboard Report

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Ragic can analyze your data to generate a quick dashboard.

                                                                The Dashboard Report will show you the total and average values for fields containing numbers, as well as a number of comparison charts below.

                                                                You can change which criteria the bar charts are displayed in (total vs. average) when applicable, by clicking on the drop-down menu displayed next to the headers, which are generated according to your field names.

                                                                Saving your Report

                                                                If you generate the same dashboard report often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.2.1    Reservation System

                                                                Sometimes, you might need to manage reservations for equipment or meeting rooms. In this case, Ragic's Reservation System can be very helpful.

                                                                A well-established Reservation System will work like this:

                                                                1.Select reservation date

                                                                2. View available times of reservation items (such as meeting rooms).

                                                                After selecting your item to reserve, you can select how long to book for and enter a description if needed to make a reservation.

                                                                If other users would like to make a reservation, they will see the other saved reservations on the system and will not be able to select the time frames that have already been booked by others.

                                                                Designing Your Reservation System

                                                                If you want to add a Reservation System to your database, you can install the Meeting Room Manager or Meeting Room Manager (Open to Public) template, which can be found under the Administration category in install templates. If needed, you may modify the template to better fit your needs or even build your sheets from scratch.

                                                                When configuring the Reservation System report, the report's source sheet must have the five following fields:

                                                                1. Item: This field allows users to select which item to reserve. This field must be a selection field or a linked field. Some common item types could include: meeting rooms, equipment, classes, doctor appointments, etc.

                                                                2. Start Time: This is the start time of your reservation and it must be a date field. In this field, you must have the date and time included in the format, such as yyyy/MM/dd HH:mm:ss.

                                                                3. End Time: This is the end time of your reservation and it must be a date field. In this field, you must have the date and time included in the format, such as yyyy/MM/dd HH:mm:ss.

                                                                4. Reserved By: This field will display the person making the reservation, and you may select the following field types depending on your access rights settings:

                                                                (1) Select User Field: Allows only your internal and external users to access the system. You may also select Defaulted to current user to let your users make the reservations for themselves in default. When selecting the select user field, the reservations that belong to the user himself/herself will be red, the reservations that belong to others will be blue.

                                                                (2) Email Field: Allows guest users (without account) to access the system.

                                                                (3) Free Text Field: Allows guest users (without account) to access the system.

                                                                (4) Linked or Selection Field: Allows users that exist in the linked source sheet or selection menu to access the system.

                                                                5. Remarks: This field is for users to enter their remarks or reasons. However, this field must be a free text field.

                                                                6. Start time Increments: Set the time length for each reservation session, such as 15 minutes, 30 minutes, and 60 minutes, etc.

                                                                7. Available days and times: Set the available days and times. You may select Custom to configure the settings of your available times in detail. For example, you may only be available on Monday mornings, Wednesday afternoons, or open/close other specified dates and times.

                                                                Note: Only SYSAdmins and Tab SYSAdmins can access the configuration interface.

                                                                Using Your Reservation System

                                                                Users can use the pre-defined Reservation System found under the Reports Tab if they have access rights to the source sheet and

                                                                Create & View Report feature in Feature Access Settings.

                                                                In the reservation system, you can select the date to make a reservation first. After that, you can choose the item to reserve (if you change your reservation item, please click View this day's schedule to refresh). Finally, in the next step, you can click the time you would like to reserve.

                                                                After selecting your reservation time, a window will appear on the right to show your reservation details. In this window, you can type your remarks and click Make a reservation to confirm your reservation.

                                                                Users can come back to the system to editing their saved reservations.

                                                                Remarks

                                                                1. If one of the following conditions apply to your reservation record, it will not be displayed in the Reservation System:

                                                                (1) The start time is later than the end time.

                                                                (2) The record is from the past

                                                                (3) If two reservation records share the same time frames (only the reservation made first will be displayed)

                                                                2. Only SYSAdmin and Tab Admin can access to the configuring interface.

                                                                3. The time is based on Company Local Time Zone in Company Setting.

                                                                4. If you would like to open your system to guest users, you need to set the access rights of the EVERYONE user group as Survey Users or Bulletin Users. However, if your guest users close their web browsers, they will not be able to edit previous reservations. They would need to contact the SYSAdmins if they would like to edit their previous reservations.

                                                                5. If the user doesn't have the access rights to view other records, other saved reservation records will be displayed as a grey session and they won't be able to see who made the reservation.

                                                                7.2.2    Kanban Board

                                                                Generating a Kanban Board

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Ragic can analyze your data to generate a Kanban Board.

                                                                The report will be generated based on the selected Category fields. The selected fields through the SHOW fields option will be displayed in your Kanban Board.

                                                                Saving your Report

                                                                If you generate the same Kanban Board often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Using Kanban Board

                                                                Within the Kanban Board, you can drag to change the status of entries.

                                                                Moving cards to a different category will simultaneously update the field value of the Category fields, which you can later check in the history panel.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save as a PDF file or print your report by clicking the print icon on the right side.

                                                                To hide the border of the report when printing, click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.2.3    To Do List

                                                                Creating a To-do List

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                You can create a to-do list with your records in Ragic.

                                                                You'll need to have at least one empty date field, in order to record a finished date of a task in your to-do list.

                                                                Using your To-do List

                                                                You can check fields off with the checkbox as you complete tasks, the current date will be automatically saved in your empty date field in your database when you do so.

                                                                The next time you're in your to-do list, your checked off tasks will not appear.

                                                                Saving your Report

                                                                If you will use the same to do list often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.3.1    Ranking Report

                                                                Generating a Ranking Report

                                                                You can find Reports on the right side of your listing page or create a report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Ragic can analyze your data to generate a ranking report with the numerical fields in your database. Just determine the field and values to sort, and Ragic will automatically calculate the differences in total, and the differences by timeframe, as well as the percentage. Besides, you can also generate a pie chart.

                                                                Open Source Records

                                                                You can click the numeric value or pie chart on the ranking report to see the records used for analyzing the value.

                                                                Configurations for Ranking Reports

                                                                Below is a chart of the configurations you can make on your ranking report.

                                                                Option Description Optional?
                                                                Date Range Pick a month as a date range. You also have the option to choose "All time". Optional
                                                                Date Field Choose a date field in your sheet for Ragic to analyze. Mandatory
                                                                Rank Field Pick a field that Ragic should rank according to values. Mandatory
                                                                Value Field Pick a number field that should be analyzed aggregated by the record's value in the Rank Field. Ragic will show you the total and changes compared with the past time period. Mandatory

                                                                Saving your Report

                                                                If you generate the same ranking report often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save it as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered condition.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.3.2    Pivot Table

                                                                Generating a Pivot Table

                                                                You can find Reports on the right side of your listing page or create a report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Ragic can analyze your data to generate a pivot table with the numeric fields in your database according to the criteria you choose. You can change the column field and row field to create the report you need, and Ragic will automatically calculate the total values according to your settings.

                                                                You can also analyze multiple row or column fields.

                                                                Open Source Records

                                                                You can click the numeric value on the pivot table to see the records used for analyzing the value.

                                                                Configurations for Pivot Tables

                                                                Below is a chart of the configurations you can make on your pivot table report.

                                                                Option Description Optional?
                                                                Value Field Pick a numeric field that Ragic should analyze according to the column and row labels. Mandatory
                                                                Row Labels Pick a field that Ragic should display numeric values for. Mandatory
                                                                Column Labels Pick a field that Ragic should display numeric values for. Mandatory

                                                                Saving your Report

                                                                If you generate the same pivot table report often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save it as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered condition.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.4.1    Grouping Report

                                                                Generating a grouping report

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                Ragic can analyze your data to generate a grouping report.

                                                                The report will be generated based on the selected Grouping fields. You can click on the plus icon to add more than one field. Note that the sequence of your grouping fields will effect the grouping result.

                                                                Saving your Report

                                                                If you generate the same grouping report often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.4.2    Label Maker

                                                                Generating Labels from your Data

                                                                You can find Reports on the right side of your listing page or create report from the tab.

                                                                The Reports tab will display reports that you have saved, and an option to create new reports in your account.

                                                                You can generate simple labels for the specified fields in all entries in your sheet with the label maker.

                                                                You can change the label style such as the font size, label width, height and whether or not you'd like to display the field name.

                                                                Note: If you find that the value is not displayed completely, please check if you have set the correct height or width.

                                                                You may design your label to include data from more than one field. Click on the + button to add more fields. The example below includes information from both the "Product Name" and "Barcode" fields.

                                                                You can also choose to display this report in A4 size.

                                                                Printing your Labels

                                                                Click the printer icon on the top-right corner to print your labels.

                                                                If you want to hide the border of report when printing, you can click the border icon on the right side.

                                                                Configurations for the Label Maker Report

                                                                Below is a chart of the configurations you can make on your label maker report.

                                                                Option Description Optional?
                                                                Label Field Pick a field on your Ragic sheet so that Ragic can display the values in this field as a label. Mandatory
                                                                Font Size Enter the desired font size for your label content. Optional
                                                                Indent Enter the desired label indent. Optional
                                                                Align Enter the desired label alignment. Optional
                                                                Width Enter the desired label width. Optional
                                                                Height Enter the desired label height. Optional
                                                                Wrap Choose to wrap text or not for a selection of multiple fields. Optional

                                                                Saving your Report

                                                                If you generate the same labels often, you can save your report by clicking the Save as a report button that comes up on the right side when you generate a report.

                                                                Saving your Report as a PDF

                                                                You can also save as a pdf file or print your report by clicking the print icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within a different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.5.1    User Status Report

                                                                You can install User Status from install templates under category System Report.

                                                                User Status Report

                                                                In the User Analysis tab, you can know your users’ status (login IP, login frequency, amount of finished task, two-step authentication status, etc). In the report, all time-related records are based on the "UTC+0" time zone, such as the last login time.

                                                                The section below displays the login frequency in the past year.

                                                                In the Online Users tab, you will see concurrent users' trends in the recent year.

                                                                Printing or Saving your Report as a PDF

                                                                You can also save it as a PDF file or print your report by clicking the print icon on the right side.

                                                                To hide the border of the report when printing, click the border icon on the right side.

                                                                Viewing Saved Reports

                                                                You can find your saved reports under the Reports tab for easy access.

                                                                Filtering your Report with Views

                                                                Your report will be generated according to the filter you have applied, but you can also generate reports for a certain shared view to display results within different filtered criteria.

                                                                If a fixed filter view is applied to your sheet, the report will display results accordingly.

                                                                Report Embed

                                                                Ragic applications provide you with a tool to embed reports on your website. Alternatively, reports can be sent as a separate link to others.

                                                                The report embed tool can be found by clicking the icon in the upper right corner on any report.

                                                                Reset Report

                                                                If you would like to reset your report, you can click on the return arrow icon to reset it.

                                                                7.5.2    Approval Report

                                                                Approvals can be really hard to manage once there are many approval requests in the database. In this case, SYSAdmins can get the Approval Report in Install Templates under System Report.

                                                                In the report, users will be able to manage entries that need his or her approval, and also entries that have approvals related to him or her.

                                                                In the Proceed with approval as: located in the upper area, you can select which user account he or she would like to proceed with the approval with. The default identity will be your user’s account, but you can also select other accounts that you are deputy to proceed with the approval.

                                                                Notice: The report will only display latest 90 days and up to 100 records to achieve the best system performance.

                                                                Pending approvals

                                                                You will see all the entries that need to be approved, and you can select entries that you want to approve using the checkboxes. Before approving, you can click an entry to see its details with the fly-in.

                                                                Please note that the value on the "Current Step" field is the approver's title or the name of that approval step. And in the "Progress" field, it will also show many people have approved on the right side and how many people in total should approve an entry. Below the entries, users need to re-submit the password before they proceed and also have the option to fill in the reason. Entries will no longer show in this report after being approved.

                                                                Approvals related to you

                                                                You will see two kinds of entries in this section:

                                                                1. Entries with approvals that are started by you.

                                                                2. Entries that will need your approval, but is currently at previous steps.

                                                                If the approval flow has stopped for a while, you can find out which step it is currently at in the “Current Step” field and remind the approver(s) of that step.

                                                                You also will be able to click on an entry to see its details in the fly-in tab from the right side here.

                                                                Approved by you

                                                                You can check all approved records in this tab.

                                                                9.1    RESTful HTTP API

                                                                Ragic has a simple but robust RESTful HTTP API to read data from Ragic or write data to Ragic with your own code. This way, you can create all types of reports, automation programs, sync scripts that integrates Ragic.

                                                                For a complete guide on our HTTP API, please see the Ragic HTTP API Integration Guide.

                                                                9.2    Javascript Workflow Engine

                                                                All forms can trigger Ragic's server-side Javascript workflow engine to execute complex business logic, such as calculating costs and posting inventory balances. Basically, any complex business logic that you would like to execute but cannot be covered by Ragic's existing functions can be covered by server-side scripting.

                                                                The scripting engine is based on the standard Nashorn Java Scripting Engine that's included in the Java platform. Nashorn supports ECMAScript 5.1, so it would be wise to avoid ECMAScript 6 syntax.

                                                                What does Javascript Workflow do?

                                                                Ragic's spreadsheet design interface can handle most of your data management work, such as creating, editing, and querying records without much problem. On the other hand, manual data maintenance can be a bit time-consuming and routine after a while. This is the time when Ragic users will start thinking of ways to automate these processes.

                                                                Inside Ragic, there is a pretty powerful scripting engine where you can write Javascript that runs on the server-side, to retrieve data you have on your spreadsheet, make modifications, or even create many records with one click. Typical usage includes updating inventory, creating a new record based on another (creating a sales order from a quote, creating a contact from a sales lead), or doing record validation based on database data.

                                                                There are 5 main ways to run your Javascript workflow:

                                                                1. Action Button
                                                                2. Post-workflow
                                                                3. Pre-workflow
                                                                4. Daily workflow
                                                                5. Approval workflow

                                                                And there is a Global Workflow where you can place common Javascript function definitions shared by more than one of your workflow scripts.

                                                                Action Button

                                                                This is the most common and cleanest way to run Javascript workflow, and generally our first recommendation. You can write your script in the installed sheet scope of your sheet, and configure an action button to execute the script when the user clicks on the button that will be displayed in the "Actions" panel on the lower right side.

                                                                To add an installed sheet scope script, just right-click on a sheet, and choose Javascript Workflow:

                                                                And choose installed sheet scope from the top dropdown:

                                                                You can then go to the form page of your sheet design, add an Action Button of the type JS Workflow, and refer to the Javascript function that you have written.

                                                                Note that you can pass the record id of the current record by using {id} in the argument for the function call like:

                                                                setStatus({id})

                                                                Of course, we will talk more about how to write these functions in the following sections.

                                                                Post-workflow

                                                                Post-workflows are executed immediately after a record is saved. With post-workflow, it's very convenient to automate changes that you would like to make on the record that you just saved that cannot be done with formulas. Or you can make modifications to records on other related sheets, like updating inventory balance.

                                                                To add a post-workflow, just right-click on a sheet, and choose Javascript Workflow:

                                                                And choose Post-workflow from the top dropdown.

                                                                A typical post-workflow would look something like this:

                                                                var recordId = param.getNewNodeId(key_field_id_of_form);

                                                                var query = db.getAPIQuery(path_to_form);

                                                                var record = query.getAPIEntry(id);

                                                                // do what you would like to do with the record retrieved

                                                                See our API references and other sections of this document for the list of things that you can do.

                                                                Also, please note that post-workflow will not be executed if you modify entries on the listing page.

                                                                Pre-workflow

                                                                Pre-workflows are executed before a record is saved, so it can be used as a way of validation to check the data entered against data in the database. Generally, most validation can be done with our front-end regular expression checks, or the unique checkbox for free text fields. But for more complex backend checks, sometimes pre-workflow will be needed.

                                                                To add a pre-workflow, just right-click on a sheet, and choose Javascript Workflow:

                                                                And choose Pre-workflow from the top dropdown.

                                                                There is a simple example:

                                                                Suppose we have a list,

                                                                and we want to ensure the price we want to save is not negative.

                                                                /**

                                                                * Key Field: 1000004

                                                                * Field Name Field Id

                                                                * - - - - - - - - - - - --------

                                                                * ID : 1000001

                                                                * Price : 1000002

                                                                * Name : 1000003

                                                                * Available ? : 1000005

                                                                */

                                                                function log(str) {

                                                                // set status 'INVALID' or 'ERROR' to cancel the saving.

                                                                response.setStatus('INVALID');

                                                                response.setMessage(str);

                                                                }

                                                                function ifThePriceIsNegative() {

                                                                // get the price we trying to save.

                                                                var newPrice = param.getNewValue(1000002);

                                                                // change the newPrice string to integer.

                                                                if(parseInt(newPrice) < 0) {

                                                                return true;

                                                                }

                                                                }

                                                                // if the price is negative, don't save it.

                                                                if(ifThePriceIsNegative()) {

                                                                log('Price is negative !!');

                                                                }

                                                                And now we try to save a negative price, we would get

                                                                It is noteworthy that we couldn't use entry.getFieldValue while writing the pre-workflow in Ragic (since Ragic hasn't saved it). Try to use the param to get the old value and the new value instead.

                                                                Daily Workflow

                                                                The daily workflow runs on a daily basis. It's useful for doing modifications that need to be refreshed every day. Like updating the results of the formulas based on the current date.

                                                                To add a daily workflow, just right-click on a tab, and choose Global Javascript Workflow:

                                                                And choose Daily Workflow at the first top dropdown.

                                                                By default, the daily workflow runs at 19:00 UTC. You can change the execution time and time zone in Company Setting:

                                                                1. Go to Account Setup

                                                                2. Click Company Setting

                                                                3. Select Company Local Time Zone and Daily Workflow Execution Time and save.

                                                                If your Company Setting does not have Company Local Time Zone and Daily Workflow Execution Time, please contact us to update it for you.

                                                                Approval Workflow

                                                                Approval Workflows are executed immediately after an approval is created/approved/rejected/canceled/finished.

                                                                To add a post-workflow, just right-click on a sheet, and choose Javascript Workflow:

                                                                And choose Approval Workflow from the top dropdown.

                                                                You can get the record id by:

                                                                var recordId = approvalParam.getEntryRootNodeId();

                                                                approvalParam is a predefined variable in the approval workflow scope.


                                                                And you can fetch the approval action by:

                                                                var action = approvalParam.getApprovalAction();

                                                                After you get the above data, you can customize your requirements like this:

                                                                var query = db.getAPIQuery(path_to_form);

                                                                var entry = query.getAPIEntry(recordId);

                                                                if (action === 'CANCEL') {

                                                                entry.setFieldValue(STATUS_FIELD, "approval is canceled!");

                                                                }else if (action === 'FINISH') {

                                                                entry.setFieldValue(STATUS_FIELD, "approval is completed!");

                                                                }else if (action === 'CREATE') {

                                                                entry.setFieldValue(STATUS_FIELD, "approval is created!");

                                                                }else if (action === 'REJECT') {

                                                                entry.setFieldValue(STATUS_FIELD, "approval is rejected!");

                                                                }else {

                                                                entry.setFieldValue(STATUS_FIELD, "approval is approved!");

                                                                }

                                                                entry.save();

                                                                Global Workflow

                                                                The global workflow is where you can write Javascript workflow modules that other workflow functions can reference. It will not be executed by itself but can be referenced in any type of workflow listed above. It's a great place to put scripts that you might need to duplicate across multiple sheets otherwise.

                                                                To add a global workflow, just right-click on a tab, and choose Global Javascript Workflow:

                                                                Get Record

                                                                There are two different ways to get the current record that the user is viewing (for action buttons) or the record that the user has just saved (for pre-workflow and post-workflow).

                                                                Action Button

                                                                The form page action button works by configuring an action button to call a function you defined in the install sheet scope. When you define the function that the action button calls, you can pass a parameter {id} which is the id of the record where you click the action button to function in the workflow.

                                                                You can see the example at Action Button workflow.

                                                                Pre-workflow

                                                                You can get the record id by:

                                                                var recordId = param.getNewNodeId(key_field_id_of_form);

                                                                param is a predefined variable, you can use it in pre-workflow and post-workflow.


                                                                After you get the record id, this is how you get the record (entry):

                                                                var query = db.getAPIQuery(path_to_form);

                                                                var entry = query.getAPIEntry(id);

                                                                Post-workflow

                                                                For post-workflow, you can use either the above method just like with pre-workflow. But also there is a convenient method to retrieve the record that was just saved:

                                                                var entry=param.getUpdatedEntry();

                                                                If there are masked fields on the form page, you will get masked values by default. You can get unmasked values by:

                                                                var query = db.getAPIQuery(path_to_form);

                                                                query.setUpdateMode();

                                                                query.setIgnoreAllMasks(true); // Unmask all masked fields.

                                                                var entry = query.getAPIEntry(id);

                                                                You can use query.addIgnoreMaskDomain(fieldId_of_the_masked_field) instead of query.setIgnoreAllMasks(true) to unmask only specific fields.

                                                                There is more introduction about how to update records in the following section.

                                                                If you would like to filter out multiple records, please refer to the section on filtering.

                                                                Querying for a set of records

                                                                If you want to get more than one record by filtering:

                                                                var query = db.getAPIQuery("/workflow-demo/1");

                                                                query.addFilter(1000002, '=', 'Green');

                                                                query.addFilter(1000008, '=', '2017');

                                                                var results = query.getAPIResultList();

                                                                for (var i = 0; i < results.length; i++) {

                                                                var entry = results[i];

                                                                // ...

                                                                }

                                                                You can add filters to query by addFilter(fieldId, operator, value), and call getAPIResultList() to get the list of records.

                                                                Here's the list of operands that you can use:

                                                                Operand Name Operand Value
                                                                Equals =
                                                                Regular Expression regex
                                                                Greater or equals >=
                                                                Less or equals <=
                                                                Greater >
                                                                Less <
                                                                Contains like

                                                                Please note that when you filter by date or date time, they will need to be in the following format: yyyy/MM/dd or yyyy/MM/dd HH:mm:ss

                                                                You can also use a full-text search as a query filter by calling setFullTextSearch(String queryTerm) instead of addFilter().

                                                                Updating Records

                                                                Link to example

                                                                Let's start with a simple example that retrieves the current record as an object, updates its value with a button, and then saves it back to the database. Here is what the demo form looks like:

                                                                We would like to design some buttons that will change the value of our status field with the click of a button executing simple server-side Javascript workflow. Here's the code behind the button:

                                                                /**

                                                                * AP_Name:wfdemo

                                                                * Key Field: 1000013

                                                                * Name ID

                                                                * - - - - - - - - - - - --------

                                                                * No. : 1000011

                                                                * Status : 1000012

                                                                */

                                                                function setStatus(recordId, status) {

                                                                var STATUS_FIELD = 1000012; //field id of the status field

                                                                var query = db.getAPIQuery("/workflow-demo/2"); //get the query object for a sheet with path to sheet

                                                                var entry = query.getAPIEntry(recordId); //get the record object for the current record

                                                                //set the status value for the current record to the object

                                                                if (status) {

                                                                entry.setFieldValue(STATUS_FIELD, status);

                                                                }

                                                                else {//for switching

                                                                var newStatus = entry.getFieldValue(STATUS_FIELD) == 'On' ? 'Off' : 'On'; //get the current value of a field

                                                                entry.setFieldValue(STATUS_FIELD, newStatus);

                                                                }

                                                                //save the record back to the database

                                                                entry.save();

                                                                }

                                                                When writing Javascript workflow, the variable db is predefined. You can refer to it anywhere. Generally, we call the method getAPIQuery(pathName) to retrieve the query object for a sheet.

                                                                Then you can retrieve a record with its record id on the sheet object with getAPIEntry(recordId), and call setFieldValue(fieldId,value) to set the value to a field, or getFieldValue(fieldId) to retrieve value from a record.

                                                                Please note that when adding date values, it must be in one of the following formats:

                                                                yyyy/MM/dd

                                                                yyyy/MM/dd HH:mm:ss

                                                                HH:mm:ss

                                                                If you're retrieving a value from a multiple selection field, where there may be multiple values, use getFieldValues(fieldId) to retrieve all the values in an array. You can also call setFieldValue(fieldId,value,true) with an extra true argument at the end to specify that you're "adding" an option to the current list of values, not overwriting the existing ones. Note that these operations are only suitable for multiple selection fields.

                                                                If you want to copy a multiple selection field value and overwrite the value in another multiple selection field, you couldn't just use getFieldValues(fieldId) and setFieldValue(fieldId,value,true). Here's the code that you can refer to:

                                                                var multipleSelectionFieldValue = entry.getFieldValues(1013251); // 1013251 is a mutiple selection field

                                                                var targetMultipleSelectionField = "";

                                                                for (var i = 0; i < multipleSelectionFieldValue.length; i++) {

                                                                if (i == 0) {

                                                                targetMultipleSelectionField = targetMultipleSelectionField + multipleSelectionFieldValue[i];

                                                                }

                                                                else {

                                                                targetMultipleSelectionField = targetMultipleSelectionField + "|" + multipleSelectionFieldValue[i];

                                                                }

                                                                }

                                                                entry.setFieldValue(1013252, targetMultipleSelectionField, false); // 1013251 is another mutiple selection field

                                                                Please note that you need to retrieve every option and format those options with a vertical bar character (|) like what you will do while importing existing data from Excel or CSV files.

                                                                If you're setting values to a file upload field, you can use setFieldFile(int fieldId, String fileName, String fileContent) to create a file with the fileName and with the fileContent you provided. Ragic will then save this file to this field so that the file is available for download on the user interface.

                                                                After you're done, just call save() on the record object to save it back to the database.

                                                                Creating Records

                                                                Creating records is very similar to updating records. Instead of calling query.getAPIEntry(), call query.insertAPIEntry() instead. Like getAPIEntry(), it will also return a record where you can setFieldValue to add field values. The record will be created after calling record.save().

                                                                A simple modification of the record update demo like this will create a new record instead:

                                                                /**

                                                                * AP_Name:wfdemo

                                                                * Key Field: 1000013

                                                                * Name ID

                                                                * - - - - - - - - - - - --------

                                                                * No. : 1000011

                                                                * Status : 1000012

                                                                */

                                                                function setStatus(recordId, status) {

                                                                var STATUS_FIELD = 1000012; //field id of the status field

                                                                var query = db.getAPIQuery("/workflow-demo/2"); //get the query object for a sheet with the path to sheet

                                                                var entry = query.insertAPIEntry(); //create a new record object

                                                                //create the new record to the database

                                                                entry.save();

                                                                }

                                                                Subtables

                                                                Link to example

                                                                If you have subtables in a sheet, you can also use our API to retrieve data from it or make edits like the following example. The form looks like this:

                                                                The workflow will walk through each row in the subtable, and find the total amount for this year (according to the date field in the subtable), the total for the year with the most amount, and identify which year has the highest total. This is designed as a post-workflow, so the three read-only fields will be filled by workflow after the record is saved.

                                                                /**

                                                                * AP_Name:wfdemo

                                                                * Key Field: 1000006

                                                                * Date subtable key: 1000007

                                                                * Field Name Field Id

                                                                * - - - - - - - - - - - --------

                                                                * No. : 1000001

                                                                * Name : 1000002

                                                                * Date : 1000003

                                                                * Amout : 1000004

                                                                * Total of This Year : 1000010

                                                                * Maximal Total of Year : 1000009

                                                                * Year of Maximal Total : 1000008

                                                                */

                                                                var KEY_FIELD = 1000006;

                                                                var AMOUNT_SUBTABLE_ID = 1000007;

                                                                var DATE_FIELD = 1000003;

                                                                var AMOUNT_FIELD = 1000004;

                                                                var MAX_YEAR_FIELD = 1000008;

                                                                var MAX_TOTAL_FIELD = 1000009;

                                                                var THIS_YEAR_TOTAL_FIELD = 1000010;

                                                                var query = db.getAPIQuery("/workflow-demo/1");

                                                                var entry = query.getAPIEntry(param.getNewNodeId(KEY_FIELD));

                                                                var subtableSize = entry.getSubtableSize(AMOUNT_SUBTABLE_ID);

                                                                var yearTotal = {}

                                                                for (var i = 0; i < subtableSize; i++) {

                                                                var year = parseInt(entry.getSubtableFieldValue(AMOUNT_SUBTABLE_ID, i, DATE_FIELD).substr(0, 4));

                                                                var amount = parseInt(entry.getSubtableFieldValue(AMOUNT_SUBTABLE_ID, i, AMOUNT_FIELD));

                                                                if (year in yearTotal) {

                                                                yearTotal[year] += amount;

                                                                } else {

                                                                yearTotal[year] = amount;

                                                                }

                                                                }

                                                                var maxYear;

                                                                for (var year in yearTotal) {

                                                                if (!maxYear || yearTotal[maxYear] < yearTotal[year]) {

                                                                maxYear = year;

                                                                }

                                                                }

                                                                entry.setFieldValue(MAX_YEAR_FIELD, maxYear);

                                                                entry.setFieldValue(MAX_TOTAL_FIELD, yearTotal[maxYear]);

                                                                entry.setFieldValue(THIS_YEAR_TOTAL_FIELD, yearTotal[new Date().getFullYear()]);

                                                                entry.save();

                                                                The basic idea is to use getSubtableSize(subtableId) to get the number of rows for a record, and use getSubtableFieldValue(subtableId,subtableRowIndex,subtableFieldId) to retrieve their values. You should be able to find subtable id, and field id information in the auto-generated comments when you start editing workflow scripts.

                                                                You can also use setSubtableFieldValue(subtableFieldId,subtableRootNodeId,value) to set values to a subtable. The subtableRootNodeId is used to specify which subtable row that you're referring to. To find a subtableRootNodeId for an existing subtable row, you can use the following call getSubtableRootNodeId(subtableId,subtableRowIndex) which will return an integer containing the subtableRootNodeId.

                                                                If you need to add a row to the subtable, you can use a negative subtableRootNodeId like -100, this way all values set to the same negative subtableRootNodeId will be applied to the same new subtable row, and values set to a different negative subtableRootNodeId like -101 will create a different row in the subtable with this different set of values.

                                                                Pre-workflow and Post-workflow

                                                                If you want to get values in pre-workflow and post-workflow, try following this example:

                                                                var list = param.getSubtableEntry(AMOUNT_SUBTABLE_ID);

                                                                var arr = list.toArray();

                                                                response.setStatus('WARN');

                                                                for (var i = 0; i < arr.length; i++) {

                                                                response.setMessage('Date : '+arr[i].getNewValue(DATE_FIELD)+', Amount : '+arr[i].getNewValue(AMOUNT_FIELD)+'\r\n');

                                                                }

                                                                Copying records

                                                                Link to example: Copy From and Copy To

                                                                Copying records is one of the most common workflow programs we encounter. We have written a pretty simple function to simplify this type of operation. Let's say we would like to see a record on this sheet:

                                                                With the click of the button, generate a record on this sheet:

                                                                Here is the code for this action button:

                                                                /**

                                                                * AP_Name:wfdemo

                                                                * Key Field: 1000022

                                                                * S1 subtable key: 1000023

                                                                * T1 subtable key: 1000029

                                                                * Field name Field ID

                                                                * - - - - - - - - - - - --------

                                                                * A : 1000014

                                                                * C : 1000015

                                                                * B : 1000016

                                                                * D : 1000017

                                                                * S1 : 1000018

                                                                * S2 : 1000019

                                                                * S3 : 1000020

                                                                * S4 : 1000021

                                                                * T1 : 1000024

                                                                * T2 : 1000025

                                                                * T3 : 1000026

                                                                */

                                                                function copyEntry(nodeId) {

                                                                db.entryCopier(JSON.stringify({

                                                                THIS_PATH:"/workflow-demo/3",

                                                                THIS_NODEID:nodeId,

                                                                NEW_PATH:"/workflow-demo/4",

                                                                COPY:{

                                                                1000030:1000014, // A

                                                                1000031:1000015, // C

                                                                1000032:1000018, // S1

                                                                1000033:1000020 // S3

                                                                }

                                                                }),response);

                                                                }

                                                                Here you can see we can do the copy with one simple function call to entryCopier. entryCopier takes a JSON string as its parameter. Just put down the source sheet, target sheet, the record that we're copying, and most importantly, which field should be mapped to which field. When the mapping is complete, you can create action buttons to copy records from one sheet to another very easily.

                                                                Let's take a look at another example.

                                                                Here, we want to copy Lin from "CopyFrom" to "CopyTo" and set the status to new. In addition, we'd also like to record the created date (please disregard the use of $DATE field for this example).

                                                                /**

                                                                * field name field id

                                                                * - - - - - - - - - - - --------

                                                                * From-ID : 1000001

                                                                * From-Name : 1000002

                                                                * To-ID : 1000004

                                                                * To-Name : 1000005

                                                                * Status : 1000007

                                                                * RegisterDate : 1000008

                                                                */

                                                                function copyEntry(nodeId) {

                                                                db.entryCopier(JSON.stringify({

                                                                THIS_PATH:"/entrycopier/1",

                                                                THIS_NODEID:nodeId,

                                                                NEW_PATH:"/entrycopier/2",

                                                                COPY:{

                                                                // to : from

                                                                1000004:1000001,

                                                                1000005:1000002,

                                                                }

                                                                }),response);

                                                                //get the rootNodeId of the entry we copied before.

                                                                var newEntryRootNodeId = response.getRootNodeId();

                                                                //we need to create an ApiQuery to search the '/entrycopier/2'

                                                                var toApiQuery = db.getAPIQuery('/entrycopier/2');

                                                                //get the entry we copied before

                                                                var newEntry = toApiQuery.getAPIEntry(newEntryRootNodeId);

                                                                newEntry.setFieldValue(1000007, "New");

                                                                var current = new Date();

                                                                newEntry.setFieldValue(1000008, current.getFullYear()+'/' + (current.getMonth()+1) + '/' + current.getDate());

                                                                newEntry.save();

                                                                }

                                                                Next, set up the Action Button and save it.

                                                                Then, simply click the Action Button to display the result.

                                                                Checking user access right

                                                                You can do some conditional processing based on which groups the user who will be executing the script is in. A user can be in multiple user groups, so usually, we can do a user.isInGroup(groupName) call to determine if the user is or is not in this user group. A typical use would be as follows, the following code is designed to be a pre-workflow, but a user object and isInGroup call can be used in all types of workflow except daily workflow which is triggered by the system.

                                                                if(!user.isInGroup('SYSAdmin')){//check if the user is a SYSAdmin

                                                                response.setStatus('INVALID');//if they are not, do not save the record

                                                                response.setMessage('You do not have the access right to do this.');//and display a message

                                                                }

                                                                Sending e-mail notifications

                                                                Sometimes you would like to send e-mail notifications based on a set of conditions, or you would like to really customize your notification message content. You can write server-side Javascript workflow for this purpose. Here is the script that you will use to send out an e-mail, it's really simple:

                                                                //omitted...retrieve record object first

                                                                var name=entry.getFieldValue(1001426);

                                                                var email=entry.getFieldValue(1001428);

                                                                var title=entry.getFieldValue(1001386);

                                                                mailer.compose(

                                                                email, //to

                                                                null, //cc

                                                                'support@example.com', //reply to

                                                                'Acme, Inc.', //displayed from

                                                                title,

                                                                'Hi '+name+',

                                                                we have received your sales order '+

                                                                'and will be processing your order very soon.

                                                                '+

                                                                'You can see your order details at https://www.ragic.com/example/1

                                                                '+

                                                                'Thanks.


                                                                Best Regards,

                                                                Sophia, Sales Manager

                                                                Acme, Inc.'

                                                                );

                                                                //mailer.attach(myURL); //you can use .attach to attach content from a URL

                                                                mailer.send();

                                                                Note that if you would like to send an e-mail to multiple recipients, just separate each e-mail address with commas.

                                                                For attachments, you can use mailer.attach(myURL); to attach a record on Ragic by using the record's URL. For example, here is a record URL on Ragic (always ignore URL after the hash) :

                                                                https://www.ragic.com/wfdemo/workflow-demo/2/9

                                                                Here is its HTML printer-friendly URL:

                                                                https://www.ragic.com/wfdemo/workflow-demo/2/9.xhtml

                                                                Here is its Excel version URL:

                                                                https://www.ragic.com/wfdemo/workflow-demo/2/9.xlsx

                                                                You can also use a Mail Merge URL like this, the cid being the id of the Mail Merge, you can get the cid in the URL when trying to download the Mail Merge document:

                                                                https://www.ragic.com/wfdemo/workflow-demo/2/9.custom?rn=9&cid=1

                                                                We do enforce some limitations on how many e-mails you can send. So send reasonably! If you have some questions on e-mail sending quota, send us an e-mail at support@ragic.com.

                                                                Creating and cancelling Approval

                                                                You could start or cancel a record’s approval by adding the post-workflow script to your sheet.

                                                                First, we set the approval step in design mode.

                                                                and now set the approval detail in the post workflow

                                                                function autoStartApprover() {

                                                                var signers = [];

                                                                signers.push({

                                                                'stepIndex':'0',

                                                                'approver':'kingjo@ragic.com',

                                                                'stepName':'START'

                                                                });

                                                                signers.push({

                                                                'stepIndex':'1',

                                                                'approver':'HR0000@hr.hr',

                                                                'stepName':'HR'

                                                                });

                                                                approval.create(JSON.stringify(signers));

                                                                }

                                                                autoStartApprover();

                                                                result

                                                                {

                                                                'stepIndex':'0',

                                                                'approver':'kingjo@ragic.com',

                                                                'stepName':'START'

                                                                }

                                                                is the parameter format you should provide.

                                                                stepIndex :

                                                                Used to know which approval step to set, starting from zero.

                                                                approver :

                                                                Used to know who could sign this approval step.

                                                                stepName :

                                                                Used to set approval step name.

                                                                Your approval would not be created if there was something wrong in the parameter format or if the approvers you provided didn't follow the rule you set in the design mode.

                                                                In this example, if you give the second step parameter like the following:

                                                                {

                                                                'stepIndex':'1',

                                                                'approver':'kingjo@ragic.com',

                                                                'stepName':'HR'

                                                                }

                                                                If that's the case, it would fail since kingjo@ragic.com was not in the HR group.

                                                                We also provide 3 special formats for deciding your approvers dynamically according to your company tree.

                                                                You could see this for further information.

                                                                $DS :

                                                                The approver will be set to the user's direct supervisor.

                                                                $SS :

                                                                The approver will be set to the user's supervisor's supervisor.

                                                                $DSL :

                                                                The approver will be set as the supervisor of the previous approver.

                                                                The parameter format is like

                                                                {

                                                                'stepIndex':'1',

                                                                'approver':'$DSL',

                                                                'stepName':''

                                                                }

                                                                You don't have to provide a non-empty stepName while using these special formats.

                                                                Note: If the user in a special format didn't follow the rule you set in the design mode, this approver would not be created.

                                                                Sending mobile app notifications

                                                                Other than e-mail notifications, you can also send a mobile app notification. It will be sent to the user if the iOS app or Android app has been installed on his mobile device. The e-mail refers to the user's e-mail address registered in your Ragic account. For example:

                                                                mailer.sendAppNotification("mike@example.com","test mobile notification");

                                                                If you would like the user to be redirected to the specified record when clicking on this notification. You should provide a path to the form that you would like to redirect to (ex: /forms/1 ) and the record id. The call should look like this:

                                                                mailer.sendAppNotification("mike@example.com","test mobile notification","/forms/1",12);

                                                                Approver and other information on a record

                                                                You can first issue the following command to the query object you get from db.getAPIQuery to include full record info:

                                                                query.setIfIncludeInfo(true);

                                                                and then you can get the approval information for a record like this:

                                                                entry.getFieldValue('_approve_status');//getting status of current approval

                                                                entry.getFieldValue('_approve_next');//getting the next person who should sign this record

                                                                entry.getFieldValue('_create_date');//getting the create date of the record

                                                                entry.getFieldValue('_create_user');//getting the create user e-mail of the record

                                                                The approval status will be F is approved, REJ for rejected, and P for processing.

                                                                Display message

                                                                You can display a message in a pop-up like this. Please note that the message will only show when the response status is "WARN". By default, the message inside the response object will not be displayed since it's usually not helpful to end users.

                                                                response.setStatus('WARN');

                                                                response.setMessage(message);

                                                                Paging

                                                                In this section, we will have an example to show how to use setLimitSize and setLimitFrom. In this example, we have 20 entries total and want to take 6 for each count and show the message.

                                                                /**

                                                                * Field Name Field Id

                                                                * - - - - - - - - - - - --------

                                                                * ID : 1000009

                                                                * Money : 1000010

                                                                */

                                                                function limitFromExample() {

                                                                var apiQuery = db.getAPIQuery('/entrycopier/3');

                                                                // remember the offset

                                                                var fromNumber = 0;

                                                                apiQuery.setLimitFrom(fromNumber);

                                                                // take 6 for each count

                                                                apiQuery.setLimitSize(6);

                                                                var resultList = apiQuery.getAPIResultList();

                                                                while(resultList.length > 0) {

                                                                var msg = '';

                                                                for(var i = 0;i < resultList.length; i++) {

                                                                var entry = resultList[i];

                                                                msg += entry.getFieldValue(1000009);

                                                                if(i != resultList.length -1) msg += ',';

                                                                }

                                                                response.setMessage(msg);

                                                                // update offset

                                                                fromNumber += resultList.length;

                                                                // refresh apiQuery

                                                                apiQuery = db.getAPIQuery('/entrycopier/3');

                                                                apiQuery.setLimitSize(6);

                                                                apiQuery.setLimitFrom(fromNumber);

                                                                resultList = apiQuery.getAPIResultList();

                                                                }

                                                                response.setStatus('WARN');

                                                                }

                                                                Entries

                                                                Result

                                                                Send HTTP request

                                                                You can send an HTTP GET/POST/DELETE/PUT request to an URL and get returned result:

                                                                util.getURL(String urlstring)

                                                                util.postURL(String urlstring,String postBody)

                                                                util.deleteURL(String urlstring)

                                                                util.putURL(String urlstring,String putBody)

                                                                The variable util is predefined.

                                                                Also, you can call util.setHeader(String name,String value) to set HTTP headers. util.removeHeader(String name) to remove headers.

                                                                API references

                                                                Pre-defined system global variables listed here can be accessed directly without defining them.

                                                                db.getAPIQuery

                                                                MethodDescription
                                                                getAPIResult()Get first entry when iterate over the query
                                                                getAPIResultList()Get array of entries of the query
                                                                getAPIEntry(int rootNodeId)Get entry by node ID
                                                                getKeyFieldId()Retrieve the key field id of the sheet this query is on.
                                                                getFieldIdByName(String fieldName)Get the field id of a specified name. If there is more than one field of the same name, the first independent field id will be returned.
                                                                insertAPIEntry()Insert a new entry to the query, and the method returns the new entry
                                                                addFilter(int fieldId, String operand, String value)Filtering entries by specified condition
                                                                setIfIgnoreFixedFilter(boolean ifIgnoreFixedFilter)Set if ignore the fixed filter from target sheet
                                                                setOrder(int orderField, int orderDir)Sort entries of the query by specified field field id and order direction, parameter orderDir is set to 1 if sort ascending, set to 2 if sort descending, set to 3 if secondary sort ascending, and set to 4 if secondary sort descending.
                                                                deleteEntry(int nodeId)Delete entry by node ID
                                                                deleteEntryToRecycleBin(int nodeId)Delete entry by node ID to recycle bin
                                                                setLimitSize(int limitSize)By default ScriptAPIQuery returns 1000 records per query, you can use setLimitSize to change the number of records returned per query. However, we do not recommend returning too many records per query because it may take too much memory and have bad performance implications. We recommend using the next method setLimitFrom to do paging instead.
                                                                setLimitFrom(int limitFrom)This method is for paging through all the records on a ScriptAPIQuery. Setting a limitFrom will tell ScriptAPIQuery to start returning records from an offset so that you can page through all the records of ScriptAPIQuery because ScriptAPIQuery returns 1000 records per query by default. You should check for the next page if the number of records returned equals the returned list size.
                                                                setGetUserNameAsSelectUserValue(boolean b)When set to false, the query will retrieve the user's email for select user fields instead of the user's user name.

                                                                Here's the list of operands that you can use:

                                                                Operand Name Operand Value
                                                                Equals =
                                                                Regular Expression regex
                                                                Greater or equals >=
                                                                Less or equals <=
                                                                Greater >
                                                                Less <
                                                                Contains like

                                                                Please note that when you filter by date or date time, they will need to be in the following format: yyyy/MM/dd or yyyy/MM/dd HH:mm:ss

                                                                You can also use a full-text search as a query filter by calling setFullTextSearch(String queryTerm) instead of addFilter().

                                                                db.getAPIQuery records

                                                                MethodDescription
                                                                getFieldValue(int fieldId)Get value of the field by field id. Subtable fields not included.
                                                                getFieldIdByName(String fieldName)Get the field id of a specified name. If there is more than one field of the same name, the first independent field id will be returned.
                                                                getKeyFieldId()Retrieve the key field id of this sheet.
                                                                getFieldValueByName(String fieldName)Get value of the field by field name. Subtable fields not included. If there is more than one field of the same name, the first field value will be returned.
                                                                getFieldValues(int fieldId)Get all the field values from a multiple select field as an array. Subtable fields not included.
                                                                getRootNodeId()Get root node ID of the entry
                                                                getRootfieldId()Get root field id of the entry
                                                                getSubtableSize(int subtableRootfieldId)Get the size of the subtable, specified by the root field id of the subtable.
                                                                getSubtableRootNodeId(int subtableRootfieldId, int rowNumber)Get the root node ID of the subtable, specified by its root field id and row number in the subtable.
                                                                getJSON()Get a JSON representation of the whole record.
                                                                setFieldValue(int fieldId, String value)Set value to specified field. For subtable fields, you need to use setSubtableFieldValue();
                                                                setFieldValue(int fieldId, String value, boolean appendValue)Set value to a field which is a multiple select field, parameter appendValue need to be true. For subtable fields, you need to use setSubtableFieldValue();
                                                                setFieldFile(int fieldId, String fileName, String fileContent)For file upload or graphics field only. A file of the fileName you provided and the fileContent you provided will be created as a file upload and saved to the specified field. For subtable fields, you need to use setSubtableFieldFile();
                                                                setSubtableFieldValue(int fieldId, int subtableRootNodeId,String value)Set value to subtable field, you can get parameter subtableRootNodeId by method getSubtableRootNodeId.
                                                                setSubtableFieldValue(int fieldId, int subtableRootNodeId, String value, boolean appendValue)Set value to subtable field which is a multiple select field, parameter appendValue need to be true
                                                                deleteSubtableRowByRowNumber(int subtableRootfieldId, int rowNumber)Delete the subtable row by its root field id and row number in the subtable.
                                                                deleteSubtableRowAll(int subtableRootfieldId)Delete every row in specified subtable
                                                                deleteSubtableRow(int subtableRootfieldId, int subtableRootNodeId)Delete subtable row by root field id and the root node ID of subtable
                                                                loadAllLinkAndLoad()Load value of all loaded fields in a link and load configuration in the entry.
                                                                recalculateAllFormulas()Recalculate every field that contains formula in the entry.
                                                                recalculateFormula(int fieldId)Recalculate formula of specified field.
                                                                Note: If two or more fields share the same fieldId, please use recalculateFormula(int fieldId, String cellName) instead.
                                                                recalculateFormula(int fieldId, String cellName)Recalculates formula of a specified field using with cellName parameter determining the field’s cell location (such as A1, C2, H21, etc). This method is used on sheets with two or more fields with the same fieldId.
                                                                loadAllDefaultValues(ScriptUser user)Load value of every field that is set with a default value, parameter user is predefined.
                                                                loadDefaultValue(int fieldId, ScriptUser user)Load default value of specified field, parameter user is predefined.
                                                                lock()Lock the entry
                                                                unlock()Unlock the entry
                                                                save()Save a entry
                                                                setCreateHistory(boolean createHistory)Set if the entry need to create history
                                                                isCreateHistory()Whether the entry is set to create history
                                                                setIfExecuteWorkflow(boolean executeWorkflow)Set if executing the workflow (pre-workflow and post-workflow) of the entry is needed
                                                                setIgnoreEmptyCheck(boolean ignoreEmptyCheck)Set if checking not empty fields would be ignored
                                                                setRecalParentFormula(boolean recalParentFormula)If this sheet is created by a subtable of another sheet, or is referenced by another sheet, which means, this sheet has the parent sheet, then you can call this method to set if you want to recalculate the parent sheet or not.
                                                                setIfDoLnls(boolean)Loaded values syncing will be triggered on the other sheet if that sheet links to this sheet, the source sheet. You should always add this method to the source sheet to trigger syncing on the other sheet.

                                                                response

                                                                MethodDescription
                                                                getStatus()Gets the status of the response. Either SUCCESS, WARN, CONFIRM, INVALID, ERROR
                                                                setStatus(String status)Sets the status of the response. Either SUCCESS, WARN, CONFIRM, INVALID, ERROR
                                                                setMessage(String plainMessage)Sets a message for display when script executed. This function can be called several times and all messages that have been set will show at the same time.
                                                                numOfMessages()Returns the number of messages that has been set.
                                                                setOpenURL(String url)Installed sheet scope only. Redirects the user to the URL specified after saving the edit.
                                                                setOpenURLInNewTab(boolean b)Configure whether the browser opens a new tab when opening an URL. Defaults to true.

                                                                user

                                                                MethodDescription
                                                                getEmail()Get user's email address
                                                                getUserName()Get user's full name
                                                                isInGroup(String groupName)Returns if the user is in this group with the name of groupName

                                                                mailer

                                                                MethodDescription
                                                                compose(String to,String cc,String from,String fromPersonal,String subject,String content)Compose an e-mail message for sending out. The to and cc parameter can contain multiple e-mail addresses. They just need to be separated by commas.
                                                                send()Send out the message that was just composed.
                                                                sendAsync()Send out the message that was just composed asynchronously. Note that sendAsync can only be called once per script execution.
                                                                attach(String url)Attach a file to the message. The URL should be a full URL with https://
                                                                setSendRaw(boolean b)Set if the content should not be converted to HTML. Set this to true when your content is already in HTML.
                                                                sendAppNotification(String email,String message)Send a mobile app notification to this user if the user has installed a Ragic iOS app or Android app.
                                                                sendAppNotification(String email,String message,String pathToForm,int nodeId)Send a mobile app notification to this user if the user has installed a Ragic iOS app or Android app. The user will be redirected to the specified record when clicking on this notification. "pathToForm" should be in the format "/forms/1", not including the account name, including the tab folder and sheet index.

                                                                util

                                                                MethodDescription
                                                                getURL(String urlstring)Calls an URL with GET method
                                                                postURL(String urlstring,String postBody)Calls an URL with POST method.
                                                                deleteURL(String urlstring)Calls an URL with DELETE method.
                                                                putURL(String urlstring,String putBody)Calls an URL with PUT method.
                                                                setHeader(String name,String value)Sets an HTTP header that will be used in subsequent URL calls.
                                                                removeHeader(String name)Removes an HTTP header from being used in subsequent URL calls.
                                                                logWorkflowError(String text)Records a string text log message in the workflow log that you can find in the database maintenance page.

                                                                account

                                                                MethodDescription
                                                                getUserName(String email)Get the full name of a user specified by the e-mail address.
                                                                getUserEmail(String userName)Get the email address for the specified user name.
                                                                reset()Purge all account-related cache when the script and reloads the page finishes executing.
                                                                getTimeZoneOffset()Get time zone offset of this account in milliseconds.
                                                                getTimeZoneOffsetInHours()Get time zone offset of this account in hours.

                                                                param

                                                                This is the user request object submitted by the user before the request is saved to the database. Especially helpful when writing pre-workflow scripts

                                                                MethodDescription
                                                                getUpdatedEntry()Post-workflow only. Returns the record that was just created or updated.
                                                                getNewNodeId(int fieldId)Returns the node ID (int) of given field after new value being written.
                                                                getOldNodeId(int fieldId)Returns the node ID (int) of given field before new value being written.
                                                                getNewValue(int fieldId)Returns the value of given field after new value being written.
                                                                getOldValue(int fieldId)Returns the value of given field before new value being written.
                                                                getNewValues(int fieldId)Similar to getNewValue, but can access multiple values at the same time, which is useful when dealing with multiple-selection fields.
                                                                getOldValues(int fieldId)Similar to getOldValue, but can access multiple values at the same time, which is useful when dealing with multiple-selection fields.
                                                                getSubtableEntry(int fieldId)Returns a list of params that can manipulate each record in the subtable.
                                                                isCreateNew()Return if the entry is newly created.

                                                                approval

                                                                MethodDescription
                                                                create(String[] wfSigner)

                                                                Post-workflow only.

                                                                wfSigner is an array with specific JSON format objects in it.

                                                                {

                                                                'stepIndex' : what step in the approval - start from 0,

                                                                'approver' : approver's email

                                                                'stepName' : approver's name or title

                                                                }

                                                                The example for "single approver in a step" :

                                                                wfSigner push({

                                                                'stepIndex':'1',

                                                                'approver':'kingjo@ragic.com',

                                                                'stepName':'Jo'

                                                                })

                                                                Note that wfSigner should satisfy the approval you set in design mode.

                                                                Say, if there is only one candidate "HR00@gmail.com" in step 2 in design mode, you should give a json with approver: HR00@gmail.com and stepIndex : 1 .

                                                                cancel()Post-workflow only. Cancel the approval in the entry.

                                                                approvalParam

                                                                MethodDescription
                                                                getEntryRootNodeId()Get root node ID of the entry
                                                                getApprovalAction()Gets the action of the approval. Either CREATE, APPROVE, FINISH, CANCEL, REJECT

                                                                9.3    Workflow Generator

                                                                Ragic's workflow generator can help you create workflow samples such as get field value, start an approval, formula recalculation, etc.

                                                                Navigate to Javascript Workflow page by right-clicking the Tab name.

                                                                Choose Global workflow, Daily workflow, or a specific sheet first, and select what kinds of workflow. For example, generating a set value sample with post-workflow in "Sales Order".

                                                                Please note that you might need to further edit the sample.

                                                                All supported functions are as below:

                                                                Post-workflow

                                                                (1) Current record

                                                                (2) For each subtable row on the saved record

                                                                Pre-workflow

                                                                (1) Current record

                                                                (2) For each subtable row on the saved record

                                                                Action Button

                                                                (1) For the current record

                                                                (2) For each subtable row on the current record

                                                                Approval Workflow

                                                                (1) Start an approval

                                                                (2) Cancel an approval

                                                                General Workflow

                                                                (1) For each record on a sheet

                                                                (2) Create a record

                                                                (3) Create a subtable row

                                                                (4) Check the user group

                                                                (5) Trigger formula recalculation for a record

                                                                (6) Trigger link and load for a record

                                                                (7) Send e-mail notification

                                                                (8) Send mobile notification

                                                                (9) Display a message

                                                                (10) Send HTTP request

                                                                Daily Workflow

                                                                (1) Recalculate all formulas in a sheet

                                                                (2) Recalculate formula for fields

                                                                (3) Delete old records

                                                                (4) Execute all link and load sync for the entire sheet

                                                                (5) Update the exchange rate of a specific field

                                                                (6) Update all exchange rate fields for the entire sheet

                                                                (7) A record in a sheet

                                                                (8) Add a new record

                                                                (9) Add a new subtable record

                                                                (10) Check user group

                                                                (11) Execute formula recalculation of a record

                                                                (12) Execute link and load sync of a record

                                                                (13) Send email

                                                                (14) Send notification

                                                                (15) Show message

                                                                (16) Send HTTP Request

                                                                10    On-premises Installation (NAS)

                                                                You can host Ragic on your own servers if necessary, provided that your organization has the ability to maintain your own servers. We strongly recommend companies only use on-premise servers if they have an experienced IT crew who understands how to maintain and keep a server safe and secure.

                                                                There is no additional cost for the on-premises option, but there is a 10 users minimum and your plan will need to be paid annually. For detailed information, please refer to pricing page.

                                                                Install Guide

                                                                1. Make sure JDK8 is installed on your server that you would like to host your Ragic service. Install JDK 8 if not installed already. You can download JDK here or here.
                                                                2. Upload your Ragic zip file to the server. You can download Ragic on-premise version by signing on to www.ragic.com with your Ragic user account and click here to download the latest version.
                                                                3. Unzip the zip file to the directory where you would like to install Ragic
                                                                4. You should have two license files license.xml and sig that were sent to you after you purchased Ragic. Copy these two files to the directory cust under your Ragic directory. This is also the place where you update your license files in the future.

                                                                5. If you are on Linux, ls -al and use chmod to make sure that you have the right to execute both bin/ragic_dbv7.sh and bin/setclasspath_dbv7.sh.
                                                                6. Setup Environment Variables:

                                                                  JAVA_HOME: the path where JDK 8 is located

                                                                  RAGIC_HOME: the path where Ragic is located

                                                                  On the Windows taskbar, right-click the Windows icon and select System. In the Settings window, under Related Settings, click Advanced system settings and hit Environment Variables to create a new one.

                                                                  If you don’t want to edit the environment variable, you can also just edit ragic.sh (Linux) or ragic.bat (Windows) to add lines like these:

                                                                  JAVA_HOME= /usr/lib/jvm/java-8-openjdk-amd64

                                                                  RAGIC_HOME= /home/ragic

                                                                  You can also change the lines with JAVA_OPTS="-Xms5g -Xmx5g to tell your server how much memory Ragic can consume. 5g will mean that it takes up 5 GB of memory. If you set it to JAVA_OPTS="-Xms10g -Xmx10g it will give Ragic 10 GB of memory. You should not give Ragic more than 70% of physical memory available on the server, since there will be memory needed for the OS to function properly, and there is still some off-heap memory needed for Ragic to run.

                                                                7. To Start the Ragic Server, run the following command:

                                                                  For Windows, find the directory bin folder under your Ragic directory and type ./ragic_dbv7.bat start

                                                                  For Linux, type ./bin/ragic_dbv7.sh manual

                                                                  On Linux, you can add nohup so that the process will not end as your user exits the session, or add it to the system services. Also notice that on Linux you will need to use root privilege or sudo to execute the service so that Ragic can be bound to port 80. On Windows, you will need sufficient privileges too to bound to port 80.

                                                                  When starting or restarting Ragic, you should always make sure there’s only one instance of Ragic running. The easiest way to check is using your browser to connect to your Ragic URL and make sure it’s currently not running. On Linux, you can also use the command ps aux | grep java to check if there’s any java process running already. On Windows, you can go to the process monitor to see if there’s any Java process running. You will need to kill all Ragic Java processes before you start Ragic or running multiple instances of Ragic will result in an error (although sometimes not immediately noticeable).

                                                                8. In your browser, go to localhost (or enter the IP address/ the domain name of your Ragic remote server). The local host main page should look like below. The user that you create now will have the administrator privilege of your Ragic server. When the setting is done, you will be taken to the default homepage of your Ragic On-Premise installation. Now you can create all the applications you need just like on any hosted Ragic server.

                                                                  This is the screen that you should see when you have successfully setup your Ragic Server:

                                                                  Note: Some antivirus programs may cause problems in Ragic Server, so it is a recommended practice to configure any antivirus software running on Ragic server to exclude specific paths, processes, and file types.

                                                                9. (Optional) If your on-premises server cannot connect to the internet. You will need to set up a PDF service to generate PDF files for Ragic. First, we have to set your port for nodeJs Server in configuration, for instance:

                                                                  PDFMAKER_SERVER_PORT=8888

                                                                  8888 is an available port for us.

                                                                  Now we are going to install nodeJs, you could get the installation file from here.

                                                                  If you are on windows:

                                                                  (1) Double click the installation file.

                                                                  (2) Open the cmd and type node -v to see if it was installed successfully.

                                                                  If you are on Linux:

                                                                  (1) sudo apt-get install build-essential checkinstall

                                                                  (2) sudo apt-get install libssl-dev

                                                                  (3) Added these lib for launching on Ubuntu.

                                                                  sudo apt-get install gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget

                                                                  (4) Install nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

                                                                  (5) Set the path. export NVM_DIR="$DIR_WHERE_YOU_INSTALL_NVM/.nvm"

                                                                  [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

                                                                  (6) Type nvm --help to see if it was installed successfully.

                                                                  (7) Now we could install nodeJs by nvm. nvm install 10.15.1 

                                                                  (8) Type node -v. If you got a number different with 10.15.1, please type nvm use 10.15.1

                                                                  After installing nodeJs, we have to install a nodeJs module named Puppeteer.

                                                                  These steps are the same for all os:

                                                                  (1) Go to $YOUR_RAGIC_ROOT_DIR/web/sims/js/pdfMaker and type npm i puppeteer@1.12.1

                                                                  (2) Go to $YOUR_RAGIC_ROOT_DIR and type node web/sims/js/pdfMaker/nodeJs $YOUR_PORT

                                                                  $YOUR_PORT was the port you set in configuration before.

                                                                10. Linux Start and Stop Ragic Service

                                                                  Start: sudo nohup ./bin/ragic.sh manual

                                                                  Stop: sudo pkill -f RagicJetty9Server

                                                                  Please note that it's not recommended to force stop the service, unless it's necessary.

                                                                  Private Server Config

                                                                  Make sure you make a backup of everything in your Ragic directory before you do any upgrading! You will need to log in to Ragic before you download any of the following patch or full version.

                                                                  After the download is finished, you will need to upload the file to your server through the page below.

                                                                  You can also update license through the page if you need.

                                                                  Server URL and E-mail Server Configurations

                                                                  When you finish setting up your server, please go to Private Server Config to make sure that the server IP or URL is entered correctly in the SERVER_NAME parameter. Next, please enter the mail server settings to prevent email features from malfunctioning. After changing those configurations in Private Server Config, please remember to restart your Ragic service to apply them.

                                                                  Here are the mail server settings in Private Server Config:

                                                                  SMTP_SERVER=The SMTP / SMTPS server domain name / IP

                                                                  SMTP_SENDER_AUTH_USER=User name used to log in to SMTP

                                                                  SMTP_SENDER_AUTH_PWD=Password used to log in to SMTP

                                                                  SMTP_SSL_ENABLE=For SMTPS put true, SMTP put false

                                                                  SMTP_PORT=Port to connect to your SMTP service

                                                                  SMTP_SSL_PORT=Port to connect to your SMTPS service

                                                                  SMTP_SENDER_PERSONAL=The name used when Ragic sends out an e-mail

                                                                  SMTP_SENDER_EMAIL=The reply to address used when Ragic sends out an e-mail

                                                                  Firewall Settings

                                                                  Firewall settings contain inbound connections and outbound connections. If you would like Ragic to be accessible, you would need to open inbound port 80 / 443. On the other hand, if you would like Ragic to access PDF servers, you would need to open outbound port 80 and port 8888.

                                                                  Updating Your License Files

                                                                  To update your license files, just go to the private server configuration page, upload your license file, and restart your Ragic service. If your service has already expired, you can also copy your two license files (license.xml and sig) into the cust folder in your Ragic directory, and restart your Ragic service.

                                                                  Updating Your On-premises Server

                                                                  To upgrade your Ragic server, download the latest patch of Ragic from https://www.ragic.com/sims/download.jsp and go to the private server config page and find the server update section at the bottom of the page and upload the patch file.

                                                                  A Ragic service restart is necessary after an update, and a restart link will appear for you to restart your Ragic service. On Linux servers (including QNAP and Synology servers, they are Linux based), you can use the restart link to restart your Ragic service, but on Windows servers, you will need to kill the Java process started by Ragic and manually restart it.

                                                                  Note: "On-premises" here refers to any private server service, including self-built servers and NAS. This method is applicable for updating Ragic services. The main reason is that for products like NAS, the control over the update process is relatively limited for Ragic, and the version updates are likely to be slower than the official releases. Therefore, it is recommended to download the latest update files from the official website and use this method for updating, instead of relying on the Application Center update.

                                                                  Full Update

                                                                  In some cases, we will suggest you do a full update. Then you will need to download a full version of Ragic.

                                                                  You will need to make changes to the .sh or .bat files in the bin directory again if you have done any modifications to them. So make sure you have a backup of your old .sh or .bat file before you replace it.

                                                                  You will also need to stop the server before the update and restart the server after the update.

                                                                  System Sheet Update

                                                                  When there are new features in the company settings and feature access settings, you'll need to update system sheets to have those features.

                                                                  You can download "Ragic On-premises account setup forms patch" and unzip the file. In the "ragic-setup" folder, please copy those .nui files and paste them to the "ragic-setup" folder under your installation path. Then, access any of the system sheets and press the reload button to update.

                                                                  Note: please do not rename the "ragic-setup" folder. Otherwise, the system may not work as expected.

                                                                  Daily Auto Backup

                                                                  You can have daily auto backup by adding the following configurations.

                                                                  DISTR_DBBACKUP_PATH=The directory to store backup (ex : D:/MyBackUp/ )

                                                                  DISTR_PRESERVED_NUM=The number of backup you want to preserve (ex: 5 )

                                                                  Remember any changes to the private server configuration will require a Ragic service restart.

                                                                  Or you can use your own backup software or script to create the backup, all you need to do is to copy the Ragic directory to another location, and it will contain all the necessary files and data to restore Ragic to a previous state.

                                                                  For Linux servers, you can simply write a cron job and run rsync to periodically sync all your files to another backup server.

                                                                  Restoring a backup from hosted Ragic

                                                                  You can simply use the backup restore tool to restore a backup that you downloaded from your Ragic account online. But note that because the users in your backup are not actually registered on your on-premises version. After you restore your backup, you will need to edit and resave each user so that they are added to your server, and reset their password to a new default password.

                                                                  System Requirements

                                                                  Linux (Recommended):

                                                                  • Ubuntu Linux 10.04 and above (64-bit)

                                                                  • Red Hat Enterprise 6.x and above (64-bit)

                                                                  • Suse Linux Enterprise Server 10 SP2, 11.x and above (64-bit)

                                                                  • Oracle Linux 6.x and above (64-bit)

                                                                  • RAM: over 8GB

                                                                  • Disk space: over 200GB


                                                                  Windows:

                                                                  • Windows 7 or later (64-bit)

                                                                  • Windows Server 2012 or later (64-bit)

                                                                  • RAM: over 8GB

                                                                  • Disk space: over 200GB


                                                                  Mac OS X:

                                                                  • Intel-based Mac running Mac OS X 10.7.3 (Lion) or later. (64-bit)

                                                                  • Administrator privileges for installation

                                                                  • RAM: over 8GB

                                                                  • Disk space: over 200GB

                                                                Running Ragic on the Cloud

                                                                If you’re would like to run Ragic on AWS EC2 or Google Compute Engine. We recommend starting with the following VM configurations:

                                                                AWS EC2:

                                                                Start with m7g.xlarge, and upgrade to m7g.2xlarge when you need more memory or CPU processing power. For storage, we recommend using the EBS gp3 storage type for data disk, and sc1 storage type for backups. You can consider starting with around 500GB of disk space. The amount of backup space will depend on how many backups that you configured to have.

                                                                GCP:

                                                                Start with e2-standard-4, and upgrade to e2-standard-8 when you need more memory or CPU processing power. For storage, we recommend using the balanced persistent disk for data disk, and standard persistent disk for backups. You can consider starting with around 500 GB of disk space. The amount of backup space will depend on how many backups that you configured to have.

                                                                Platforms Other Than AWS EC2 or GCP:

                                                                You can look for similar level of hardware for your VM. Which is to generally start with 4 vCPUs and 16 GB of RAM, double it when the load increases. For disk space, unless IO is critical, you can generally start with a hybrid of SSD and traditional disk. If such hybrid is not available, we would recommend using a SSD disk for the data disk, since the IO speed difference between a non-SSD disk and SSD disk is quite noticeable.

                                                                Start Ragic for Free

                                                                Sign up with Google