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.