plotting – Specifying custom ColorFunction for ListPlot3D

I have some data that takes the shape {{x,y,z}...} = somedata. I also have a custom gradient which I made using Blend[{{0.4, RGBColor[1,1,1], {0.3, RGBColor[1,0.9, 0.6]}, {0.3,RGBColor[0,0.7,0.9]}}]

I am trying to do the following,

ListPlot3D[data4, ColorFunction ->Blend[{{0.4, RGBColor[1,1,1], {0.3, RGBColor[1,0.9, 0.6]}, {0.3,RGBColor[0,0.7,0.9]}}], PlotLegends-> True, PlotRange -> {0,1}]

z-values should give the height, and I want the plot to be colored based on the height values, with the z = 0 being pure white. In a similar vein, I want to construct the following contour plot as well.

ListPlot3D[data4, ColorFunction ->Blend[{{0.4, RGBColor[1,1,1], {0.3, RGBColor[1,0.9, 0.6]}, {0.3,RGBColor[0,0.7,0.9]}}], PlotLegends-> True, PlotRange -> {0,1}]

I get correct looking shapes for my plot, but the colors aren’t applied at all. I just get solid color plots. I suspect it is beccause Blend[..] needs to be converted to a function and then applied to the z-values of the data, but I am unsure if this is indeed the correct way to do it, and if it is, I am not very confident with the syntax to do it.