A Function component is a component that runs a function, but doesn't appear visible in a published Space. It can then be used to populate other components.
A favorite use-case for the Function Component is to use it to pull data down from a source and then use it to populate a form that can be used to update that data source or another target data source. This avoids needing to bind to a table row or a detail view's data.
When you submit the form, it will do so powered by an invisible function, making it easier for your end users to update records without having to do any fancy footwork.
Bonus: By using URL parameters, you can "embed" these functions in other data sources (DB, report services) by including the parameterized URL for the space as a link in a client/product/object record that would then allow an end-user to simply click the link and be brought to a Space in which they seamlessly update a record automatically populated with real data.
The simplest use-case for the function component is as a way to populate multiple components in a given Space without needing to make multiple database queries.
The flexibility inherent in having a Function Component that isn't visible to the end user allows for a large amount of possible use-cases, but below are some which are more common than others.
This effect allows you to define the text of messages for success and failure of submission of the data from the component.
Additionally, only one message is allowed to be configured per function success and one for failure.
Usually, if your import changes some data that is displayed in the Space, you'll want to refresh the data. On Submit: Refresh Component options allow you to refresh the data of any component in the Space. Simply select the component to refresh from the dropdown. When the submission from your button is successfully complete, the selected component will refresh and display any changes to its data.
This is the default state for "Effects" for this component. When the component submits its data successfully, components that are bound to that function will automatically be updated by key (e.g. Sending an email-address update to a user's table should result in the updating of associated row table data associated with that key.)