Webhook sends old data

When contact field is updated by automation and it triggered webhook, the webhook payload is being sent as old data before update. For example, Phone number is updated from 11111 to 222222, but in webhook payload I’m getting 11111.

To avoid this problem, I’m disregarding webhook payload and I’m getting the contact data using getContact(id) API when catching the webhook.
Even then I’m getting partial data. That means some custom fields around (20 fields for example) are not coming.

But If I put 10 second delay before I get the contact information and it’s working properly, it’s giving me all the fields and all new values.

But I don’t wanna wait 10 seconds, becoz it’s breaking other parts of my system.

Is this a common known problem?
How to work around this?

Thank you.