Background and Purpose
This SOP provides a step-by-step guide to creating a custom tool in an AI assistant for collecting and saving client addresses. This setup enables address information (street, city, state, postal code) to be saved directly in the General Info section of the contact profile, ensuring streamlined data entry for clients requesting roof inspections.Note: Since the update of Version 2.1, a custom tool like this should not be needed since there is a pre-built tool with the same functionality. However, we felt it would still be helpful to have this documentation so that users can learn how to build the tool themselves.

Resources Required
- AI Assistant Dashboard - Access to custom tool creation and assistant configurations
- CRM System (e.g., GoHighLevel) - Access to automation workflows and the contact profile fields
- Endpoint URL - Generated from an inbound webhook within the CRM
Definition of Done
The setup is complete when:- ✅ Custom Tool: A “Save Address” custom tool is created and linked to the assistant
- ✅ Workflow Automation: A workflow is created to map the address fields in the CRM
- ✅ Testing: The AI assistant successfully collects and saves the address to the appropriate fields in the contact profile
Step-by-Step Process
1. Create the Custom Tool in AI Assistant Dashboard
Open AI Assistant Dashboard
- Go to Assistants in the AI dashboard and select the assistant you want to configure
- Under Custom Tools, click Create a Custom Tool
Define the Custom Tool
- Unique Name: Enter a descriptive name like “Save Address”
- Description: Add a detailed description (e.g., “Use this tool to collect and save the user’s complete address including street, city, state, and zip code.”)
- Parameters: Add these fields:
street
city
state
zip_code
- Example Data: For parameters, use an example address like “54 State Street, Albany, New York, 12207” for clarity
2. Generate Endpoint URL Using Inbound Webhook
Open a second tab for CRM Automations and follow these steps:
- Go to Automations and create a new workflow titled Save Address Webhook
Add Trigger
- Set Inbound Webhook as the trigger
- Copy the Webhook URL generated by the inbound webhook
Link Webhook to Custom Tool
- Return to the AI assistant’s Custom Tool setup
- Paste the Webhook URL in the endpoint field
- Test by clicking on the arrow to verify with a green checkmark
- Save and Add Custom Tool to Assistant
3. Add Prompt in AI Assistant to Collect Address
In the AI assistant’s Prompts section:- Add a prompt instructing the assistant to ask the user for their full address (e.g., “Could you please provide your full address, including the zip code?”)
- Configure the assistant to call the Save Address function once the address is collected
4. Create Workflow to Map Address Fields in CRM
Return to the CRM Automation Tab
Use the workflow titled Save Address Webhook.Fetch Sample Request
- In the automation settings, select Fetch Sample Request to pull sample data
- When the data mapping reference appears, save the trigger
Map Address Data to Contact Fields
- Delete Default Action (e.g., Create Contact) if it appears automatically
-
Add Find Contact Action:
- Choose Find Contact by Contact ID
- Use the Contact_ID with the underscore (e.g.,
contact_id
) from the inbound webhook trigger
-
Add Field Mapping for Address:
-
Select Update Contact Field for each part of the address:
Street Address:
- Go to Inbound Webhook > Arguments > Street
- Go to Inbound Webhook > Arguments > City
- Go to Inbound Webhook > Arguments > State
- Go to Inbound Webhook > Arguments > Zip Code
-
Select Update Contact Field for each part of the address:
Street Address:
Save and Publish Workflow
- Save the workflow and publish it to activate the custom tool
5. Testing and Validation
Test the Assistant Workflow
- Place a test call or interaction with the AI assistant
- Provide the address details when prompted by the assistant
- Confirm that the assistant verifies and confirms the address
Review Data in CRM
- After the test interaction, go to the Contacts tab in the CRM
- Confirm that the address has been correctly saved in the General Info section of the contact profile under Street Address, City, State, and Postal Code
Implementation Example
Address Collection Flow
- User Interaction: “I’d like to schedule a roof inspection”
- AI Response: “I’d be happy to help you schedule a roof inspection. Could you please provide your full address, including the zip code?”
- User Provides: “123 Main Street, Springfield, Illinois, 62701”
- AI Processing: Calls Save Address tool with parsed parameters:
- CRM Update: Address automatically saved to contact profile
Key Benefits
- ✅ Automated data entry eliminates manual address input
- ✅ Standardized format ensures consistent address storage
- ✅ Real-time processing with immediate CRM updates
- ✅ Error reduction through structured data collection
- ✅ Seamless integration with existing CRM workflows
- ✅ Scalable solution adaptable to other data collection needs
FAQs
What if the address data doesn’t save in the correct fields?
A: Ensure that each address component (street, city, state, zip code) is mapped correctly in the Update Contact Field action.Can this process be adapted for other data fields?
A: Yes, modify the tool parameters and field mappings to capture other information (e.g., email, phone).What if the assistant does not capture the address correctly?
A: Check that the custom tool is added to the assistant and the prompt is correctly set to call the tool after collecting the address.Troubleshooting
Tool not triggering:- Verify custom tool is linked to assistant
- Check prompt configuration for tool activation
- Test webhook endpoint connectivity
- Review field mapping in workflow actions
- Ensure parameter names match webhook arguments
- Test with sample data to verify mapping
- Confirm webhook URL is correct and accessible
- Check authentication requirements
- Verify CRM permissions for contact updates