# Attributing Data API changes to a user

**URL:** <https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498>\
**Category:** Need help\
**Created:** [June 23, 2026, 9:05pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498 "2026-06-23T21:05:43Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![dbom009](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/dbom009/32/259579_2.png) [@dbom009](https://forum.bubble.io/u/dbom009)\
**Post date:** [June 23, 2026, 9:05pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/1 "2026-06-23T21:05:43Z")

</div>

Anyone have experience in using the Data API but setting changes for a particular user.  
I see this article [Authentication | Bubble Docs](https://manual.bubble.io/core-resources/api/the-bubble-api/the-data-api/authentication) but it states that we need to log the user in and I dont want to have to change the user’s password each time we want to do this.

For example right now I have a pretty detailed logging system for a clients app. When a user changes a field we track who added or changed it. However when this is changed using the backend API it always comes in as App Admin.

---

<div class="post-metadata">

**Author:** ![Jici](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jici/32/30722_2.png) [@Jici](https://forum.bubble.io/u/Jici)\
**Post date:** [June 24, 2026, 3:14pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/2 "2026-06-24T15:14:29Z")

</div>

This is because you are using Admin API key and not password auth process

You don’t need to change the password of the user each time. The user need to send it to a BW like a token endpoint (with email) and you log the user in there and Bubble will return a token that can be used in Authorization: Bearer header (like for admin key) for both Backend workflow or Data API.

---

<div class="post-metadata">

**Author:** ![dbom009](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/dbom009/32/259579_2.png) [@dbom009](https://forum.bubble.io/u/dbom009)\
**Post date:** [June 24, 2026, 3:28pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/3 "2026-06-24T15:28:29Z")

</div>

Thanks, but what if the user is already logged in and is just using the app. We dont log users out.

Does this mean we will have to force users to keep logging in when they want to use this feature or an extra step?

It also doesn’t let me reference Log a User in step later in a workflow chain so how do I get that key?

---

<div class="post-metadata">

**Author:** ![Jici](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jici/32/30722_2.png) [@Jici](https://forum.bubble.io/u/Jici)\
**Post date:** [June 24, 2026, 3:32pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/4 "2026-06-24T15:32:23Z")

</div>

Is it because you are doing batch create operation? If not, why are you using Data API?

---

<div class="post-metadata">

**Author:** ![dbom009](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/dbom009/32/259579_2.png) [@dbom009](https://forum.bubble.io/u/dbom009)\
**Post date:** [June 24, 2026, 3:45pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/5 "2026-06-24T15:45:32Z")

</div>

Yeah, I created a plugin for a client which does a lot of bulk data changes. But its now not being logged, such as who changed the item or added new ones because all the data appears as App Admin.

---

<div class="post-metadata">

**Author:** ![Jici](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jici/32/30722_2.png) [@Jici](https://forum.bubble.io/u/Jici)\
**Post date:** [June 24, 2026, 3:50pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/6 "2026-06-24T15:50:40Z")

</div>

There’s no way without getting an access token using backend WF for what I know. Maybe using session cookies but I’ve never tested this for calling batch data api endpoint.

Can you explain what your plugin is doing? Maybe this can be done with Bubble native functions?

I’ve suggested in the past that each user come with an API key. This is not implemented and I don’t expect this to be added soon ☹

---

<div class="post-metadata">

**Author:** ![dbom009](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/dbom009/32/259579_2.png) [@dbom009](https://forum.bubble.io/u/dbom009)\
**Post date:** [June 24, 2026, 3:57pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/7 "2026-06-24T15:57:08Z")

</div>

Yeah no problem. Its an excel sheet.

So a user can modify a list of items at once by copy/paste or importing values.  
All with a built in Undo/Redo function, real time saving and more.

We have an old version of this at the moment using a bunch of Repeating groups but I wanted to see if I could build a better thing. One that could lock a header and a column 🤣

 ![CleanShot 2026-06-24 at 11.55.35@2x](https://us1.discourse-cdn.com/bubble/original/4X/4/f/a/4fa1a9e54c499744f98643e9fb8ed467c9cac73c.png)

We have a bunch of data modified logs in the app that check when data is changed and then create logs. These reference who changed it. And since this data is all being changed or created all in the backend data api, I cant attribute it to a user. So not knowing who was the one who went on the sheet and deleted everything isnt great.

---

<div class="post-metadata">

**Author:** ![Jici](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jici/32/30722_2.png) [@Jici](https://forum.bubble.io/u/Jici)\
**Post date:** [June 24, 2026, 4:03pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/8 "2026-06-24T16:03:50Z")

</div>

> [@dbom009](#):
>
> One that could lock a header and a column

Bubble table can do that

But your plugin is nice and I understand what you are doing. Maybe using a backend WF with Schedule WF on a list? Anyway, if this is doing also update (not just create), You are calling data API for each row updated and not batch endpoint. Using Schedule on a list will be very similar.

---

<div class="post-metadata">

**Author:** ![dbom009](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/dbom009/32/259579_2.png) [@dbom009](https://forum.bubble.io/u/dbom009)\
**Post date:** [June 24, 2026, 4:06pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/9 "2026-06-24T16:06:53Z")

</div>

That is just a few things it does on top of many many others. Too much to explain. Tables wouldnt work and the backend workflows is what we have but again its not ideal.

If you could explain how I could “log” a user in to get that API Token Endpoint, that would be much appreciated. or share an example where you were able to do it.

I have not done that before and can’t find any examples

---

<div class="post-metadata">

**Author:** ![Jici](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jici/32/30722_2.png) [@Jici](https://forum.bubble.io/u/Jici)\
**Post date:** [June 24, 2026, 5:04pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/10 "2026-06-24T17:04:50Z")

</div>

Create a backend WF with two parameters: email and password. No auth and set it as public.

Add one action: Log the user in

The response will contain an access\_token

You will need to use API connector to call this backend WF

I’m wondering actually if a custom oauth2 to your own bubble app could work.

You create API connector set to manual/self-handled and add fields to current user (or a related DB) for access\_token, refresh\_token and expiration date.

when needed, you use this access token (and if expired, you refresh it first)

> **[3rd Party OAuth / SAML Access - API | Bubble Docs](https://manual.bubble.io/core-resources/application-settings/api?utm_source=chatgpt.com#id-3rd-party-oauth-saml-access)**
>
> This core reference entry is suited for all experience levels.

---

<div class="post-metadata">

**Author:** ![dbom009](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/dbom009/32/259579_2.png) [@dbom009](https://forum.bubble.io/u/dbom009)\
**Post date:** [June 24, 2026, 5:15pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/11 "2026-06-24T17:15:45Z")

</div>

Thanks for sharing, I will have to take a look at this. I don’t love the idea of saving a users username/password in order to refresh the access token.

Not many people would have access to this sheet so even attributing a API key to a user would have been perfect. But of course that doesnt exist.

---

<div class="post-metadata">

**Author:** ![Jici](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jici/32/30722_2.png) [@Jici](https://forum.bubble.io/u/Jici)\
**Post date:** [June 24, 2026, 5:17pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/12 "2026-06-24T17:17:43Z")

</div>

> [@dbom009](#):
>
> Thanks for sharing, I will have to take a look at this. I don’t love the idea of saving a users username/password in order to refresh the access token.

I totally understand and you shouldn’t do that. This is why I suggested to instead use the oauth2 function and save the access token with the user. The user will only need to connect once and after you save this to your DB.

---

<div class="post-metadata">

**Author:** ![dbom009](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/dbom009/32/259579_2.png) [@dbom009](https://forum.bubble.io/u/dbom009)\
**Post date:** [June 26, 2026, 7:45pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/13 "2026-06-26T19:45:35Z")

</div>

Ended up going with the logging in through the backend and its going to be a mess to handle but its better than not having that information

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/bubble/original/3X/2/8/2847faa74692c2ffa5d939d3dc3724cdd060d247.png) [@system](https://forum.bubble.io/u/system)\
**Post date:** [September 1, 2026, 9:06pm UTC](https://forum.bubble.io/t/attributing-data-api-changes-to-a-user/397498/14 "2026-09-01T21:06:12Z")

</div>

This topic was automatically closed after 70 days. New replies are no longer allowed.
