Delay and waiting updates logic on workflow

Hello! I need help with workflow logic. I’m not such experienced with programming async functions. So, I need to create an account from external system (Huntflow). Webhook from Huntflow brings data to create an account and also employment date. It may take several days between webhook and employment date. In a day before, I need to create an account via some API. In addition, some update(s) can come from Huntflow. And also, I require to approve to create an account. How to reach these all in workflow?
My code now is like:

    @workflow.run
    async def run(self):
        huntflow_offer_accepted = await workflow.execute_activity(
            activity.parse_json,  # Waiting for webhook
            "offer_accepted.json",
            start_to_close_timeout=timedelta(seconds=30)
            )
        self.new_employee_data = await new_employee(huntflow_offer_accepted)  # Prepare data
        await workflow.wait_condition(lambda: self.approved)  # Approve signal
        await workflow. wait_condition(lambda: self.update is not None)  # Waiting for updates from webhook
        await workflow.execute_activity(
            activity.wait_until_date,  # Delay until employment date
            self.new_employee_data,
            start_to_close_timeout=timedelta(hours=2)
            )
        await workflow.execute_activity(
            activity.create_account,
            self.new_employee_data,
            start_to_close_timeout=timedelta(seconds=30)
        )