Integraciones para Sales Hub

marcmm
メンバー

Importar empresas con Python

解決

Con este codigo Python me funciona para crear empresas nuevas, pero si en el fichero CSV tengo registros que ya existen y se les ha modificado algun dato, querria que me lo actualizara y no lo hace.

 

import requests
import json
import csv

def import_companies():
post_url = "https://api.hubapi.com/crm/v3/imports?hapikey=YourHapikey"
payload = {
"name": "import_companies",
"files": [
{
"fileName": "companies.csv",
"fileformat": "CSV",
"fileImportPage": {
"hasHeader": True,
"columnMappings": [
{
"ignored": False,
"columnName": "Nombre",
"propertyName": "name",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "Dominio",
"idColumnType": "HUBSPOT_ALTERNATE_ID",
"propertyName": "domain",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "Telefono",
"propertyName": "phone",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "CP",
"propertyName": "zip",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "Direccion",
"propertyName": "address",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "Poblacion",
"propertyName": "city",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "Provincia",
"propertyName": "state",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "Pais",
"propertyName": "country",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "Comercial",
"propertyName": "hubspot_owner_id",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
},
{
"ignored": False,
"columnName": "hs_object_id",
"propertyName": "hs_object_id",
"columnObjectType": "COMPANY",
"associationIdentifierColumn": False
}
]
}
}
]
}
files = {
'importRequest': (None, json.dumps(payload), 'application/json'),
'files': open('companies.csv', 'rb')
}
res = requests.post(post_url, files=files)
print(res)
print(res.text)

import_companies()

 

 

0 いいね!
2件の承認済みベストアンサー
Gonzalo
解決策
トップ投稿者 | Diamond Partner
トップ投稿者 | Diamond Partner

Importar empresas con Python

解決

Hola @marcmm y  @sharonlicari ,


Para poder actualizar los datos de la compañia debes usar otros endpoints de la API: 

Update (una a una): /crm/v3/objects/companies/{companyId}

Batch: /crm/v3/objects/companies/batch/update

 

Hubspot provee algunas librerías listas para usar, entre ellos con Python. Así que si utilizas dicha librería debería quedarte algo así:

import hubspot
from pprint import pprint
from hubspot.crm.companies import SimplePublicObjectInput, ApiException

client = hubspot.Client.create(api_key="YOUR_HUBSPOT_API_KEY")

properties = {
    "city": "Cambridge",
    "domain": "biglytics.net",
    "industry": "Technology",
    "name": "Biglytics",
    "phone": "(877) 929-0687",
    "state": "Massachusetts"
}
simple_public_object_input = SimplePublicObjectInput(properties=properties)
try:
    api_response = client.crm.companies.basic_api.update(company_id="companyId", simple_public_object_input=simple_public_object_input)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling basic_api->update: %s\n" % e)

Echa un vistazo a la documentación para más información.

Y aquí tienes el enlace al repositorio de la librería en python.

Un saludo,

Gonzalo

 

If this answer helps you to solve your questions please mark it as a solution.

Thank you,


Gonzalo Torreras

HubSpot freelance developer

hola@gonzalotorreras.com
www.gonzalotorreras.com
Schedule a meeting

元の投稿で解決策を見る

jpsanchez
解決策
投稿者 | Elite Partner
投稿者 | Elite Partner

Importar empresas con Python

解決

 Hola,

 

Hasta donde yo se, 

Estas usando el ENDPOINT de importar que no se si te permite hacer esto ( no lo veo documentado en https://developers.hubspot.com/docs/api/crm/imports ).

 

Para comprobarlo te cuento:

Intenta esto:

- Revisa tu CSV y revisa si tienen nombre de dominio dentro de las columnas ( que es el identificador principal de EMPRESAS. 

Revisa que tengas dicha empresa en HubSpot.

Ejecuta tu Python. Revisa si ha actualizado o no ( añadir) información a las empresas que ya tenías.

 

Si es que si, el problema estaba en como estabas indicando la relación en tu CSV de subida ( seguramente o estaba vacio el campo de dominio o con otro nombre) . Si no te lo ha actualizado, es que no se puede hacer.

 

En caso que no te funcione, solo se me ocurre hacer una concadenación usando primero los ENDPOINTS de buscar companies, para guardar si existe y así dividir la subida en los que ya estan y los que no usando cada ENDPOINT correspondiente ( CREATE y el OTRO UPDATE) https://developers.hubspot.com/docs/api/crm/companies ( te dejo el link).  Mira si fueran contactos ya existe un ENDPOINT que hace todo en uno. CREATE AND/OR UPDATE CONTACT.,

 

Si te puedo ayudar con algo + me dices!

Un saludo

JP

😉

元の投稿で解決策を見る

3件の返信
jpsanchez
解決策
投稿者 | Elite Partner
投稿者 | Elite Partner

Importar empresas con Python

解決

 Hola,

 

Hasta donde yo se, 

Estas usando el ENDPOINT de importar que no se si te permite hacer esto ( no lo veo documentado en https://developers.hubspot.com/docs/api/crm/imports ).

 

Para comprobarlo te cuento:

Intenta esto:

- Revisa tu CSV y revisa si tienen nombre de dominio dentro de las columnas ( que es el identificador principal de EMPRESAS. 

Revisa que tengas dicha empresa en HubSpot.

Ejecuta tu Python. Revisa si ha actualizado o no ( añadir) información a las empresas que ya tenías.

 

Si es que si, el problema estaba en como estabas indicando la relación en tu CSV de subida ( seguramente o estaba vacio el campo de dominio o con otro nombre) . Si no te lo ha actualizado, es que no se puede hacer.

 

En caso que no te funcione, solo se me ocurre hacer una concadenación usando primero los ENDPOINTS de buscar companies, para guardar si existe y así dividir la subida en los que ya estan y los que no usando cada ENDPOINT correspondiente ( CREATE y el OTRO UPDATE) https://developers.hubspot.com/docs/api/crm/companies ( te dejo el link).  Mira si fueran contactos ya existe un ENDPOINT que hace todo en uno. CREATE AND/OR UPDATE CONTACT.,

 

Si te puedo ayudar con algo + me dices!

Un saludo

JP

😉

sharonlicari
コミュニティーマネージャー
コミュニティーマネージャー

Importar empresas con Python

解決

Hola @marcmm 

 

¡Bienvenido a la Comunidad!

 

Creo que algunos de nuestros expertos pueden guidarte de cómo lograrlo.

 

Hola @jpsanchez @mangelet @Gonzalo ¿podrían compartir sus conociemientos con @marcmm?

 

Gracias

Sharon 

 

 


Did you know that the Community is available in other languages?
Join regional conversations by changing your language settings !




0 いいね!
Gonzalo
解決策
トップ投稿者 | Diamond Partner
トップ投稿者 | Diamond Partner

Importar empresas con Python

解決

Hola @marcmm y  @sharonlicari ,


Para poder actualizar los datos de la compañia debes usar otros endpoints de la API: 

Update (una a una): /crm/v3/objects/companies/{companyId}

Batch: /crm/v3/objects/companies/batch/update

 

Hubspot provee algunas librerías listas para usar, entre ellos con Python. Así que si utilizas dicha librería debería quedarte algo así:

import hubspot
from pprint import pprint
from hubspot.crm.companies import SimplePublicObjectInput, ApiException

client = hubspot.Client.create(api_key="YOUR_HUBSPOT_API_KEY")

properties = {
    "city": "Cambridge",
    "domain": "biglytics.net",
    "industry": "Technology",
    "name": "Biglytics",
    "phone": "(877) 929-0687",
    "state": "Massachusetts"
}
simple_public_object_input = SimplePublicObjectInput(properties=properties)
try:
    api_response = client.crm.companies.basic_api.update(company_id="companyId", simple_public_object_input=simple_public_object_input)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling basic_api->update: %s\n" % e)

Echa un vistazo a la documentación para más información.

Y aquí tienes el enlace al repositorio de la librería en python.

Un saludo,

Gonzalo

 

If this answer helps you to solve your questions please mark it as a solution.

Thank you,


Gonzalo Torreras

HubSpot freelance developer

hola@gonzalotorreras.com
www.gonzalotorreras.com
Schedule a meeting