> ## Documentation Index
> Fetch the complete documentation index at: https://docs.softr.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Edit Record

> Letting users update records in your data.

This [Action Button](/actions/ntEfT9zSJk6aY54G6W5KGU/action-buttons-overview/idg8Fqf2kjFwcx6kyP3jNq) lets you update records in your [data source](https://www.notion.so/4230abecf813402aa2926466c313290a).

<Tip>By default, you’ll have one **Edit** button added to your items, which you can remove if needed.</Tip>

To demonstrate how the **Edit Record** button works, we’re going to use a [List block](/building-blocks/vikC2AWEpQGkZd4jGyoVxo/list-block/pQhPYuA28VXr5tLLFBcbCU) connected to an [Airtable](/data-sources/1YYStCJukT15Lh2j93qo9A/airtable/jHX7kfH7QvkVcELQvS3VoX) data source, which shows a list of tasks for a hypothetical product development team and has three fields: **Name** (the name of the task), **Assignee** (who it is assigned to), and **Status** (the current progress status of the task). We want to enable an “Update task status” button to allow each development team member to update the status of **his/her own task**.

<Frame caption="List of tasks">
  <img src="https://mintcdn.com/softr-2b8a27e1/LYEKxIXUMsIQwuYe/actions/images/edit-record/image1.png?fit=max&auto=format&n=LYEKxIXUMsIQwuYe&q=85&s=210414d7406e0a9c27a624ec3bae5fe9" alt="List of tasks" width="2420" height="936" data-path="actions/images/edit-record/image1.png" />
</Frame>

First, we are going to configure the button label.

<Frame caption="Button label">
  <img src="https://mintcdn.com/softr-2b8a27e1/LYEKxIXUMsIQwuYe/actions/images/edit-record/image2.png?fit=max&auto=format&n=LYEKxIXUMsIQwuYe&q=85&s=b83f223e8fcee7db61e8245f2765eb81" alt="Button label" width="846" height="584" data-path="actions/images/edit-record/image2.png" />
</Frame>

Then, we are going to customize the labels and messages that are going to be displayed on the pop-up that the users are going to use to perform the update.

<Frame caption="Customizing pop-up labels">
  <img src="https://mintcdn.com/softr-2b8a27e1/LYEKxIXUMsIQwuYe/actions/images/edit-record/image3.gif?s=7d327586dec46faffdde691e9056b54c" alt="Customizing pop-up labels" width="2880" height="1418" data-path="actions/images/edit-record/image3.gif" />
</Frame>

Next, we need to specify which fields from our data are going to be available for update. **By default, all the fields present in the connected data source are going to be added automatically.** So, let’s remove the ones that we don’t need and leave **Status** only. As you can see in the following gif, the [field is already mapped](/actions/ntEfT9zSJk6aY54G6W5KGU/mapping-fields-for-actions/7ukkeMfqspmniU4MQyTiV3) to its corresponding field on Airtable, so we don’t need to do anything else there. We’ll just add a label.

<Frame caption="Configuring connected fields">
  <img src="https://mintcdn.com/softr-2b8a27e1/LYEKxIXUMsIQwuYe/actions/images/edit-record/image4.gif?s=904d2c09dfd15aee215b7a641b0d367d" alt="Configuring connected fields" width="2880" height="1418" data-path="actions/images/edit-record/image4.gif" />
</Frame>

<Warning>Note that [computed fields](/data-sources/1YYStCJukT15Lh2j93qo9A/airtable/jHX7kfH7QvkVcELQvS3VoX#airtable-computed-fields) will not appear in the list of mappable fields for the form.</Warning>
<Warning>You cannot add or edit records located in synced tables.</Warning>

## Button Visibility

Now, let’s configure the [button visibility](/user-groups-and-permissions/3oA6AaFzUiePs2sW2TpYrF/action-button-visibility/tqpb8TkUD4U4DCAUA2hjKo) to specify who exactly can see and thus use the button. The users of our task list are the same people who are working on those tasks, so we are going to [connect the same Airtable base](/add-and-manage-users/pxnkp9H3qyEVMF6XUceqnj/syncing-users-with-a-data-source/hshRGygHr4T33EnaLntGf9) with tasks and assignees to Softr as a user database.

<Frame caption="Airtable table with the list of tasks and assignees.">
  <img src="https://mintcdn.com/softr-2b8a27e1/LYEKxIXUMsIQwuYe/actions/images/edit-record/image5.png?fit=max&auto=format&n=LYEKxIXUMsIQwuYe&q=85&s=ad9549a5c91a6d2f994ba4f06cf8eddc" alt="Airtable table with the list of tasks and assignees." width="2122" height="568" data-path="actions/images/edit-record/image5.png" />
</Frame>

<Tip>The users sync between Softr and data source is one-way (from Softr to data source), so, if you connect a data source with users without having them [in Softr](/add-and-manage-users/pxnkp9H3qyEVMF6XUceqnj/users-menu/5JTzjtbvp8Skemd26A9ho9) first, you’ll need to create the same users in Softr as well to establish the connection.</Tip>

Now, let’s configure the actual button visibility settings. The users need to be able to update their own tasks only, so we’re going to set a [conditional visibility rule](/user-groups-and-permissions/3oA6AaFzUiePs2sW2TpYrF/action-button-visibility/tqpb8TkUD4U4DCAUA2hjKo) according to which the user sees the update button only on the tasks that have his/her email in the **Assignee** **Email** field.

<Frame caption="Configuring visibility rules">
  <img src="https://mintcdn.com/softr-2b8a27e1/LYEKxIXUMsIQwuYe/actions/images/edit-record/image6.gif?s=dfee9a0c54bb658fb74031018c00d23d" alt="Configuring visibility rules" width="2880" height="1418" data-path="actions/images/edit-record/image6.gif" />
</Frame>

That’s it. The last step is to make sure everything’s working as expected.

## Testing task status update

To test our setup, we are going to log into our application with one of the application users and update her task status. The following gif illustrates that.

<Frame caption="User updating her task status">
  <img src="https://mintcdn.com/softr-2b8a27e1/LYEKxIXUMsIQwuYe/actions/images/edit-record/image7.gif?s=19c0427dbca8fa51b3b99d316dce5c6f" alt="User updating her task status" width="2880" height="1418" data-path="actions/images/edit-record/image7.gif" />
</Frame>
