Do action on publish or update?

Why don’t you wrap it in post save_post and post_publish hooks?

You have examples here: http://codex.wordpress.org/Function_Reference/add_action

How to do it:
Add this to your functions.php file:

function my_data_update () {
 $company = get_field('company_name');
 $address = get_field('address');
 $city = get_field('city');
 $post_code = get_field('post_code');
 //etc etc...
}
add_action('publish_post', 'my_data_update');
add_action('save_post', 'my_data_update');