How to get current(or old?) value of field from an Ecto changeset?

Yes, it is. But since you expect both the data field and the field itself to exist, you should do: changeset.data.name_of_the_field, as it will raise if you have a typo.