Close.io integration summary

Stitch’s Close.io integration replicates data using the Close.io REST API . Refer to the Schema section for a list of objects available for replication.

Close.io feature snapshot

A high-level look at Stitch's Close.io (v1) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on September 17, 2018

Supported by

[Stitch] (https://community.qlik.com/t5/Support/ct-p/qlikSupport)

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-closeio

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Unsupported

Column selection

Unsupported

Select all

Unsupported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Close.io

Step 1: Generate a Close.io API Key

  1. Sign into your Close.io account.
  2. Click the user menu (your icon) in the top right corner.
  3. Click Settings.
  4. In the Company menu (located under the You menu), click Your API Keys.
  5. In the Your API Keys section, click the Generate New API Key button.
  6. A new API Key will display. Keep this handy; you’ll need it in the next step.

Step 2: Add Close.io as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Close.io icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Close.io” would create a schema called stitch_closeio in the destination. Note: Schema names cannot be changed after you save the integration.

  5. In the API Key field, paste your Close.io API Key.

Step 3: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your Close.io integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Close.io’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 4: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Close.io integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Initial and historical replication jobs

After you finish setting up Close.io, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Close.io replication

Replicating activity data

Every time Stitch runs a replication job for Close.io, the last 24 hours’ worth of data will be replicated.

This is applicable to all tables in the integration.

As Close.io doesn’t currently provide a way to query for activities based on modification time, Stitch replicates data in this way to ensure updated activities are captured. A list of available querying methods can be found in Close.io’s documentation.

Setting the Replication Frequency to a higher frequency - like 30 minutes - can result in re-replicating recent data and contribute to greater row usage. Selecting a lower frequency can help keep your row count low.

Refer to the documentation for each of these tables in the next section for more info.

Attribution window examples

In the tabs below are examples of attribution windows behave during historical (initial) and ongoing replication jobs.

For historical and full re-replications of Close.io data, Stitch will query for and extract data newer than or equal to the date defined in the Start Date field in the Integration Settings page.

The Start Date, in conjunction with the Attribution Window, defines the minimum date Stitch should query for when extracting historical data. This is calculated as:

Start Date - Attribution Window = Minimum Extraction Date

Example

During the initial set up, the Start Date field is set to 07/03/2017, or ``.

To account for the Attribution Window, Stitch would calculate the Minimum Extraction Date value as: 2017-07-03 00:00:00 - 24 hours = 2017-07-02 00:00:00

If you were to write a SQL query using this date for the activities table, it might look like this:

  SELECT *
    FROM closeio.activities
   WHERE date_created >= '2017-07-02 00:00:00'   /* Min. Extraction Date */
ORDER BY date_created

For ongoing replication jobs, Stitch will query for and extract data using the last saved maximum value in the table’s Replication Key column and the Attribution Window for the table.

Note: This applies to every replication job that takes place after the historical replication job.

Example

The last maximum saved Replication Key value for the activities table is 2017-10-01 00:00:00.

To account for the Attribution Window of 24 hours, we’d subtract this from the last maximum saved Replication Key value:

2017-10-01 00:00:00 - 24 hours = 2017-09-30 00:00:00

In this case, Stitch would query for and extract data that is newer than or equal to 2017-09-30 00:00:00 and older than or equal to 2017-10-01 00:00:00.

If this were a SQL query, it might look like this:

  SELECT *
    FROM activities
   WHERE date_created >= '2017-09-30 00:00:00'
                              /* max Replication Key value - Attribution Window */
     AND date_created <= '2017-10-01 00:00:00'
                              /* max Replication Key value from previous job */
ORDER BY date_created

Historical event log data limitations

Due to how Close.io’s API functions, only 30 days of historical data is available for event logs:

Most actions in Close.io that change an object are logged in the event log. For example, creating a lead, sending an email, or deleting a note will create an event log entry. The event log API allows you to access these events, up to 30 days back in history.

This means that despite what the integration’s Start Date is set to, Stitch will only be able to retrieve 30 days of historical data from the connection date for the event_log table.

Additionally, note that if you ever reset the integration, this will also apply to the date the integration is reset.


Close.io table reference

activities

The activities table contains info about various activities in your Close.io account.

An activity belongs to a lead and can represent any type of activity that was performed on a lead or its contact. This includes calls, emails, notes, and so on.

Attribution window

When Stitch replicates data for this table, it will use an attribution window of 24 hours to fetch updated activities.

This means that every time a replication job runs, the last 24 hours’ worth of data will be replicated for this table. This is because Close.io doesn’t provide a way to query for activites based on a modification time, only when activities are created. A list of available querying methods can be found in Close.io’s documentation.

Refer to the Replication section for more info and examples of how the attribution window is used to query for data.

Replication Method

Append-Only Incremental

Primary Key

id

Replication Key

date_created

Useful links

Close.io documentation

activities schema on GitHub

Close.io API method

Join activities with on
leads
activities.contact_id = leads.contacts.id
activities.contact_id = leads.opportunities.contact_id
activities.contact_id = leads.tasks.contact_id
activities.lead_id = leads.id
activities.lead_id = leads.contacts.lead_id
activities.lead_id = leads.opportunities.lead_id
activities.lead_id = leads.tasks.lead_id
activities.organization_id = leads.contacts.organization_id
activities.organization_id = leads.opportunities.organization_id
activities.organization_id = leads.organization_id
activities.organization_id = leads.tasks.organization_id
activities.task_id = leads.tasks.id
activities.created_by = leads.contacts.created_by
activities.updated_by = leads.contacts.created_by
activities.user_id = leads.contacts.created_by
activities.task_assigned_to = leads.contacts.created_by
activities.users = leads.contacts.created_by
activities.created_by = leads.contacts.updated_by
activities.updated_by = leads.contacts.updated_by
activities.user_id = leads.contacts.updated_by
activities.task_assigned_to = leads.contacts.updated_by
activities.users = leads.contacts.updated_by
activities.created_by = leads.created_by
activities.updated_by = leads.created_by
activities.user_id = leads.created_by
activities.task_assigned_to = leads.created_by
activities.users = leads.created_by
activities.created_by = leads.opportunities.created_by
activities.updated_by = leads.opportunities.created_by
activities.user_id = leads.opportunities.created_by
activities.task_assigned_to = leads.opportunities.created_by
activities.users = leads.opportunities.created_by
activities.created_by = leads.opportunities.updated_by
activities.updated_by = leads.opportunities.updated_by
activities.user_id = leads.opportunities.updated_by
activities.task_assigned_to = leads.opportunities.updated_by
activities.users = leads.opportunities.updated_by
activities.created_by = leads.opportunities.user_id
activities.updated_by = leads.opportunities.user_id
activities.user_id = leads.opportunities.user_id
activities.task_assigned_to = leads.opportunities.user_id
activities.users = leads.opportunities.user_id
activities.created_by = leads.tasks.assigned_to
activities.updated_by = leads.tasks.assigned_to
activities.user_id = leads.tasks.assigned_to
activities.task_assigned_to = leads.tasks.assigned_to
activities.users = leads.tasks.assigned_to
activities.created_by = leads.tasks.created_by
activities.updated_by = leads.tasks.created_by
activities.user_id = leads.tasks.created_by
activities.task_assigned_to = leads.tasks.created_by
activities.users = leads.tasks.created_by
activities.created_by = leads.tasks.updated_by
activities.updated_by = leads.tasks.updated_by
activities.user_id = leads.tasks.updated_by
activities.task_assigned_to = leads.tasks.updated_by
activities.users = leads.tasks.updated_by
activities.created_by = leads.updated_by
activities.updated_by = leads.updated_by
activities.user_id = leads.updated_by
activities.task_assigned_to = leads.updated_by
activities.users = leads.updated_by
tasks
activities.contact_id = tasks.contact_id
activities.lead_id = tasks.lead_id
activities.organization_id = tasks.organization_id
activities.task_id = tasks.id
activities.created_by = tasks.assigned_to
activities.updated_by = tasks.assigned_to
activities.user_id = tasks.assigned_to
activities.task_assigned_to = tasks.assigned_to
activities.users = tasks.assigned_to
activities.created_by = tasks.created_by
activities.updated_by = tasks.created_by
activities.user_id = tasks.created_by
activities.task_assigned_to = tasks.created_by
activities.users = tasks.created_by
activities.created_by = tasks.updated_by
activities.updated_by = tasks.updated_by
activities.user_id = tasks.updated_by
activities.task_assigned_to = tasks.updated_by
activities.users = tasks.updated_by
event_log
activities.lead_id = event_log.lead_id
activities.organization_id = event_log.organization_id
activities.created_by = event_log.user_id
activities.updated_by = event_log.user_id
activities.user_id = event_log.user_id
activities.task_assigned_to = event_log.user_id
activities.users = event_log.user_id
custom_fields
activities.organization_id = custom_fields.organization_id
activities.created_by = custom_fields.created_by
activities.updated_by = custom_fields.created_by
activities.user_id = custom_fields.created_by
activities.task_assigned_to = custom_fields.created_by
activities.users = custom_fields.created_by
activities.created_by = custom_fields.updated_by
activities.updated_by = custom_fields.updated_by
activities.user_id = custom_fields.updated_by
activities.task_assigned_to = custom_fields.updated_by
activities.users = custom_fields.updated_by
users
activities.organization_id = users.organizations
activities.created_by = users.id
activities.updated_by = users.id
activities.user_id = users.id
activities.task_assigned_to = users.id
activities.users = users.id

_type

STRING

attachments

ARRAY

bcc

ARRAY

body_html

STRING

body_html_quoted

ARRAY

expand

INTEGER, BOOLEAN

html

STRING

body_preview

STRING

body_text

STRING

body_text_quoted

ARRAY

expand

INTEGER, BOOLEAN

text

STRING

cc

ARRAY

contact_id

STRING

created_by

STRING

created_by_name

STRING

date_created

DATE-TIME

date_scheduled

DATE-TIME

date_sent

DATE-TIME

date_updated

DATE-TIME

dialer_id

STRING

direction

STRING

duration

INTEGER

email_account_id

STRING

envelope

OBJECT

bcc

ARRAY

email

STRING

name

STRING

cc

ARRAY

email

STRING

name

STRING

date

DATE-TIME

STRING

from

ARRAY

email

STRING

name

STRING

in_reply_to

STRING

is_autoreply

INTEGER, BOOLEAN

message_id

STRING

reply_to

ARRAY

email

STRING

name

STRING

sender

ARRAY

email

STRING

name

STRING

subject

STRING

to

ARRAY

email

STRING

name

STRING

id

STRING

import_id

STRING

in_reply_to_id

STRING

lead_id

STRING

local_phone

STRING

message_ids

ARRAY

need_smtp_credentials

INTEGER, BOOLEAN

new_status_id

STRING

new_status_label

STRING

new_status_type

STRING

note

STRING

old_status_id

STRING

old_status_label

STRING

old_status_type

STRING

opens

ARRAY

ip_address

STRING

opened_at

STRING

opened_by

STRING

user_agent

STRING

opens_summary

STRING

opportunity_confidence

INTEGER

opportunity_date_won

STRING

opportunity_id

STRING

opportunity_value

INTEGER

opportunity_value_currency

STRING

opportunity_value_formatted

STRING

opportunity_value_period

STRING

organization_id

STRING

phone

STRING

recording_url

STRING

references

ARRAY

remote_phone

STRING

send_attempts

ARRAY

date

DATE-TIME

error_class

STRING

error_message

STRING

sender

STRING

source

STRING

status

STRING

subject

STRING

task_assigned_to

STRING

task_assigned_to_name

STRING

task_id

STRING

task_text

STRING

template_id

STRING

template_name

STRING

thread_id

STRING

to

ARRAY

transferred_from

STRING

transferred_to

STRING

updated_by

STRING

updated_by_name

STRING

user_id

STRING

user_name

STRING

users

ARRAY

voicemail_duration

INTEGER

voicemail_url

STRING

custom_fields

The custom_fields table contains info about the custom fields in your Close.io account.

Custom fields allow you to store arbitrary data on leads in Close.io. Refer to Close.io’s documentation for more info.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

date_updated

Useful links

custom_fields schema on GitHub

Close.io API method

Join custom_fields with on
activities
custom_fields.organization_id = activities.organization_id
custom_fields.created_by = activities.created_by
custom_fields.updated_by = activities.created_by
custom_fields.created_by = activities.updated_by
custom_fields.updated_by = activities.updated_by
custom_fields.created_by = activities.user_id
custom_fields.updated_by = activities.user_id
custom_fields.created_by = activities.task_assigned_to
custom_fields.updated_by = activities.task_assigned_to
custom_fields.created_by = activities.users
custom_fields.updated_by = activities.users
event_log
custom_fields.organization_id = event_log.organization_id
custom_fields.created_by = event_log.user_id
custom_fields.updated_by = event_log.user_id
leads
custom_fields.organization_id = leads.contacts.organization_id
custom_fields.organization_id = leads.opportunities.organization_id
custom_fields.organization_id = leads.organization_id
custom_fields.organization_id = leads.tasks.organization_id
custom_fields.created_by = leads.contacts.created_by
custom_fields.updated_by = leads.contacts.created_by
custom_fields.created_by = leads.contacts.updated_by
custom_fields.updated_by = leads.contacts.updated_by
custom_fields.created_by = leads.created_by
custom_fields.updated_by = leads.created_by
custom_fields.created_by = leads.opportunities.created_by
custom_fields.updated_by = leads.opportunities.created_by
custom_fields.created_by = leads.opportunities.updated_by
custom_fields.updated_by = leads.opportunities.updated_by
custom_fields.created_by = leads.opportunities.user_id
custom_fields.updated_by = leads.opportunities.user_id
custom_fields.created_by = leads.tasks.assigned_to
custom_fields.updated_by = leads.tasks.assigned_to
custom_fields.created_by = leads.tasks.created_by
custom_fields.updated_by = leads.tasks.created_by
custom_fields.created_by = leads.tasks.updated_by
custom_fields.updated_by = leads.tasks.updated_by
custom_fields.created_by = leads.updated_by
custom_fields.updated_by = leads.updated_by
tasks
custom_fields.organization_id = tasks.organization_id
custom_fields.created_by = tasks.assigned_to
custom_fields.updated_by = tasks.assigned_to
custom_fields.created_by = tasks.created_by
custom_fields.updated_by = tasks.created_by
custom_fields.created_by = tasks.updated_by
custom_fields.updated_by = tasks.updated_by
users
custom_fields.organization_id = users.organizations
custom_fields.created_by = users.id
custom_fields.updated_by = users.id

choices

ARRAY

created_by

STRING

date_created

DATE-TIME

date_updated

DATE-TIME

editable_with_roles

ARRAY

id

STRING

name

STRING

organization_id

STRING

type

STRING

updated_by

STRING

event_log

The event_log table contains info about events generated in your Close.io account. This could include creating a lead, sending an email, or deleting a note.

Historical data limitations

Due to how Close.io’s API functions, only 30 days of historical data is available for this table from the initial connection date.

Refer to the Replication section for more info.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

date_updated

Useful links

event_log schema on GitHub

Close.io API method

Join event_log with on
activities
event_log.lead_id = activities.lead_id
event_log.organization_id = activities.organization_id
event_log.user_id = activities.created_by
event_log.user_id = activities.updated_by
event_log.user_id = activities.user_id
event_log.user_id = activities.task_assigned_to
event_log.user_id = activities.users
leads
event_log.lead_id = leads.id
event_log.lead_id = leads.contacts.lead_id
event_log.lead_id = leads.opportunities.lead_id
event_log.lead_id = leads.tasks.lead_id
event_log.organization_id = leads.contacts.organization_id
event_log.organization_id = leads.opportunities.organization_id
event_log.organization_id = leads.organization_id
event_log.organization_id = leads.tasks.organization_id
event_log.user_id = leads.contacts.created_by
event_log.user_id = leads.contacts.updated_by
event_log.user_id = leads.created_by
event_log.user_id = leads.opportunities.created_by
event_log.user_id = leads.opportunities.updated_by
event_log.user_id = leads.opportunities.user_id
event_log.user_id = leads.tasks.assigned_to
event_log.user_id = leads.tasks.created_by
event_log.user_id = leads.tasks.updated_by
event_log.user_id = leads.updated_by
tasks
event_log.lead_id = tasks.lead_id
event_log.organization_id = tasks.organization_id
event_log.user_id = tasks.assigned_to
event_log.user_id = tasks.created_by
event_log.user_id = tasks.updated_by
custom_fields
event_log.organization_id = custom_fields.organization_id
event_log.user_id = custom_fields.created_by
event_log.user_id = custom_fields.updated_by
users
event_log.organization_id = users.organizations
event_log.user_id = users.id

action

STRING

changed_fields

ARRAY

data

STRING

date_created

DATE-TIME

date_updated

DATE-TIME

id

STRING

lead_id

STRING

meta

OBJECT

request_method

STRING

request_path

STRING

object_id

STRING

object_type

STRING

organization_id

STRING

previous_data

STRING

request_id

STRING

user_id

STRING

leads

The leads table contains info about the leads in your Close.io account.

Leads represent a company or organization and may contain contacts, tasks, opportunities, and activities. In Close.io, a lead is synonymous with “account” in other CRMs.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

date_updated

Useful links

leads schema on GitHub

Close.io API method

Join leads with on
activities
leads.contacts.id = activities.contact_id
leads.opportunities.contact_id = activities.contact_id
leads.tasks.contact_id = activities.contact_id
leads.id = activities.lead_id
leads.contacts.lead_id = activities.lead_id
leads.opportunities.lead_id = activities.lead_id
leads.tasks.lead_id = activities.lead_id
leads.contacts.organization_id = activities.organization_id
leads.opportunities.organization_id = activities.organization_id
leads.organization_id = activities.organization_id
leads.tasks.organization_id = activities.organization_id
leads.tasks.id = activities.task_id
leads.contacts.created_by = activities.created_by
leads.contacts.updated_by = activities.created_by
leads.created_by = activities.created_by
leads.opportunities.created_by = activities.created_by
leads.opportunities.updated_by = activities.created_by
leads.opportunities.user_id = activities.created_by
leads.tasks.assigned_to = activities.created_by
leads.tasks.created_by = activities.created_by
leads.tasks.updated_by = activities.created_by
leads.updated_by = activities.created_by
leads.contacts.created_by = activities.updated_by
leads.contacts.updated_by = activities.updated_by
leads.created_by = activities.updated_by
leads.opportunities.created_by = activities.updated_by
leads.opportunities.updated_by = activities.updated_by
leads.opportunities.user_id = activities.updated_by
leads.tasks.assigned_to = activities.updated_by
leads.tasks.created_by = activities.updated_by
leads.tasks.updated_by = activities.updated_by
leads.updated_by = activities.updated_by
leads.contacts.created_by = activities.user_id
leads.contacts.updated_by = activities.user_id
leads.created_by = activities.user_id
leads.opportunities.created_by = activities.user_id
leads.opportunities.updated_by = activities.user_id
leads.opportunities.user_id = activities.user_id
leads.tasks.assigned_to = activities.user_id
leads.tasks.created_by = activities.user_id
leads.tasks.updated_by = activities.user_id
leads.updated_by = activities.user_id
leads.contacts.created_by = activities.task_assigned_to
leads.contacts.updated_by = activities.task_assigned_to
leads.created_by = activities.task_assigned_to
leads.opportunities.created_by = activities.task_assigned_to
leads.opportunities.updated_by = activities.task_assigned_to
leads.opportunities.user_id = activities.task_assigned_to
leads.tasks.assigned_to = activities.task_assigned_to
leads.tasks.created_by = activities.task_assigned_to
leads.tasks.updated_by = activities.task_assigned_to
leads.updated_by = activities.task_assigned_to
leads.contacts.created_by = activities.users
leads.contacts.updated_by = activities.users
leads.created_by = activities.users
leads.opportunities.created_by = activities.users
leads.opportunities.updated_by = activities.users
leads.opportunities.user_id = activities.users
leads.tasks.assigned_to = activities.users
leads.tasks.created_by = activities.users
leads.tasks.updated_by = activities.users
leads.updated_by = activities.users
tasks
leads.contacts.id = tasks.contact_id
leads.opportunities.contact_id = tasks.contact_id
leads.tasks.contact_id = tasks.contact_id
leads.id = tasks.lead_id
leads.contacts.lead_id = tasks.lead_id
leads.opportunities.lead_id = tasks.lead_id
leads.tasks.lead_id = tasks.lead_id
leads.contacts.organization_id = tasks.organization_id
leads.opportunities.organization_id = tasks.organization_id
leads.organization_id = tasks.organization_id
leads.tasks.organization_id = tasks.organization_id
leads.tasks.id = tasks.id
leads.contacts.created_by = tasks.assigned_to
leads.contacts.updated_by = tasks.assigned_to
leads.created_by = tasks.assigned_to
leads.opportunities.created_by = tasks.assigned_to
leads.opportunities.updated_by = tasks.assigned_to
leads.opportunities.user_id = tasks.assigned_to
leads.tasks.assigned_to = tasks.assigned_to
leads.tasks.created_by = tasks.assigned_to
leads.tasks.updated_by = tasks.assigned_to
leads.updated_by = tasks.assigned_to
leads.contacts.created_by = tasks.created_by
leads.contacts.updated_by = tasks.created_by
leads.created_by = tasks.created_by
leads.opportunities.created_by = tasks.created_by
leads.opportunities.updated_by = tasks.created_by
leads.opportunities.user_id = tasks.created_by
leads.tasks.assigned_to = tasks.created_by
leads.tasks.created_by = tasks.created_by
leads.tasks.updated_by = tasks.created_by
leads.updated_by = tasks.created_by
leads.contacts.created_by = tasks.updated_by
leads.contacts.updated_by = tasks.updated_by
leads.created_by = tasks.updated_by
leads.opportunities.created_by = tasks.updated_by
leads.opportunities.updated_by = tasks.updated_by
leads.opportunities.user_id = tasks.updated_by
leads.tasks.assigned_to = tasks.updated_by
leads.tasks.created_by = tasks.updated_by
leads.tasks.updated_by = tasks.updated_by
leads.updated_by = tasks.updated_by
event_log
leads.id = event_log.lead_id
leads.contacts.lead_id = event_log.lead_id
leads.opportunities.lead_id = event_log.lead_id
leads.tasks.lead_id = event_log.lead_id
leads.contacts.organization_id = event_log.organization_id
leads.opportunities.organization_id = event_log.organization_id
leads.organization_id = event_log.organization_id
leads.tasks.organization_id = event_log.organization_id
leads.contacts.created_by = event_log.user_id
leads.contacts.updated_by = event_log.user_id
leads.created_by = event_log.user_id
leads.opportunities.created_by = event_log.user_id
leads.opportunities.updated_by = event_log.user_id
leads.opportunities.user_id = event_log.user_id
leads.tasks.assigned_to = event_log.user_id
leads.tasks.created_by = event_log.user_id
leads.tasks.updated_by = event_log.user_id
leads.updated_by = event_log.user_id
custom_fields
leads.contacts.organization_id = custom_fields.organization_id
leads.opportunities.organization_id = custom_fields.organization_id
leads.organization_id = custom_fields.organization_id
leads.tasks.organization_id = custom_fields.organization_id
leads.contacts.created_by = custom_fields.created_by
leads.contacts.updated_by = custom_fields.created_by
leads.created_by = custom_fields.created_by
leads.opportunities.created_by = custom_fields.created_by
leads.opportunities.updated_by = custom_fields.created_by
leads.opportunities.user_id = custom_fields.created_by
leads.tasks.assigned_to = custom_fields.created_by
leads.tasks.created_by = custom_fields.created_by
leads.tasks.updated_by = custom_fields.created_by
leads.updated_by = custom_fields.created_by
leads.contacts.created_by = custom_fields.updated_by
leads.contacts.updated_by = custom_fields.updated_by
leads.created_by = custom_fields.updated_by
leads.opportunities.created_by = custom_fields.updated_by
leads.opportunities.updated_by = custom_fields.updated_by
leads.opportunities.user_id = custom_fields.updated_by
leads.tasks.assigned_to = custom_fields.updated_by
leads.tasks.created_by = custom_fields.updated_by
leads.tasks.updated_by = custom_fields.updated_by
leads.updated_by = custom_fields.updated_by
users
leads.contacts.organization_id = users.organizations
leads.opportunities.organization_id = users.organizations
leads.organization_id = users.organizations
leads.tasks.organization_id = users.organizations
leads.contacts.created_by = users.id
leads.contacts.updated_by = users.id
leads.created_by = users.id
leads.opportunities.created_by = users.id
leads.opportunities.updated_by = users.id
leads.opportunities.user_id = users.id
leads.tasks.assigned_to = users.id
leads.tasks.created_by = users.id
leads.tasks.updated_by = users.id
leads.updated_by = users.id

addresses

ARRAY

address_1

STRING

address_2

STRING

city

STRING

country

STRING

label

STRING

state

STRING

zipcode

STRING

contacts

ARRAY

created_by

STRING

date_created

DATE-TIME

date_updated

DATE-TIME

display_name

STRING

emails

ARRAY

email

STRING

type

STRING

id

STRING

integration_links

ARRAY

lead_id

STRING

name

STRING

organization_id

STRING

phones

ARRAY

phone

STRING

phone_formatted

STRING

type

STRING

title

STRING

updated_by

STRING

urls

ARRAY

type

STRING

url

STRING

created_by

STRING

created_by_name

STRING

custom_fields

ARRAY

id

STRING

value

STRING, NUMBER, BOOLEAN, OBJECT, ARRAY

date_created

DATE-TIME

date_updated

DATE-TIME

description

STRING

display_name

STRING

html_url

STRING

id

STRING

integration_links

ARRAY

name

STRING

opportunities

ARRAY

confidence

INTEGER

contact_id

STRING

contact_name

STRING

created_by

STRING

created_by_name

STRING

date_created

DATE-TIME

date_lost

DATE-TIME

date_updated

DATE-TIME

date_won

DATE-TIME

id

STRING

integration_links

ARRAY

lead_id

STRING

lead_name

STRING

note

STRING

organization_id

STRING

status_id

STRING

status_label

STRING

status_type

STRING

updated_by

STRING

updated_by_name

STRING

user_id

STRING

user_name

STRING

value

INTEGER

value_currency

STRING

value_formatted

STRING

value_period

STRING

organization_id

STRING

status_id

STRING

status_label

STRING

tasks

ARRAY

_type

STRING

assigned_to

STRING

assigned_to_name

STRING

contact_id

STRING

contact_name

STRING

created_by

STRING

created_by_name

STRING

date

DATE-TIME

date_created

DATE-TIME

date_updated

DATE-TIME

due_date

DATE-TIME

id

STRING

is_complete

INTEGER, BOOLEAN

is_dateless

INTEGER, BOOLEAN

lead_id

STRING

lead_name

STRING

object_id

STRING

object_type

STRING

organization_id

STRING

text

STRING

updated_by

STRING

updated_by_name

STRING

view

STRING

updated_by

STRING

updated_by_name

STRING

url

STRING

tasks

The tasks table contains info about the tasks in your Close.io account. Tasks are action items with a given date that are assigned to a sales rep.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

date_updated

Useful links

tasks schema on GitHub

Close.io API method

Join tasks with on
activities
tasks.contact_id = activities.contact_id
tasks.lead_id = activities.lead_id
tasks.organization_id = activities.organization_id
tasks.id = activities.task_id
tasks.assigned_to = activities.created_by
tasks.created_by = activities.created_by
tasks.updated_by = activities.created_by
tasks.assigned_to = activities.updated_by
tasks.created_by = activities.updated_by
tasks.updated_by = activities.updated_by
tasks.assigned_to = activities.user_id
tasks.created_by = activities.user_id
tasks.updated_by = activities.user_id
tasks.assigned_to = activities.task_assigned_to
tasks.created_by = activities.task_assigned_to
tasks.updated_by = activities.task_assigned_to
tasks.assigned_to = activities.users
tasks.created_by = activities.users
tasks.updated_by = activities.users
leads
tasks.contact_id = leads.contacts.id
tasks.contact_id = leads.opportunities.contact_id
tasks.contact_id = leads.tasks.contact_id
tasks.lead_id = leads.id
tasks.lead_id = leads.contacts.lead_id
tasks.lead_id = leads.opportunities.lead_id
tasks.lead_id = leads.tasks.lead_id
tasks.organization_id = leads.contacts.organization_id
tasks.organization_id = leads.opportunities.organization_id
tasks.organization_id = leads.organization_id
tasks.organization_id = leads.tasks.organization_id
tasks.id = leads.tasks.id
tasks.assigned_to = leads.contacts.created_by
tasks.created_by = leads.contacts.created_by
tasks.updated_by = leads.contacts.created_by
tasks.assigned_to = leads.contacts.updated_by
tasks.created_by = leads.contacts.updated_by
tasks.updated_by = leads.contacts.updated_by
tasks.assigned_to = leads.created_by
tasks.created_by = leads.created_by
tasks.updated_by = leads.created_by
tasks.assigned_to = leads.opportunities.created_by
tasks.created_by = leads.opportunities.created_by
tasks.updated_by = leads.opportunities.created_by
tasks.assigned_to = leads.opportunities.updated_by
tasks.created_by = leads.opportunities.updated_by
tasks.updated_by = leads.opportunities.updated_by
tasks.assigned_to = leads.opportunities.user_id
tasks.created_by = leads.opportunities.user_id
tasks.updated_by = leads.opportunities.user_id
tasks.assigned_to = leads.tasks.assigned_to
tasks.created_by = leads.tasks.assigned_to
tasks.updated_by = leads.tasks.assigned_to
tasks.assigned_to = leads.tasks.created_by
tasks.created_by = leads.tasks.created_by
tasks.updated_by = leads.tasks.created_by
tasks.assigned_to = leads.tasks.updated_by
tasks.created_by = leads.tasks.updated_by
tasks.updated_by = leads.tasks.updated_by
tasks.assigned_to = leads.updated_by
tasks.created_by = leads.updated_by
tasks.updated_by = leads.updated_by
event_log
tasks.lead_id = event_log.lead_id
tasks.organization_id = event_log.organization_id
tasks.assigned_to = event_log.user_id
tasks.created_by = event_log.user_id
tasks.updated_by = event_log.user_id
custom_fields
tasks.organization_id = custom_fields.organization_id
tasks.assigned_to = custom_fields.created_by
tasks.created_by = custom_fields.created_by
tasks.updated_by = custom_fields.created_by
tasks.assigned_to = custom_fields.updated_by
tasks.created_by = custom_fields.updated_by
tasks.updated_by = custom_fields.updated_by
users
tasks.organization_id = users.organizations
tasks.assigned_to = users.id
tasks.created_by = users.id
tasks.updated_by = users.id

_type

STRING

assigned_to

STRING

assigned_to_name

STRING

body_preview

STRING

contact_id

STRING

contact_name

STRING

created_by

STRING

created_by_name

STRING

date

DATE-TIME

date_created

DATE-TIME

date_updated

DATE-TIME

due_date

DATE-TIME

email_id

STRING

emails

ARRAY

id

STRING

is_complete

BOOLEAN

is_dateless

BOOLEAN

lead_id

STRING

lead_name

STRING

local_phone

STRING

object_id

STRING

object_type

STRING

opportunity_note

STRING

opportunity_value

INTEGER

opportunity_value_currency

STRING

opportunity_value_formatted

STRING

opportunity_value_period

STRING

organization_id

STRING

phone

STRING

phone_formatted

STRING

phone_number_description

STRING

recording_url

STRING

remote_phone

STRING

remote_phone_description

STRING

remote_phone_formatted

STRING

subject

STRING

text

STRING

updated_by

STRING

updated_by_name

STRING

view

STRING

voicemail_duration

INTEGER

voicemail_url

STRING

users

The users table contains info about the users in your Close.io account.

In Close.io, users are typically your co-workers and sales reps, or those inside your company.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

date_updated

Useful links

users schema on GitHub

Close.io API method

Join users with on
activities
users.organizations = activities.organization_id
users.id = activities.created_by
users.id = activities.updated_by
users.id = activities.user_id
users.id = activities.task_assigned_to
users.id = activities.users
custom_fields
users.organizations = custom_fields.organization_id
users.id = custom_fields.created_by
users.id = custom_fields.updated_by
event_log
users.organizations = event_log.organization_id
users.id = event_log.user_id
leads
users.organizations = leads.contacts.organization_id
users.organizations = leads.opportunities.organization_id
users.organizations = leads.organization_id
users.organizations = leads.tasks.organization_id
users.id = leads.contacts.created_by
users.id = leads.contacts.updated_by
users.id = leads.created_by
users.id = leads.opportunities.created_by
users.id = leads.opportunities.updated_by
users.id = leads.opportunities.user_id
users.id = leads.tasks.assigned_to
users.id = leads.tasks.created_by
users.id = leads.tasks.updated_by
users.id = leads.updated_by
tasks
users.organizations = tasks.organization_id
users.id = tasks.assigned_to
users.id = tasks.created_by
users.id = tasks.updated_by

date_created

DATE-TIME

date_updated

DATE-TIME

email

STRING

first_name

STRING

id

STRING

image

STRING

last_name

STRING

last_used_timezone

STRING

organizations

ARRAY


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.