Is there any work around to hide the options in a dropdown component? I want it to behave like a search bar where it will suggest options when a user inputs a text.
The default dropdown is like this:
My desired output is that when the field is focused, it would not show all the options. Instead if I type for example, the letter G, then all options starting with G will show.
What stats are available for Team Forms platform? The stats may not necessarily come from TF directly, that's fine, if there was a way to capture these stats from Sharepoint/Power Automate or other tools, it would be very useful. I've shared some of the stats I had in mind, open to any ideas too.
Number of Teams with Teams Forms installed
Number of daily submissions overall and by form
Top # most used forms
Active/InActive Forms for past 3, 6 12 months
New forms created in past month
Total number of forms under development and in Prod
Number of calls per day to PowerApps or other automations/ external integrations
Top form creators
Can a Data Grid dynamically change the number of rows based the number of rows in another Data Grid or the value of another field?
I want to populate fields in my Team Forms based on a selected item in my SharePoint list. I want to use it in a case such as:
Name Email Contact Evaluate
Test use test@gmail.com 1037435467 Evaluate Candidate (hyperlink)
When I click the evaluate column, it would redirect me to my form which had already populated Name, Email and Contact for me.
Anyone who had already implemented a case like this? I'm also open to any other workaround that would have the similar output :)
Hi,
I want to know how I can filter the select boxes data based on the previously selected three cascading drop-down fields, same as the screenshot below.
Hello everyone!
I was attempting to link two separate forms to work seamlessly together.
e.g
I am assigned to evaluate three people, and each evaluation will have different results. Ideally, when I click on Person 1, their details should be pre-filled in a new form specifically for their evaluation.
Form 1: Displays the list of people to be evaluated.
Form 2: Opens when selecting a person, with their details pre-filled, allowing for individual evaluation.
When I click the β icon, it should redirect me to another form where the name 'LeBron James' is pre-filled. After completing the evaluation and submitting the result (Pass or Fail), the outcome should automatically reflect in the first form.
Do you have any suggestions, or have you encountered a similar scenario before? I'd love to know how you approached it and implemented the solution. Thanks!
Trying to use a tag component with a default calculated value to list all of the months between a start and end date. IE; Start 02/01/2025, END 05/31/2025, Returns 2025-Feb, 2025-Mar, 2025-Apr, 2025-May. JSON & calculated value JavaScript below. Any ideas on what I am doing wrong?
const getDateRange = (startQuota, endQuota) => { if (moment(startQuota, 'MM-DD-YYYY').isSame(moment(endQuota, 'MM-DD-YYYY'), 'day')) return [endQuota]; let date = startQuota; const dates = [date]; do { date = moment(date).add(1, 'day'); dates.push(date.format('YYYY-MM')); } while (moment(date).isBefore(endQuota)); return dates; };
{ "title": "Quota", "theme": "primary", "breadcrumbClickable": true, "buttonSettings": { "previous": true, "cancel": false, "next": true }, "navigateOnEnter": false, "saveOnEnter": false, "scrollToTop": false, "collapsible": false, "hiddenInPdf": false, "key": "page4", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "panel", "label": "Page 2", "components": [ { "html": "<p style=\"text-align:center;\"><span class=\"text-big\"><strong>QUOTA DETAILS</strong></span></p>", "label": "Content", "refreshOnChange": false, "hiddenInPdf": false, "key": "content3", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "content", "input": false, "tableView": false, "skipRemoveConfirm": true, "pdfVisibility": "visible" }, { "hiddenInPdf": false, "key": "well4", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "well", "input": false, "tableView": false, "label": "", "components": [ { "label": "Columns", "columns": [ { "components": [ { "label": "Start Date", "format": "MM-dd-yyyy", "hiddenInPdf": false, "tableView": false, "datePicker": { "disableWeekends": false, "disableWeekdays": false }, "enableTime": false, "timePicker": { "showMeridian": false }, "validate": { "customMessage": "Please select the 1st of the month.", "custom": "//const date = moment(data.startQuota);\r\n//const isFirstDayOfMonth = date.isSame(date.clone().startOf('month'), 'day');\r\n//valid = isFirstDayOfMonth\r\n\r\n//const date = moment(data.startQuota);\r\n//const isFirstDayOfMonth = date.isSame(date.clone().startOf('month'), 'day');\r\n//const goal = data.quotaGoal\r\n\r\n//if( data.quotaGoal.toString.length === 0){valid}\r\n//else { valid = isFirstDayOfMonth }\r\n\r\n\r\nif (data.quotaGoal > 0) {\r\n const date = moment(data.startQuota);\r\n const isFirstDayOfMonth = date.isSame(date.clone().startOf('month'), 'day');\r\n valid = isFirstDayOfMonth\r\n} \r\n" }, "enableMinDateInput": false, "enableMaxDateInput": false, "key": "startQuota", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "datetime", "input": true, "widget": { "type": "calendar", "displayInTimezone": "viewer", "locale": "en", "useLocaleSettings": false, "allowInput": true, "mode": "single", "enableTime": false, "noCalendar": false, "format": "MM-dd-yyyy", "hourIncrement": 1, "minuteIncrement": 1, "time_24hr": true, "minDate": null, "disableWeekends": false, "disableWeekdays": false, "maxDate": null }, "skipRemoveConfirm": true, "pdfVisibility": "visible" } ], "width": 6, "offset": 0, "push": 0, "pull": 0, "size": "md", "currentWidth": 6 }, { "components": [ { "label": "End Date", "format": "MM-dd-yyyy", "hiddenInPdf": false, "tableView": false, "datePicker": { "disableWeekends": false, "disableWeekdays": false }, "enableTime": false, "timePicker": { "showMeridian": false }, "validate": { "customMessage": "Must be both after the start date and the last day of a given month", "custom": " if (moment(data.startQuota).valueOf() > 0) {\r\n let _startdate = moment(data.startQuota);\r\n let _enddate = moment(data.endQuota);\r\n let _duration = _enddate > _startdate\r\n const enddate = moment(data.endQuota);\r\n const isLastDayOfMonth = enddate.isSame(enddate.clone().endOf('month'), 'day');\r\n \r\n valid = isLastDayOfMonth && _duration\r\n \r\n }\r\n" }, "enableMinDateInput": false, "enableMaxDateInput": false, "key": "endQuota", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "datetime", "input": true, "widget": { "type": "calendar", "displayInTimezone": "viewer", "locale": "en", "useLocaleSettings": false, "allowInput": true, "mode": "single", "enableTime": false, "noCalendar": false, "format": "MM-dd-yyyy", "hourIncrement": 1, "minuteIncrement": 1, "time_24hr": true, "minDate": null, "disableWeekends": false, "disableWeekdays": false, "maxDate": null }, "skipRemoveConfirm": true, "pdfVisibility": "visible" } ], "width": 6, "offset": 0, "push": 0, "pull": 0, "size": "md", "currentWidth": 6 } ], "hiddenInPdf": false, "key": "columns5", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "columns", "input": false, "tableView": false, "skipRemoveConfirm": true, "pdfVisibility": "visible" }, { "label": "Columns", "columns": [ { "components": [ { "label": "Goal", "applyMaskOn": "change", "hiddenInPdf": false, "mask": false, "tableView": false, "delimiter": true, "requireDecimal": false, "inputFormat": "plain", "truncateMultipleSpaces": false, "validate": { "min": 1 }, "key": "quotaGoal", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "number", "input": true, "skipRemoveConfirm": true, "pdfVisibility": "visible" } ], "width": 3, "offset": 0, "push": 0, "pull": 0, "size": "md", "currentWidth": 3 }, { "components": [ { "label": "Goal Unit", "widget": "choicesjs", "hiddenInPdf": false, "tableView": true, "data": { "values": [ { "label": "Cases", "value": "option1" }, { "label": "Cases (9L)", "value": "9LCases" }, { "label": "Bottles", "value": "bottles" } ], "label": "Drop Down List" }, "key": "dropDownList2", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "select", "input": true, "skipRemoveConfirm": true, "pdfVisibility": "visible" } ], "width": 3, "offset": 0, "push": 0, "pull": 0, "size": "md", "currentWidth": 3 }, { "components": [ { "label": "Goal Type", "widget": "choicesjs", "hiddenInPdf": false, "tableView": true, "data": { "values": [ { "label": "Volume", "value": "volumeQuota" }, { "label": "Accounts Sold", "value": "percentQuota" }, { "label": "PODs", "value": "podQuota" }, { "label": "New Volume", "value": "nvolumeQuota" }, { "label": "New Accounts", "value": "naccountQuota" }, { "label": "New PODs", "value": "npodQuota" } ], "label": "Drop Down List" }, "key": "goalType2", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "select", "input": true, "skipRemoveConfirm": true, "pdfVisibility": "visible" } ], "size": "md", "width": 3, "currentWidth": 3 }, { "components": [ { "label": "Unsold Since", "format": "MM-dd-yyyy", "hiddenInPdf": false, "tableView": false, "datePicker": { "disableWeekends": false, "disableWeekdays": false }, "enableTime": false, "timePicker": { "showMeridian": false }, "enableMinDateInput": false, "enableMaxDateInput": false, "key": "startDate8", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "datetime", "input": true, "widget": { "type": "calendar", "displayInTimezone": "viewer", "locale": "en", "useLocaleSettings": false, "allowInput": true, "mode": "single", "enableTime": false, "noCalendar": false, "format": "MM-dd-yyyy", "hourIncrement": 1, "minuteIncrement": 1, "time_24hr": true, "minDate": null, "disableWeekends": false, "disableWeekdays": false, "maxDate": null }, "skipRemoveConfirm": true, "pdfVisibility": "visible" } ], "size": "md", "width": 3, "currentWidth": 3 } ], "hiddenInPdf": false, "key": "columns6", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "columns", "input": false, "tableView": false, "skipRemoveConfirm": true, "pdfVisibility": "visible" }, { "label": "Quota Details", "applyMaskOn": "change", "autoExpand": false, "hiddenInPdf": false, "tableView": true, "case": "uppercase", "truncateMultipleSpaces": true, "key": "quotaDetails2", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "textarea", "input": true, "skipRemoveConfirm": true, "pdfVisibility": "visible" }, { "label": "Tags", "pdfVisibility": "visible", "tableView": false, "clearOnHide": false, "customDefaultValue": "const getDateRange = (startQuota, endQuota) => {\r\n if (moment(startQuota, 'YYYY-MM-DD').isSame(moment(endQuota, 'YYYY-MM-DD'), 'day'))\r\n return [endQuota];\r\n let date = startQuota;\r\n const dates = [date];\r\n do {\r\n date = moment(date).add(1, 'day');\r\n dates.push(date.format('YYYY-MM-DD'));\r\n } while (moment(date).isBefore(endQuota));\r\n return dates;\r\n};", "calculateValue": "const getDateRange = (startQuota, endQuota) => {\r\n if (moment(startQuota, 'MM-DD-YYYY').isSame(moment(endQuota, 'MM-DD-YYYY'), 'day'))\r\n return [endQuota];\r\n let date = startQuota;\r\n const dates = [date];\r\n do {\r\n date = moment(date).add(1, 'day');\r\n dates.push(date.format('YYYY-MM'));\r\n } while (moment(date).isBefore(endQuota));\r\n return dates;\r\n};", "key": "tags", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "tags", "input": true, "skipRemoveConfirm": true } ], "skipRemoveConfirm": true, "pdfVisibility": "visible" }, { "label": "PDF Page Break", "permissions": [ { "user": {}, "permissionLevel": "" } ], "type": "pdfPageBreak", "input": false, "key": "pdfPageBreak1", "tableView": false, "skipRemoveConfirm": true } ], "input": false, "tableView": false, "skipRemoveConfirm": true, "pdfVisibility": "visible" }
The Address Component allows form builders to specify "provider options" when Provider is set to "Google Maps". This can be used to send additional parameters with the address query (e.g. to limit results to a specific country).
Currently, when "Azure Maps" is selected as Provider, there is no input field for "provider options" and so no ability to input any parameters additional parameters.
Enabling input of provider options would improve the usability of the Azure Maps API with this component.
We have an issue with the way that Team Forms handles draft form submissions. Users are opening forms and not updating, or doing minimal updates in the forms. They then leave the update of the form for a period (sometimes days) and it captures the original data (including the date) on the form. Can there be an option on a form, that can be turned on or off at teh form level, to warn users that they are opening a previously "draft" form? I have spoken to a few of our users and they are getting frustrated with this.
Hey,
Is it possible to change Submission number generation to occur after the form has been submitted. Our current problem is the Submission Numbers are all over the place, we're guessing this is because staff are opening forms but not submitting.
This is creating issues from an auditing and logging point of view
It would be great to have permissions based on usernames from selected from a User Component that a user inputs. Right now permissions is pre-determined to whoever has been set by the form builder as per below.
A valuable feature would be the option to manually type the barcode, as it can sometimes be challenging to scan accurately.
It would be useful to be able to define default settings for certain components within our own tenant.
Currently I need to manually adjust certain types of components every time they are added to a form. For example, every time I add a File Component to a form, I perform the following tasks:
uncheck "Show Image Editor"
input details to "File Pattern"
input details to "File Maximum Size"
check "Required"
It would be convenient to be able to adjust the default settings once, and have those default settings applied to each new instance of the component.
I know that we have the ability to capture GPS in the longitude and latitude format BUT I need to transform this to a regular street address. Any plans for this? Or low code options?
If a user saves a form, or doesn't submit it, when they next access the form the system indicates that the form is still "draft", or not submitted. We have a number of users that go back into a form thinking that it is new (i.e. just created) and update the previously saved form not realising it.
Hi everybody,
It would be nice to use a data table component with options like filterable, sortable, submit selected rows, actions buttons,...
And it would be nice to be able to connect it with a datasource.
An example:
Is it possible ?
Thank you.
It would be nice to be able to delete more than one submission at a time.
Thanks
It would be great if responses could be filtered by some of the data entered by a user, for eg. a specific Text Box within the form. This would make searching for a specific completed form easier as you could essentially filter by a customer name or Site.
At the moment the limited filter options make it very difficult to find a p[previously completed form.
I can't modify the function or language of the bottom buttons in multi-page mode.
I wanted additional functionality for the submit button, so I created another button.
But I still can't affect the 'Submit Form' button, so the original button is still there.
This is confusing for users. It would be nice to have an option to hide it.
Having the ability to trigger a flow based on the categories of the Form would be a good feature, Would help with bulk organization of forms. See below as an example
Prerequisite:
Team Form with file upload component
Email template has been setup.
Idea:
When I submit a Team Form with a File Upload, I want those file uploads to be automatically attached to the email that is sent.
Currently:
In order to see the attachments, I need to:
Open the PDF attached to the email.
Scroll to the file upload section.
Click on the link to the attachment.
Manually download the attachment.
Then re-attach it if I need to forward those files to another email.
When a Workflow is added to a form it is next to impossible to find which workflow in Power Automate is associated with that form. If I Build the form, then select Workflow it takes me to a new Power Automate screen and in the 'My flows' menu I can see a list of flows but I have no idea which flow is associated with which Form.
In some cases a Flow may be associated with multiple forms. Can we get a view that links a flow with a Form(s) so that I can edit the correct one.
Can the Action Menu have another menu option called Show Linked Workflows (or similar).
I have 20 + years of experience in data collection projects. The most common activity in data collection, is to have a list of features located in a map. Where you get to the location, you click in the feature and a form gets displayed for you to collect the data. In most industries this is a key requirement. I think this functionality can move Team Forms to the next level. Being able to use a custom google map or even an ESRI data layer, will open a huge market for this product.
As a team member of multiple teams, I have too many forms with similar names. Especially when I'm using small screen (phone). I'd like to have a section where I can setup my favourite form or a filter in a team for quicker access.
We would love to get support for thai characters in the generate PDF document.