intercom-python is an API wrapper for intercom, written in Python.
This library uses Oauth2 for authentication.
pip install intercom-python-2
# if you have an access token:
from intercom.client import Client
client = Client(access_token=access_token)
# if you are using Oauth2 to get an access_token:
from intercom.client import Client
client = Client(client_id=client_id, client_secret=client_secret)
To obtain and set an access token:
- Get authorization URL
url = client.authorization_url(redirect_uri)
- Get access token using code
response = client.get_access_token(code)
- Set access token
client.set_token(access_token)
Check more information about Intercom Oauth: https://developers.intercom.com/building-apps/docs/setting-up-oauth
me = client.get_current_user()
admins = client.list_all_admins()
# model options are: contact, company, conversation
data_atts = client.list_data_attributes(model, include_archived=False)
tags = client.list_tags()
contacts = client.list_all_contacts()
# field options: https://developers.intercom.com/intercom-api-reference/reference/searchcontacts
contacts = client.filter_contacts(field, operator, value)
# operator options: =, !=, IN, NIN, <, >, ~, !~, ^, $
# role options are: 'user' and 'lead'
# signed_up_at and last_seen_at use epoch time stamp. For example: 1685986703 equals Monday, 5 June 2023 17:38:23
# custom_attributes dict structure:
# {"field_name": "field_value", "field_name": "field_value", ...}
contact = client.create_contact(
role: str,
email: str,
external_id: str = None,
phone: str = None,
name: str = None,
avatar: str = None,
signed_up_at: int = None,
last_seen_at: int = None,
owner_id: int = None,
unsubscribed: bool = None,
custom_attributes: dict = None
)
response = client.add_tag_to_contact(contact_id, tag_id)
text = "this is a note"
response = client.create_note(contact_id, text)