diff --git a/Pipedrive/Pipedrive_Get_a_note.ipynb b/Pipedrive/Pipedrive_Get_a_note.ipynb new file mode 100644 index 0000000000..048ceb65ba --- /dev/null +++ b/Pipedrive/Pipedrive_Get_a_note.ipynb @@ -0,0 +1,291 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "71c0bc07-d10e-4777-9d07-f8069593b9dc", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "\"Pipedrive.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "c2297c6c-1c56-44f5-ab1b-4f358315ae4d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Pipedrive - Get details of a note\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1528c23e-d4b5-4dae-aedd-3e0c3de7a07e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #pipedrive #note #get #snippet #api #v1 #python" + ] + }, + { + "cell_type": "markdown", + "id": "0f5b4999-cf8f-429b-a3b5-60abd6f0b4cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "b50cf866-b0f5-45c1-9ea2-4c63d5622675", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-01-04 (Created: 2023-01-04)" + ] + }, + { + "cell_type": "markdown", + "id": "da21ae20-d8f3-41ae-b6e4-1d16e8bca2d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook returns the details of a note." + ] + }, + { + "cell_type": "markdown", + "id": "6a0004b2-eb12-4dc2-b721-6b482cab7439", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Pipedrive API v1 Documentation](https://developers.pipedrive.com/docs/api/v1/Notes#getNote)\n", + "- [Pipedrive API Authentication](https://developers.pipedrive.com/docs/api/authentication)\n", + "- [Get your Pipedrive API token](https://developers.pipedrive.com/docs/api/authentication)." + ] + }, + { + "cell_type": "markdown", + "id": "906e7461-ec7c-4efe-952b-79a2fcdf2b94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "699c6ed8-1d1c-4712-b64c-34ed8b385130", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "771e3ddd-f295-4b44-a7d5-0873ee5be72a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "0ab0d130-cbec-438c-a188-8a0cb295da4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `api_token`: API token used to authenticate the request.\n", + "- `object_id`: ID of the note." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6ffb591-6b88-43f6-95b7-a93de4040366", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_token = naas.secret.get(\"PIPEDRIVE_API_KEY\") or \"YOUR_API_TOKEN\"\n", + "object_id = 3637" + ] + }, + { + "cell_type": "markdown", + "id": "61a6835b-4526-4d1e-9e21-e2c9325f0206", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "35bdc814-3909-4188-94c0-0c1faf996c1e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get a note" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6810b2b3-de2c-4929-b2ff-f5d9c176ddbd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_note(api_token, object_id):\n", + " api_url = f'https://api.pipedrive.com/v1/notes/{object_id}?api_token={api_token}'\n", + " res = requests.get(api_url)\n", + " res.raise_for_status()\n", + " if res.status_code == 200:\n", + " return res.json()\n", + " else:\n", + " print(f'Failed to get organization with id {object_id}. Status code: {res.status_code}')\n", + " \n", + "result = get_note(api_token, object_id)\n", + "print(\"Note ID:\", result.get('data').get(\"id\"))\n", + "print(\"Note content:\", result.get('data').get(\"content\"))" + ] + }, + { + "cell_type": "markdown", + "id": "7c89f6ac-4231-46ea-81ba-3aa90bc46f3c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "ca89baa8-b76c-4f9e-8d60-74fdfacf141d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4e6814d5-bfeb-413a-a4e9-7d9c70c4d95b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result.get(\"data\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e26c07fc-63e7-475f-b4d6-91a4096f6bfc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "5e625e87-9a42-44a4-a872-9ab557638886", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "ac0a2a8f823eaaec488085cbf985de5cceb467ba42d8856876fe0ecbcee2706a", + "notebook_path": "Pipedrive/Pipedrive_Get_a_person.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.5.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Pipedrive/Pipedrive_Get_all_notes.ipynb b/Pipedrive/Pipedrive_Get_all_notes.ipynb new file mode 100644 index 0000000000..c1898aedae --- /dev/null +++ b/Pipedrive/Pipedrive_Get_all_notes.ipynb @@ -0,0 +1,332 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "71c0bc07-d10e-4777-9d07-f8069593b9dc", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "\"Pipedrive.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "c2297c6c-1c56-44f5-ab1b-4f358315ae4d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Pipedrive - Get all notes\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1528c23e-d4b5-4dae-aedd-3e0c3de7a07e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #pipedrive #notes #get #snippet #api #v1 #python #csv #export" + ] + }, + { + "cell_type": "markdown", + "id": "0f5b4999-cf8f-429b-a3b5-60abd6f0b4cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "b50cf866-b0f5-45c1-9ea2-4c63d5622675", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-01-04 (Created: 2023-01-04)" + ] + }, + { + "cell_type": "markdown", + "id": "da21ae20-d8f3-41ae-b6e4-1d16e8bca2d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook retrieves all notes with access to your Pipedrive account." + ] + }, + { + "cell_type": "markdown", + "id": "6a0004b2-eb12-4dc2-b721-6b482cab7439", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Pipedrive API v1 Documentation](https://developers.pipedrive.com/docs/api/v1/Notes#getNotes)\n", + "- [Pipedrive API Authentication](https://developers.pipedrive.com/docs/api/authentication)\n", + "- [Get your Pipedrive API token](https://developers.pipedrive.com/docs/api/authentication)." + ] + }, + { + "cell_type": "markdown", + "id": "906e7461-ec7c-4efe-952b-79a2fcdf2b94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "699c6ed8-1d1c-4712-b64c-34ed8b385130", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "771e3ddd-f295-4b44-a7d5-0873ee5be72a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "import pandas as pd\n", + "from datetime import date" + ] + }, + { + "cell_type": "markdown", + "id": "0ab0d130-cbec-438c-a188-8a0cb295da4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `api_token`: API token used to authenticate the request.\n", + "- `file_path`: CSV file path to save data\n", + "- `params`: query parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6ffb591-6b88-43f6-95b7-a93de4040366", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_token = naas.secret.get(\"PIPEDRIVE_API_KEY\") or \"YOUR_API_TOKEN\"\n", + "file_path = f\"{date.today().isoformat()}_export_pipedrive_notes.csv\"\n", + "params = {\n", + " \"user_id\": None,\n", + " \"lead_id\": None,\n", + " \"deal_id\": None,\n", + " \"person_id\": None,\n", + " \"org_id\": None,\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "61a6835b-4526-4d1e-9e21-e2c9325f0206", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "35bdc814-3909-4188-94c0-0c1faf996c1e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all notes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6810b2b3-de2c-4929-b2ff-f5d9c176ddbd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Flatten the nested dict\n", + "def flatten_dict(d, parent_key='', sep='_'):\n", + " \"\"\"\n", + " Flattens a nested dictionary into a single level dictionary.\n", + "\n", + " Args:\n", + " d (dict): A nested dictionary.\n", + " parent_key (str): Optional string to prefix the keys with.\n", + " sep (str): Optional separator to use between parent_key and child_key.\n", + "\n", + " Returns:\n", + " dict: A flattened dictionary.\n", + " \"\"\"\n", + " items = []\n", + " for k, v in d.items():\n", + " new_key = f\"{parent_key}{sep}{k}\" if parent_key else k\n", + " if isinstance(v, dict):\n", + " items.extend(flatten_dict(v, new_key, sep=sep).items())\n", + " else:\n", + " items.append((new_key, v))\n", + " return dict(items)\n", + "\n", + "def get_all_notes(\n", + " api_token,\n", + " params,\n", + " start=0,\n", + " limit=100,\n", + "):\n", + " # Init\n", + " data = []\n", + " \n", + " # Requests\n", + " while True:\n", + " api_url = f'https://api.pipedrive.com/v1/notes?api_token={api_token}&start={start}&limit={limit}'\n", + " res = requests.get(api_url, params)\n", + " res.raise_for_status()\n", + " if res.status_code == 200:\n", + " res_json = res.json()\n", + " else:\n", + " print(f'Failed to get all notes. Status code: {res.status_code}')\n", + " break\n", + " \n", + " # Clean data\n", + " if res_json.get(\"success\") and res_json.get('data') is not None:\n", + " for r in res_json.get('data'):\n", + " data.append(flatten_dict(r))\n", + " start += 100\n", + " else:\n", + " break\n", + " return pd.DataFrame(data)\n", + " \n", + "df = get_all_notes(api_token, params)\n", + "print(\"Notes:\", len(df))\n", + "df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "7c89f6ac-4231-46ea-81ba-3aa90bc46f3c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "ca89baa8-b76c-4f9e-8d60-74fdfacf141d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save data to CSV" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4e6814d5-bfeb-413a-a4e9-7d9c70c4d95b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df.to_csv(file_path, index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "5e625e87-9a42-44a4-a872-9ab557638886", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "b4812eff96c87d4b997726222b46c78185091db414e792a1f643a595b40429c4", + "notebook_path": "Pipedrive/Pipedrive_Get_all_users.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.5.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Pipedrive/Pipedrive_Update_a_deal.ipynb b/Pipedrive/Pipedrive_Update_a_deal.ipynb new file mode 100644 index 0000000000..5b51f6f247 --- /dev/null +++ b/Pipedrive/Pipedrive_Update_a_deal.ipynb @@ -0,0 +1,296 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "71c0bc07-d10e-4777-9d07-f8069593b9dc", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "\"Pipedrive.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "c2297c6c-1c56-44f5-ab1b-4f358315ae4d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Pipedrive - Update a deal\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1528c23e-d4b5-4dae-aedd-3e0c3de7a07e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #pipedrive #deal #update #snippet #api #v1 #python" + ] + }, + { + "cell_type": "markdown", + "id": "0f5b4999-cf8f-429b-a3b5-60abd6f0b4cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "b50cf866-b0f5-45c1-9ea2-4c63d5622675", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-01-04 (Created: 2023-01-04)" + ] + }, + { + "cell_type": "markdown", + "id": "da21ae20-d8f3-41ae-b6e4-1d16e8bca2d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook updates the properties of a deal." + ] + }, + { + "cell_type": "markdown", + "id": "6a0004b2-eb12-4dc2-b721-6b482cab7439", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Pipedrive API v1 Documentation](https://developers.pipedrive.com/docs/api/v1/Deals#updateDeal)\n", + "- [Pipedrive API Authentication](https://developers.pipedrive.com/docs/api/authentication)\n", + "- [Get your Pipedrive API token](https://developers.pipedrive.com/docs/api/authentication)." + ] + }, + { + "cell_type": "markdown", + "id": "906e7461-ec7c-4efe-952b-79a2fcdf2b94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "699c6ed8-1d1c-4712-b64c-34ed8b385130", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "771e3ddd-f295-4b44-a7d5-0873ee5be72a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "0ab0d130-cbec-438c-a188-8a0cb295da4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `api_token`: API token used to authenticate the request.\n", + "- `object_id`: ID of the deal to be updated.\n", + "- `data`: Dict of Pipedrive object key and value" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6ffb591-6b88-43f6-95b7-a93de4040366", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_token = naas.secret.get(\"PIPEDRIVE_API_KEY\") or \"YOUR_API_TOKEN\"\n", + "object_id = 100838\n", + "data = {\n", + " \"title\": \"Test\",\n", + " \"value\": 0,\n", + " \"user_id\": 13470003,\n", + " \"person_id\": 100838,\n", + " \"org_id\": 3363,\n", + " \"pipeline_id\": 14,\n", + " \"stage_id\": 95,\n", + " \"status\": \"open\",\n", + " \"probability\": 10,\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "61a6835b-4526-4d1e-9e21-e2c9325f0206", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "597d4838-f2c9-49d8-bdb0-c37fee74e485", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Update deal" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c7cc14a2-049c-44ee-b9f9-8bea1f58c306", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def update_deal(api_token, object_id, data):\n", + " api_url = f'https://api.pipedrive.com/v1/deals/{object_id}'\n", + " params = {\n", + " \"api_token\": api_token,\n", + " }\n", + " res = requests.put(api_url, params=params, json=data)\n", + " res.raise_for_status()\n", + " if res.status_code == 200:\n", + " return res.json()\n", + " else:\n", + " print(f'Failed to get deal with id {object_id}. Status code: {res.status_code}')\n", + " \n", + "result = update_deal(api_token, object_id, data)\n", + "for d in data:\n", + " update = result.get(\"data\").get(d)\n", + " print(f\"- Updated field {d}:\", update)" + ] + }, + { + "cell_type": "markdown", + "id": "7c89f6ac-4231-46ea-81ba-3aa90bc46f3c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "ca89baa8-b76c-4f9e-8d60-74fdfacf141d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4e6814d5-bfeb-413a-a4e9-7d9c70c4d95b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result.get('data')" + ] + }, + { + "cell_type": "markdown", + "id": "5e625e87-9a42-44a4-a872-9ab557638886", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e495ee5783b582fd158948b12eff6ede20bf753f8ae35710e835819fd8eb96c4", + "notebook_path": "Pipedrive/Pipedrive_Update_a_person.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.5.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Pipedrive/Pipedrive_Update_a_note.ipynb b/Pipedrive/Pipedrive_Update_a_note.ipynb new file mode 100644 index 0000000000..25daf6b381 --- /dev/null +++ b/Pipedrive/Pipedrive_Update_a_note.ipynb @@ -0,0 +1,292 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "71c0bc07-d10e-4777-9d07-f8069593b9dc", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "\"Pipedrive.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "c2297c6c-1c56-44f5-ab1b-4f358315ae4d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Pipedrive - Update a note\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1528c23e-d4b5-4dae-aedd-3e0c3de7a07e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #pipedrive #note #update #snippet #api #v1 #python" + ] + }, + { + "cell_type": "markdown", + "id": "0f5b4999-cf8f-429b-a3b5-60abd6f0b4cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "b50cf866-b0f5-45c1-9ea2-4c63d5622675", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-01-04 (Created: 2023-01-04)" + ] + }, + { + "cell_type": "markdown", + "id": "da21ae20-d8f3-41ae-b6e4-1d16e8bca2d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook updates the properties of a note." + ] + }, + { + "cell_type": "markdown", + "id": "6a0004b2-eb12-4dc2-b721-6b482cab7439", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Pipedrive API v1 Documentation](https://developers.pipedrive.com/docs/api/v1/Notes#updateNote)\n", + "- [Pipedrive API Authentication](https://developers.pipedrive.com/docs/api/authentication)\n", + "- [Get your Pipedrive API token](https://developers.pipedrive.com/docs/api/authentication)." + ] + }, + { + "cell_type": "markdown", + "id": "906e7461-ec7c-4efe-952b-79a2fcdf2b94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "699c6ed8-1d1c-4712-b64c-34ed8b385130", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "771e3ddd-f295-4b44-a7d5-0873ee5be72a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "0ab0d130-cbec-438c-a188-8a0cb295da4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `api_token`: API token used to authenticate the request.\n", + "- `object_id`: ID of the note to be updated.\n", + "- `data`: Dict of Pipedrive object key and value" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6ffb591-6b88-43f6-95b7-a93de4040366", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_token = naas.secret.get(\"PIPEDRIVE_API_KEY\") or \"YOUR_API_TOKEN\"\n", + "object_id = 100838\n", + "data = {\n", + " \"content\": \"My first note\",\n", + " \"deal_id\": 2454,\n", + " \"user_id\": 13470003,\n", + " \"person_id\": 100838,\n", + " \"org_id\": 3363,\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "61a6835b-4526-4d1e-9e21-e2c9325f0206", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "597d4838-f2c9-49d8-bdb0-c37fee74e485", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Update note" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c7cc14a2-049c-44ee-b9f9-8bea1f58c306", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def update_note(api_token, object_id, data):\n", + " api_url = f'https://api.pipedrive.com/v1/notes/{object_id}'\n", + " params = {\n", + " \"api_token\": api_token,\n", + " }\n", + " res = requests.put(api_url, params=params, json=data)\n", + " res.raise_for_status()\n", + " if res.status_code == 200:\n", + " return res.json()\n", + " else:\n", + " print(f'Failed to get note with id {object_id}. Status code: {res.status_code}')\n", + " \n", + "result = update_note(api_token, object_id, data)\n", + "for d in data:\n", + " update = result.get(\"data\").get(d)\n", + " print(f\"- Updated field {d}:\", update)" + ] + }, + { + "cell_type": "markdown", + "id": "7c89f6ac-4231-46ea-81ba-3aa90bc46f3c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "ca89baa8-b76c-4f9e-8d60-74fdfacf141d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4e6814d5-bfeb-413a-a4e9-7d9c70c4d95b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result.get('data')" + ] + }, + { + "cell_type": "markdown", + "id": "5e625e87-9a42-44a4-a872-9ab557638886", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e495ee5783b582fd158948b12eff6ede20bf753f8ae35710e835819fd8eb96c4", + "notebook_path": "Pipedrive/Pipedrive_Update_a_person.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.5.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Pipedrive/Pipedrive_Update_a_person.ipynb b/Pipedrive/Pipedrive_Update_a_person.ipynb index b812fd1834..a2811b8f78 100644 --- a/Pipedrive/Pipedrive_Update_a_person.ipynb +++ b/Pipedrive/Pipedrive_Update_a_person.ipynb @@ -21,7 +21,7 @@ "tags": [] }, "source": [ - "# Pipedrive - Update an person\n", + "# Pipedrive - Update a person\n", "

Give Feedback | Bug report" ] }, @@ -66,7 +66,7 @@ "tags": [] }, "source": [ - "**Description:** This notebook updates the properties of an person." + "**Description:** This notebook updates the properties of a person." ] }, { @@ -288,4 +288,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +}