Copper
Overview
Copper is a customer relationship management (CRM) platform to track individuals, companies and activity data. This Parsons class provides methods for extracting people, companies and actions.
Note
- Getting Your API Key
Sign into Copper
Click on
Settings
(gear icon) and thenAPI Keys
Click the
GENERATE API KEY
button
Quickstart
To instantiate the Copper class, you can either store the Copper user email and
API key as environmental variables (COPPER_USER_EMAIL
, COPPER_API_KEY
)
or pass them in as arguments:
from parsons import Copper
# First approach: Use API key and user email via environmental variables
copper = Copper()
# Second approach: Pass API credentials and user email as arguments
copper = Copper(user_email='me@myorg.com', api_key='MYAPIKEY')
You can then call various endpoints:
# Get people
# This will unpack the people json as a dict of Parsons Tables.
people_tbls = copper.get_people()
# You can then save the tables as csvs
for k, v in people_tbls.items():
v.to_csv(f'{k}_copper.csv')
# Or you send the tables to a database
pg = Postgres()
for k, v in people_tbls.items():
v.to_postgres(f'copper.{k}', if_exists='drop')
# Get companies
# Get companies modified since a date, unix time. This will unpack the companies
json as a dict of Parsons Tables.
company_tbls = copper.get_companies({'minimum_modified_date': 1599674523})
API
- class parsons.Copper(user_email=None, api_key=None)[source]
Instantiate Copper Class
- Args:
- user_email:
The email of the API user for Copper. Not required if
COPPER_USER_EMAIL
env variable set.- api_key:
The Copper provided application key. Not required if
COPPER_API_KEY
env. variable set.
- Returns:
Copper Class
- get_people(filters=None, tidy=False)[source]
Get people
- Args:
- filters: dict
Optional; pass additional parameters to filter the records returned. See Copper documentation for choices
- tidy: boolean or int
Optional; unpack list and dict columns as additional rows instead of columns If True: creates new table out of unpacked rows If ‘int’: adds rows to original table if max rows per key <= given number (so tidy=0 guarantees new table)
- Returns:
- List of dicts of Parsons Tables:
people
people_emails
people_phone_numbers
people_custom_fields
people_socials
people_websites
- get_companies(filters=None, tidy=False)[source]
Get companies
- Args:
- filters: dict
Optional; pass additional parameters to filter the records returned. See Copper documentation for choices
- tidy: boolean or int
Optional; unpack list and dict columns as additional rows instead of columns If True: creates new table out of unpacked rows If ‘int’: adds rows to original table if max rows per key <= given number (so tidy=0 guarantees new table)
- Returns:
- List of dicts of Parsons Tables:
companies
companies_phone_numbers
companies_custom_fields
companies_socials
companies_websites
- get_activities(filters=None, tidy=False)[source]
Get activities
- Args:
- filters: dict
Optional; pass additional parameters to filter the records returned. See Copper documentation for choices Optional; unpack list and dict columns as additional rows instead of columns If True: creates new table out of unpacked rows If ‘int’: adds rows to original table if max rows per key <= given number (so tidy=0 guarantees new table)
- Returns:
- List of dicts of Parsons Tables:
activities
- get_opportunities(filters=None, tidy=False)[source]
Get opportunities (i.e. donations)
- Args:
- filters: dict
Optional; pass additional parameters to filter the records returned. See Copper documentation for choices Optional; unpack list and dict columns as additional rows instead of columns If True: creates new table out of unpacked rows If ‘int’: adds rows to original table if max rows per key <= given number (so tidy=0 guarantees new table)
- Returns:
- List of dicts of Parsons Tables:
opportunities
opportunities_custom_fields
- get_custom_fields()[source]
Get custom fields
- Args:
filters: dict Optional; pass additional parameters to filter the records returned. See Copper documentation for choices
- Returns:
- List of dicts of Parsons Tables:
custom_fields
custom_fields_available
custom_fields_options
- get_activity_types()[source]
Get activity types
- Args:
filters: dict Optional; pass additional parameters to filter the records returned. See Copper documentation for choices
- Returns:
- List of dicts of Parsons Tables:
activitiy_types
- get_contact_types()[source]
Get contact types
- Args:
filters: dict Optional; pass additional parameters to filter the records returned. See Copper documentation for choices
- Returns:
- Parsons Table
See Parsons Table for output options.