Activity Fields are where you define data that will be collected at the time of integration configuration. They also define how data is mapped between actions and triggers. For an action to execute we need to send information and execute an endpoint in the third-party app, which can be identified through that app API documentation.
Suppose a user adds an integration, “When an appointment is added to Calendly, send a message to Basecamp”. From the “create a message endpoint” documentation, we know Basecamp requires the following to post a message
- Account info
- Project in that account
- Message Board of that project where the message will be posted
- Message body
We will collect these particulars through the activity fields. The method of setting up activity fields in both Actions and Triggers is the same. The image below shows the form that collects the metadata of the field.
The menu at the right top corner lets you define the type of the activity field, as shown below.
We currently support the following field types:
Drop-down: A field can be a drop down menu. The data for the select field type is fetched from an external API, with the Dynamic Source Endpoint.
Text-field: Takes simple plain text as input.
Checkbox: Appears to the user in the form of a checkbox, which the user can interact with.
Hidden: Does not appear to the user as they do not require input from the user. These come in handy in case of storing Webhook IDs, hard-coded values etc.
Fields List: These fields fetch custom fields from another API and display them to the user. For more details, click here.
Radio: Appears to the user in the form of a radio button which the user can interact with.
Date: Takes input in the date format.
Time: Takes input in the time format.
Textarea: Takes plain text as input. It can take multiple lines of input text instead of only a single line as in the text-field field type.
Code: A user can provide code as input in a code block.
Let us discuss the other components of activity fields.
- Title: The title of the field that will appear in the template
- Machine Name: A machine name, that will be used in reference. Let's say if the title of the activity field is Message Board the corresponding machine name can be message_board.
- Description: A one-line description of what the field is about
- Parent Fields: A field can have one or more than one parent fields. A field is said to be a parent field when the value of another field depends on it.
- Child Field: A field can have one or multiple child fields. A field is said to be child field when it's value depends upon another field.
Let us see an example of the parent-child field relationship.
As we are creating a message in a Basecamp Message Board. A Basecamp project can have multiple Message Boards. Similarly, a Basecamp account can have multiple projects. So, these follow a parent-child relationship, we will specify it in our activity fields as shown below.
The figure shows the parent-child relationship of the Project field. We use machine names in referencing fields.
Since this is a drop-down field, so we can see a Data Source Endpoint option. This is where we specify if the projects will be fetched through an endpoint or will be hard coded. Configure your Dynamic Source endpoint.
Activity field configuration is the same in both triggers and actions. In actions, we send data to another app and in case of triggers, we receive data from other apps. The data is passed between triggers and actions using templates.
Mapping the Input Object Attributes against Activity Fields
When you select an Input Object for an action, the attributes of that object need to be mapped against the activity fields.
For these activity fields, an additional drop-down field, Object Field appears as shown below.
The attributes of the object appear as a drop-down. You can select the attribute you want to map against this field. Let say you selected the Contact object, then the possible attributes will be First Name, Last Name, Email etc.
When an activity field and an attribute are mapped, you do not need to manually map each field when you're creating templates. Learn more, here.
Hope you have configured your activity field by now.