Coder Social home page Coder Social logo

gearplug / rdstation-python Goto Github PK

View Code? Open in Web Editor NEW
1.0 0.0 1.0 36 KB

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

License: MIT License

Python 100.00%
api marketing oauth2 python rdstation requests webhooks notifications wrapper crm

rdstation-python's Introduction

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": "[email protected]",
    "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", "[email protected]", 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"

rdstation-python's People

Contributors

ingmferrer avatar juanrios15 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.