Skip to main content

API wrapper for RD Station written in Python

Project description

rdstation-python

rdstation-python is an API wrapper for RD Station, written in Python.

  1. RD Station Marketing (This product uses Oauth2 for authentication and uses webhook notifications).
  2. RD Station CRM

Installing

pip install rdstation-python

1. RD Station Marketing

Usage

from rdstation.client import Client
client = Client(client_id, client_secret)

To obtain and set an access token, follow this instructions:

  1. Get authorization URL
url = client.authorization_url(redirect_uri)
  1. Get access token using code
response = client.get_access_token(code)
  1. Set access token
client.set_token(access_token)

If your access token expired, you can get a new one using refresh token:

response = client.refresh_access_token(refresh_token)

And then set access token again...
Check more information about RD Station Oauth: https://legacydevelopers.rdstation.com/es/authentication

Get account info

info = client.get_account_info()

Get contact by email

contact = client.get_contact_by_email(email)

Get contact fields

fields = client.get_contact_fields()

Leads

Create Lead

lead_example = {
    "conversion_identifier": "Name of the conversion event",
    "name": "Nome",
    "email": "email2@email.com",
    "job_title": "job title value",
    "state": "state of the contact",
    "city": "city of the contact",
    "personal_phone": "phone of the contact",
    "website": "website of the contact",
    "cf_custom_field_api_identifier": "custom field value",
    "company_name": "company name",
    "client_tracking_id": "lead tracking client_id",
    "traffic_source": "Google",
    "tags": ["cml", "2022"],
    "available_for_mailing": True,
    "legal_bases": [{"category": "communications", "type": "consent", "status": "granted"}],
}
event_type = "CONVERSION"
created = client.create_lead(event_type, lead_example)
# event_type options are: CONVERSION, OPPORTUNITY, SALE, OPPORTUNITY_LOST, ORDER_PLACED, ORDER_PLACED_ITEM, CART_ABANDONED, CART_ABANDONED_ITEM, CHAT_STARTED, CHAT_FINISHED, CALL_FINISHED, MEDIA_PLAYBACK_STARTED, MEDIA_PLAYBACK_STOPPED

Depending on event type, sent data should be different, check https://legacydevelopers.rdstation.com/es/reference/events for more info.

Webhooks

List webhooks

webhooks = client.list_webhooks()

Create webhook

webhook = client.create_webhook(event_type, url, event_identifiers: list = None, include_relations: list =None)
# event type options: "WEBHOOK.CONVERTED", "WEBHOOK.MARKED_OPPORTUNITY"

Delete webhook

client.delete_webhook(uuid)

2. RD Station CRM

Check this site for more information: https://developers.rdstation.com/reference/instru%C3%A7%C3%B5es-e-requisitos

Usage

from rdstation.crm import CRMClient
client = CRMClient(token)

Users

- List users

users = client.list_users()

Contacts

- List contacts

contacts = client.list_contacts(page=None, limit=None, order=None, direction=None, email=None, query=None)
# limit: default is 20. Max is 200.
# order: field to be sorted. Default is 'name'
# direction: 'asc' or 'desc', defaulti is 'asc'
# email: filter by email
# query: name of contact to be searched"

- Create Contact

custom_fields = [
    {
        "custom_field_id": "6414c0fc43ba490012f96c64",
        "value": "a text custom field"
    }
]
contact = client.create_contact("contact X", "Mr", "1991-01-04", "test@test.com", custom_data=custom_fields)

- Update Contact

custom_fields = [
    {
        "custom_field_id": "6414c0fc43ba490012f96c64",
        "value": "a text custom field"
    }
]
contact = client.update_contact("CONTACT_ID", "contact X", "Mr", "1991-01-04", custom_data=custom_fields)

Companies

- List companies

companies = client.list_companies(page=None, limit=None, order=None, direction=None, user_id=None, query=None)
# limit: default is 20. Max is 200.
# order: field to be sorted. Default is 'name'
# direction: 'asc' or 'desc', defaulti is 'asc'
# query: name of company to be searched"

Opportunities

- List opportunities

opportunities = client.list_opportunities(limit=1, page=1, direction="desc")

- Create opportunity

custom_fields_example = [
    {
        "custom_field_id": "6414c0fc43ba490012f96c64",
        "value": "a text custom field"
    }
]
oppor = client.create_opportunity(
    "opportunity name 2023",
    deal_stage_id="64148f7bff9080001bdca349",
    organization_id="6414cc9895c34b000c0fb2aa",
    deal_source_id="64148f7bff9080001bdca33b",
    rating=4,
    prediction_date="2023-11-11",
    custom_data=custom_fields_example,
)

Check this site for more information about creating opportunities: https://developers.rdstation.com/reference/oportunidades

- List deal stages

stages = client.list_deal_stages(page=None, limit=None)

- List deal pipelines

stages = client.list_deal_pipelines()

- List deal sources

stages = client.list_deal_sources()

Custom fields

- List custom fields

fields = client.list_custom_fields(option=None)
# option: "contact", "deal", "organization"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rdstation_python-0.2.2.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

rdstation_python-0.2.2-py3-none-any.whl (7.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page