Your use case. Our milestone. The 200th post in our "Kaizen Series: Continuous Improvement for Developer Experience" is coming up. Share Now

X
Aller au contenu principal
close
EXPLOREZ TOUS LES PRODUITS

Ventes

CRM

Convertissez les prospects et concluez des ventes plus rapidement.

CRM
Sign

Application de signatures numériques

Sign
Forms

Créez des formulaires en ligne pour tous les besoins professionnels.

Forms
Bigin

Solution de gestion de pipeline pour les équipes travaillant en contact direct avec les clients.

Bigin
SalesIQ

Application de tchat en direct pour impliquer et convertir les visiteurs du site Web.

SalesIQ
Bookings

Application de planification de rendez-vous pour les consultations avec les clients.

Bookings
Suites
CRM Plus

Plateforme unifiée pour offrir une expérience client de premier ordre.

CRM Plus

Marketing

Campaigns

Créez, envoyez et suivez vos campagnes ciblées par e-mail pour développer vos ventes.

Campaigns
Sign

Application de signatures numériques

Sign
Forms

Créez des formulaires en ligne pour tous les besoins professionnels.

Forms
Social

Logiciel tout-en-un de gestion des réseaux sociaux.

Social
Survey

Concevez des enquêtes pour atteindre votre public et interagir avec lui.

Survey
SalesIQ

Application de tchat en direct pour impliquer et convertir les visiteurs du site Web.

SalesIQ
Sites

Outil de création de sites Web en ligne avec de nombreuses options de personnalisation.

Sites
Backstage

Logiciel de gestion des événements de bout en bout.

Backstage
PageSense

Plateforme d'optimisation et de personnalisation de la conversion de sites Web.

PageSense
Marketing Automation

Logiciel d'automatisation marketing tout-en-un.

Marketing Automation
LandingPage

Outil de création de pages de destination intelligentes contribuant à améliorer le taux de conversion.

LandingPage
Suites
Marketing Plus

Plateforme de marketing unifiée pour les équipes marketing.

Marketing Plus

Commerce

Commerce

Plateforme de commerce électronique pour gérer et commercialiser votre boutique en ligne.

Commerce

Support client

Desk

Logiciel d'assistance pour fournir une assistance client de qualité.

Desk
Assist

Assistance à distance et logiciel d'accès à distance sans surveillance.

Assist
SalesIQ

Application de tchat en direct pour impliquer et convertir les visiteurs du site Web.

SalesIQ
Bookings

Application de planification de rendez-vous pour les consultations avec les clients.

Bookings
Lens

Logiciel d'assistance à distance interactive avec réalité augmentée.

Lens
Suites
Service Plus

Plateforme unifiée pour les équipes de service client et d'assistance.

Service Plus

Finance

Books

Plateforme financière puissante pour les entreprises en pleine croissance.

Books
Expense

Plateforme de création sans effort de rapports de dépenses.

Expense
Sign

Application de signatures numériques

Sign
Inventory

Logiciel de contrôle d'inventaire et de gestion du stock optimisés.

Inventory
Gratuit
Invoice

Solution de facturation 100 % gratuite.

Invoice
Commerce

Plateforme de commerce électronique pour gérer et commercialiser votre boutique en ligne.

Commerce

Messagerie et collaboration

Mail

Service de messagerie sécurisé pour les équipes de toutes tailles.

Mail
Sign

Application de signatures numériques

Sign
WorkDrive

Gestion des fichiers en ligne pour les équipes.

WorkDrive
Bookings

Application de planification de rendez-vous pour les consultations avec les clients.

Bookings
Cliq

Restez en contact avec votre équipe, où que vous soyez.

Cliq
Notebook

Un espace agréable pour toutes vos notes.

Notebook
Meeting

Organisez des webinaires et des réunions en toute sécurité.

Meeting
Connect

Logiciel de collaboration en équipe qui rassemble les personnes.

Connect
Learn

Plateforme de gestion des connaissances et de l'apprentissage.

Learn
Office Integrator

Éditeurs de documents intégrés pour les applications Web.

Office Integrator
Writer

Outil de traitement de texte pour une rédaction et des discussions précises.

Writer
Show

Créez, modifiez et partagez des diapositives grâce à une application de présentation élégante.

Show
Sheet

Logiciel de tableur pour les équipes travaillant en collaboration.

Sheet
Calendar

Calendrier professionnel en ligne pour gérer les événements et planifier des rendez-vous.

Calendar
Suites
Workplace

Suite d'applications conçue pour améliorer la productivité et la collaboration des équipes.

Workplace

RH

Expense

Plateforme de création sans effort de rapports de dépenses.

Expense
Recruit

Plateforme de recrutement intuitive conçue pour fournir des solutions d'embauche.

Recruit
People

Organisez, automatisez et simplifiez vos processus RH.

People
Sign

Application de signatures numériques

Sign
Workerly

Gérez le personnel temporaire grâce à une solution de planification des employés.

Workerly
Suites
People Plus

Plateforme RH complète offrant une expérience fluide aux employés.

People Plus

Gestion de la sécurité et des ressources informatiques

Creator

Développez des applications personnalisées pour simplifier les processus de votre entreprise.

Creator
Assist

Assistance à distance et logiciel d'accès à distance sans surveillance.

Assist
Vault

Gestionnaire de mots de passe en ligne pour les équipes.

Vault
Lens

Logiciel d'assistance à distance interactive avec réalité augmentée.

Lens

Veille stratégique et analytique

Analytics

Plateforme moderne de veille stratégique et d'analyse en libre-service.

Analytics
DataPrep

Service de préparation de données basé sur l'intelligence artificielle pour votre organisation basée sur les données.

DataPrep
Embedded BI

Solutions d'analyse intégrées et de veille stratégique de marque blanche, adaptées à vos besoins.

Embedded BI

Gestion de projet

Projects

Gérez, suivez et collaborez sur des projets avec des équipes.

Projects
Sprints

Outil de planification et de suivi pour les équipes scrum.

Sprints
BugTracker

Logiciel de suivi automatique des bugs pour la gestion des bugs.

BugTracker

Plateformes de développement

Creator

Développez des applications personnalisées pour simplifier les processus de votre entreprise.

Creator
Flow

Automatisez les workflows en créant des intégrations intelligentes.

Flow
Office Integrator

Éditeurs de documents intégrés pour les applications Web.

Office Integrator
DataPrep

Service de préparation de données basé sur l'intelligence artificielle pour votre organisation basée sur les données.

DataPrep
Embedded BI

Solutions d'analyse intégrées et de veille stratégique de marque blanche, adaptées à vos besoins.

Embedded BI
CRM Plus

Plateforme unifiée pour offrir une expérience client de premier ordre.

Essayer maintenant
CRM Plus
Service Plus

Plateforme unifiée pour les équipes de service client et d'assistance.

Essayer maintenant
Service Plus
People Plus

Plateforme RH complète offrant une expérience fluide aux employés.

Essayer maintenant
People Plus
Workplace

Suite d'applications conçue pour améliorer la productivité et la collaboration des équipes.

Essayer maintenant
Workplace
Marketing Plus

Plateforme de marketing unifiée pour les équipes marketing.

Essayer maintenant
Marketing Plus
Suite tout-en-un

Zoho One

Le système d'exploitation pour les entreprises

Faites fonctionner l'ensemble de votre entreprise sur Zoho avec notre logiciel de cloud unifié, conçu pour vous aider à réduire les silos entre les services et à améliorer l'efficacité de votre entreprise.

ESSAYEZ ZOHO ONE
Zoho Marketplace

Avec plus de 2000 extensions prêtes à l'emploi dans plus de 40 catégories, connectez vos outils professionnels préférés aux produits Zoho que vous utilisez déjà.

DÉCOUVRIR MARKETPLACE

Fonctions sans serveur - Utilisation d'une clé API

Clés API de fonctions

Une fonction sans serveur au sein de votre CRM peut être invoquée à partir de n'importe quelle application tierce ou du CRM, à l'aide d'un webhook. Cependant, à quelques exceptions près, les webhooks ne prennent généralement pas en charge OAuth2. Dans ce cas, vous pouvez exécuter la fonction à l'aide de la méthode d'authentification par clé API, que vous, ainsi que d'autres utilisateurs, pouvez employer pour invoquer la fonction, où que vous soyez.

La différence entre la clé API et OAuth2 réside dans le mode d'authentification. La clé API doit être authentifiée dans l'URL de la demande, et non comme en-tête.

Voir aussi :

Exemple de fonction :

Scénario :

Les logiciels d'assistance et de support technique sont indispensables dans une entreprise dont les activités reposent sur une interaction avec les clients. L'intégration de vos logiciels de support technique avec votre CRM vous fera gagner beaucoup de temps et d'efforts en vous permettant de gérer toutes vos informations commerciales depuis un seul et même endroit.

Zendesk est l'un de ces logiciels. Zoho Desk, développé par Zoho, appartient également à cette catégorie, mais la différence est que l'intégration de Zoho Desk est automatisée dans Zoho CRM, alors que vous devez intégrer Zendesk en utilisant uniquement des widgets. En outre, le transfert des informations sur les tickets d'un service de support technique à un autre n'est pas une mince affaire. L'intégration de Zendesk et Zoho Desk, par l'intermédiaire de fonctions sans serveur dans Zoho CRM, est donc à la fois pratique et utile.

Le scénario que nous allons maintenant utiliser repose sur une base similaire. Chaque fois qu'un « Ticket » est créé dans « Zendesk », un ticket doit également être créé dans Zoho Desk, avec les mêmes informations.

Applications requises :

  • Zendesk
  • Zoho Desk

Partie 1 : Établir une connexion

Pour que la fonction puisse utiliser des applications tierces et faciliter le transfert de données, vous devez d'abord établir une connexion entre Zoho CRM et le logiciel tiers. Dans ce cas, il s'agit de Zendesk. En savoir plus.

Créez une connexion à Zoho Desk :

Partie 2 : Créer la fonction

Créez une fonction dans Zoho CRM (y compris le code de la connexion).

Partie 2.1 : Écrire la fonction

Le code de fonction est :

+

string createTicket(string requestBody){
  if(isNull(requestBody))
  {
    return "Pas de contenu";
  }
  if(!requestBody.contains("arguments"))
  {
    return "Format non valide";
  }
  requestBody = requestBody.get("arguments");
  requestBody = requestBody.get("requestBody");
  requestBody = requestBody.get("details");
  deskURL = "https://desk.zoho.com/api/v1/";
  header = {"orgId":"664950682"};
  departmentId = "264631000000006907"; //Obtenir les détails du ticket et de l'utilisateur depuis requestBody
  userDetails = requestBody.get("user");
  ticketDetails = requestBody.get("ticket"); //Créer un mappage
  param = Map(); //Insérer les détails
  param.put("departmentId",departmentId);
  if(!userDetails.contains("email"))
  {
    return "Un e-mail est obligatoire";
  }
  email = userDetails.get("email");
  param.put("email",email);
  contactName = "Guest";
  if(userDetails.contains("full_name"))
  {
    contactName = userDetails.get("full_name");
  }
  else if(userDetails.contains("first_name") && userDetails.contains("last_name"))
  {
    contactName = userDetails.get("first_name") + " " + userDetails.contains("last_name");
  }
  else if(userDetails.contains("first_name"))
  {
    contactName = userDetails.get("first_name");
  }
  else if(userDetails.contains("last_name"))
  {
    contactName = userDetails.get("last_name");
  }
  //Obtenir l'ID de contact à partir du nom de contact
  //Obtenir tous les contacts
  contactList = invokeurl
  [
    url :deskURL + "contacts"
    type :GET
    headers:header
    connection:"zoho_desk9"
  ];
  isExistingCustomer = false;
  contactId = "";
  contactList = contactList.get("data");
  for each contactInfo in contactList
  {
    contactEmail = contactInfo.get("email");
    if(!isNull(contactEmail))
    {
      if(email.equals(contactEmail))
      {
        isExistingCustomer = true;
        contactId = contactInfo.get("contactId");
        break;
      }
    }
  }
  info isExistingCustomer;
  if(!isExistingCustomer)
  {
    //Créer un nouveau contact
    contactParam = Map();
    contactParam.put("firstName",userDetails.get("first_name"));
    contactParam.put("lastName",userDetails.get("last_name"));
    contactParam.put("mobile",userDetails.get("mobile"));
    contactParam.put("email",userDetails.get("email"));
    contactParam.put("accountId","264631000000081178");
    contactList = invokeurl
    [
      url :deskURL + "contacts"
      type :POST
      parameters:contactParam.toString()
      headers:header
      connection:"zoho_desk9"
    ];
    contactId = contactList.get("id");
  }
  param.put("contactId",contactId);
  if(!ticketDetails.contains("title"))
  {
    return "title is mandatory";
  }
  param.put("subject",ticketDetails.get("title"));
  if(!ticketDetails.contains("status"))
  {
    return "status is mandatory";
  }
  param.put("status",ticketDetails.get("status"));
  if(ticketDetails.contains("priority"))
  {
    param.put("priority",ticketDetails.get("priority"));
  }
  if(userDetails.contains("organization"))
  {
    organization = userDetails.get("organization");
    if(organization.contains("name"))
    {
      param.put("accountName",organization.get("name"));
    }
  }
  if(userDetails.contains("mobile"))
  {
    param.put("phone",userDetails.get("mobile"));
  }
  if(userDetails.contains("description"))
  {
    param.put("description",userDetails.get("description"));
  }
  info param;
  response = invokeurl
  [
    url :deskURL + "tickets"
    type :POST
    parameters:param.toString()
    headers:header
    connection:"zoho_desk9"
  ];
  if(response.contains("errorMessage"))
  {
    return "Sorry Something went wrong. error ::: " + response.get("errorMessage");
  }
  //Envoyer une notification à l'équipe de support technique
  sendmail
  [
    from :zoho.adminuserid
    to :"deborah.g@zohocorp.com"
    subject :"no-reply"
    message :"'Bonjour,<expression></expression><div><br></div><div>Un nouveau ticket a été créé dans Zoho DESK via Zendesk.</div><div><br></div><div>Détails du ticket - </div><div><br></div><div>User Name - ' + contactName + '</div><div><br></div><div><br></div><div>Request Body = " + requestBody + "</div><div><br></div>'"
  ]
  return response;
}

 

Partie 2.2 : Pour rendre la fonction disponible en tant que clé API :

  1. Cliquez sur l'icône Settings (Paramètres) pour la fonction correspondante qui doit devenir une API.
  2. Cliquez surREST API.
  3. Activez le curseur API Key (Clé API).
  4. Cliquez sur Save (Enregistrer).

Partie 3 : Créer un webhook dans Zendesk :

  1. Allez à Admin > Extension > HTTP Target (Admin > Extension > Cible HTTP).
  2. Fournissez les informations suivantes :
    • URL de la fonction
    • Méthode - GET ou POST
    • Sélectionnez JSON sous Content-type. Pour en savoir plus, cliquez ici.

Remarque :

  • La fonction URL est la clé API URL que vous obtenez à partir de l'étape 2.

Partie 4 : Créer un déclencheur dans Zendesk :

  1. Condition - lorsqu'un ticket est créé.
  2. Notifier la cible - Nom de cible HTTP

JSON - Corps d'arguments

{"arguments":
{
"requestBody":{

"details":{
"ticket":
{
"title":"{{ticket.title}}",
"description":"{{ticket.description}}",
"source":"{{ticket.via}}",
"priority":"{{ticket.priority}}",
"due_date":"{{ticket.due_date}}",
"URI":"{{ticket.url}}",
"status":"{{ticket.status}}"
},
"assigne":
{
"email":"{{ticket.assignee.email}}",
"name":"{{ticket.assignee.name}}",
"first_name":"{{ticket.assignee.first_name}}",
"last_name":"{{ticket.assignee.last_name}}"
},
"user":
{
"full_name":"{{current_user.name}}",
"first_name":"{{current_user.first_name}}",
"language":"{{current_user.language}}",
"details":"{{current_user.details}}",
"mobile":"{{current_user.phone}}",
"email":"{{current_user.email}}",
"organization":
{
"details":"{{current_user.organization.details}}",
"name":"{{current_user.organization.name}}"
}}
}}
}}

Partie 5 : Configurer un argument contenant tout le corps de la demande.

Lorsqu'un webhook envoie des données à une fonction, il n'y a aucun moyen de connaître le nombre d'arguments qu'elle contient. Pour résoudre ce problème, vous pouvez faire en sorte que la fonction contienne tout le corps de la demande dans un seul argument.

Appelez l'API Desk depuis la fonction et enregistrez la fonction.

Le résultat :

Création d'un ticket dans Zendesk :

Le ticket est créé dans Zoho Desk

 
 

Thanks for the recommendations. We will incorporate them at the earliest.

Translation Feedback

We would love to hear your thoughts on the page translation.

Nom complet*

Courriel*

Objet*

Error Description

Page URL

Screenshots Attach files   Each of your file(s) can be up to 20MB in size.You can attach as many as 5 files at a time.