How to bind material change to a single animation action?
You can do it using Drivers. 


In my case I used a driver to change the intensity of a color.


Hover the cursor over the intensity slider, press RMB and choose the Add Driver option.


Add an Empty and place it at the origin point of a Cube. Parent an Empty with a Cube using Ctrl+P-->Set Parent To-->Object (Keep Transform).


Go to Graph Editor and change the Mode from F-Curve to Drivers.


Change the Drivers Type to Averaged Value.


Input the previously added Empty's name in the Ob/Bone box as pictured below. This Empty will now control the intensity of the Cube's color. If the error appear, click the Update Dependencies button.


Now specify what kind of the Empty's action would have the influence on the Cube's color intensity. I've chosen the Z Rotation, so anytime I change the Z rotation of an Empty, the insity of a color will be changed. The other kind of transformations (like translating or scaling) would not have any influence on color's intensity values.



Add a Generator Modifier and play with the highlighted values to make the transition speed of the color's intesity slower or faster. You can also redefine the initial and end values here.