# Callbacks

<table><thead><tr><th width="218">Callback Name</th><th>Callback Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Geoflow_Ready</td><td>The asynchronous callback is triggered when the visitor data properties are ready.</td><td></td></tr><tr><td>Geoflow_Error</td><td>The asynchronous callback is triggered when an error was thrown while the visitor data properties were being fetched.</td><td></td></tr><tr><td>Geoflow_Updated</td><td>The asynchronous callback is triggered when the 'geoflow' object has been successfully updated after the updateData method is called.</td><td></td></tr><tr><td>Geoflow_ExtComplete</td><td>The asynchronous callback is triggered when a script extension has finished running. The extension name is passed as a function parameter.</td><td></td></tr></tbody></table>

{% hint style="info" %}
**Developer Tip**: When using the *Geoflow\_Ready* and *Geoflow\_Updated* callbacks, the current Geoflow object can also be accessed through the function parameter.
{% endhint %}

### Examples

```javascript
function Geoflow_Ready(geoflow) {

    console.log('Geoflow Is Ready!', geoflow);

}

function Geoflow_Error(error) {

    console.error('Geoflow Error!', error);

}

function Geoflow_Updated(geoflow) {

    console.log('Geoflow Was Updated!', geoflow);

}

function Geoflow_ExtComplete(extName) {

    console.log('This Script Extension Finished Running:', extName);

}
```
