Inbound integrations is available for our customers on the Business Plan. With inbound integrations, you can receive data back from Calltools, updating your records in real time.

Through this integration we can receive the following to update your records:

  • Property Status

  • Phone Status

  • Phone Tag

  • Notes

  • Tag

  • List

Calltools will set up the inbound integrations for you.


Existing Calltools Customers

For existing Calltools customers, reach out to the Calltools integrations team directly at integrations@calltools.com

Their integrations team will populate a template which uses HTTPS Requests and Automations. When you select a disposition in Calltools, this will send information back to REISift to automatically update your records.

Once the integration template is added in your Calltools account, copy the API key listed under the Settings -> Integrations -> Calltools DATA IN section of your REISift account.

Next, log in to your Calltools account and navigate to Integrations -> HTTPS Requests.

Select Edit on each request, and paste the API key from REISift in the section labeled "Insert API Token Here".

Check out the example below:


New Lead is now a custom status in REISift! You'll no longer need to create this status as a custom status in your account. The integration can be set to update other statuses or any custom statuses if you prefer. In order to update to a custom status, the status will need to be created in your account first.


Need more help creating statuses? Custom Statuses Overview

New Calltools Customers

Don't have a Calltools account yet? Sign up here and let them know you are an REISift user. The integrations team will populate the integrations template in your account.

Setting up Inbound Integration Yourself

Want to setup the integrations yourself? Read on to see how it's done!

The inbound integration can be set up in two ways: Connectors for your callers to select and HTTPS Requests and webhooks. With connectors, your callers will have an additional button to click in order to send the information to REISift. HTTPS Requests/webhooks allows you to skip this step so you can select the disposition, go straight to the post call wrap up and have your records updated automatically in REISift.

First Steps:

  1. Delete all Default Calltools Call dispositions

    1. DATA → DISPOSITIONS → Call Dispositions

  2. Create the following new Call Dispositions

    1. New Lead

    2. Not Interested

    3. Wrong Number

    4. DNC Unknown

    5. DNC Correct

    6. DNC Wrong

    7. Sold Property

    8. Listed Property

Second Steps:

  1. Navigate to DATA → Automations

  2. Create an Automation for Each of the above dispositions, just name them *de-activate” the automation and scroll down and save. We are just prepping all the ones we need to make.

  3. Click on the first automation and scrolls down to “Automation Trigger” and Select “Call Disposition”

  4. Next Navigate to “Automation Conditions” and select “ADD CONDITIONS SET”

  5. Select the blue + on the first field and then choose “Dispositions id (integer)” it will show “X choices” to the right signifying the amount of call dispositions you have available.
    a. the middle drop down should select “equals”
    b. the last far right field should be selected on which ever disposition
    automation you are currently making this for.

  6. Navigate to “Automation Actions” and select “ADD ACTION” and then “Webhook”

  7. Name the webhook the same name as your automation/dispositions name

  8. Click the blue + circle “Add HTTPS Response”

  9. Name the HTTPS Request the same name as automations/disposition/webhook name

  10. Fill in the following information

    1. REQUEST TYPE → POST

    2. CONTENT TYPE → JSON

    3. Click Add Header and enter the below information. where “REISIFT_CALLTOOLS_API_KEY” is equal to your REISift DATA IN API key under settings

    4. “Key” Field → AUTHORIZATION

    5. “Value” Field → Api-Key REISIFT_CALLTOOLS_API_KEY

  11. Copy the corresponding “JSON” from the below “6 Primary” that matches the disposition you are creating. IF you are doing a custom disposition you can use the JSON Payload Options below to create what trigger you wish.

    1. For Example New Lead would be:
      {
      "street":"{{%locals[contact][address]}}",
      "city":"{{%locals[contact][city]}}",
      "state":"{{%locals[contact][state]}}",
      "zip_code":"{{%locals[contact][zip_code]}}",
      "phone":"{{%locals[contact][home_phone_number]}}", "phone_status":"CORRECT",
      "status":"new_lead",
      "notes":"{{%locals[contact][last_note_text]}}"
      }

  12. Paste the JSON inside “Body (JSON)” and then click “Save” and then “Create"

  13. Test the automation by going to a contact and selecting a disposition and then going back to the automations page to watch for the trigger to update.

  14. After it updates and 0 errors — go to that record in REISIft and verify. If you get an error you can view the error logs by clicking the three dots on the right of the automation.

JSON Payload Options

*city, street, state, county, and postal_code (property info) are required
*Assigned_to often times is not used due to REISIft having internal sequences
*phone is required if using any phone_type , phone_status, phone_tag

{
"city": "{city}",
"street": "{address}",
"state": "{state}",
"county": "{county}",
"postal_code": "{zip_code}",
"phone": "{phone_number}",
"assigned_to": "REIsift user email",
"phone_type": <MOBILE, UNKNOWN, LANDLINE, VOIP>,
"phone_status": <UNKNOWN, CORRECT, CORRECT_DNC, WRONG, WRONG_DNC, DEAD, NO_ANSWER, DNC>
"phone_tag": <Any text>,
"notes": <Any text>,
"tag": "Tag 1",
"status": <new_lead, sold, not_interested, opt_out, listed, follow_up, prospecting, buyer, under_contract, or any other custom status>
}

The 6 Primary Dispositions to Create

Create the Following HTTPS Requests:


NEW LEAD

{
"street":"{{%locals[contact][address]}}",
"city":"{{%locals[contact][city]}}",
"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_status":"CORRECT",

"status":"new_lead",

"notes":"{{%locals[contact][last_note_text]}}"

}

NOT INTERESTED

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_status":"CORRECT",

"status":"not_interested"

}

PROPERTY SOLD

{ "street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_status":"CORRECT",

"status":"sold"

}

PROPERTY LISTED

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_status":"CORRECT",

"status":"listed"

}

WRONG NUMBER

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_status":"WRONG"

}

DNC WRONG

{ "street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_status":"WRONG_DNC"

}

DNC CORRECT

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}", "phone_status":"CORRECT_DNC"

}

DNC UNKNOWN

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_status":"DNC"

}



Using Connectors to send Misc. information

A connector is a nice way to send some additional information to a phone number for example. If a new lead is send via disposition, maybe the lead was Spanish speaking and you wish to tag that phone number so your team knows this when following up.

Spanish Speaking

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_tag":"Spanish Speaking"

}

Relative

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_tag":"Relative"

}

Wife

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_tag":"Wife"

}

Husband

{

"street":"{{%locals[contact][address]}}",

"city":"{{%locals[contact][city]}}",

"state":"{{%locals[contact][state]}}",

"zip_code":"{{%locals[contact][zip_code]}}",

"phone":"{{%locals[contact][home_phone_number]}}",

"phone_tag":"Husband"

}

Testing the Inbound Integrations

As long as the record exists in your REISift account, your records should be updating. You can test it by searching for a record you recently dispositioned in Calltools and going to the activity log within the record.

To access the activity log, open the record from your records page, scroll down below the map and click Activity Log.

Calltools events are logged as system updated the property or system added tags (or phone status if using this feature) Below is an example:

Troubleshooting

Events not being updated for records that are in both Calltools and your REISift account?

Confirm the property address and phone number exists in your REISift account. We can receive information from Calltools to update existing records.

Seeing Error 400? This is typically related to the JSON. Double check the JSON and confirm it's correct. The last of the JSON must NOT include a comma.


Related Trainings:

Did this answer your question?