Your AI Connector Docs

API des tâches

Les tâches sont les éléments à faire et les suivis associés à votre compte — éventuellement liés à un contact, une affaire ou une campagne. Elles progressent à travers les étapes de votre tableau de tâches (vos colonnes kanban) et possèdent un type et une priorité. Ce guide explique comment les gérer via l’API.

Tous les exemples ci-dessous utilisent le format de requête ?apiKey= en cURL et l’en-tête X-API-Key en JavaScript et Python — les deux fonctionnent sur chaque point de terminaison.


L’objet tâche

{
  "id": "tsk_abc123",
  "title": "Call Jane about her quote",
  "description": "She asked for pricing on the annual plan.",
  "type": "to_do",
  "priority": "high",
  "stage": "stage-1",
  "due_date": "2026-06-15T09:00:00.000Z",
  "remind_before_minutes": 15,
  "contact": "contacts/uid_whatsapp_15551234567",
  "campaign": "campaigns/abc123",
  "tags": ["sales"],
  "notes": "",
  "source": "api"
}
  • typeto_do, faq_update ou vos types de tâches configurés (voir Lister les types de tâches).
  • prioritynone, low, normal, high ou urgent.
  • stage — l’identifiant d’une étape sur votre tableau de tâches (voir Lister les étapes de tâche). Si omis lors de la création, la tâche est placée dans votre première étape.
  • remind_before_minutes — nombre de minutes avant due_date pour envoyer un rappel. 0 signifie à l’heure d’échéance ; omettez-le ou envoyez null pour aucun rappel. Doit être un nombre entier compris entre 0 et 1440 (1 jour) — toute valeur supérieure sera rejetée. Le rappel nécessite un due_date pour se déclencher, et la reprogrammation de la tâche déplace le rappel avec elle.

Créer une tâche

POST /tasks — seul title est requis.

Remarque : due_date accepte un horodatage ISO 8601, incluant une heure de la journée. Associez-le à remind_before_minutes pour que le rappel soit envoyé selon vos paramètres de notification Tâches. contact_id, deal_id et campaign_id lient la tâche à ces enregistrements. assigned_to est l’identifiant utilisateur d’un membre de l’équipe.

Bien configurer assigned_to. Il doit s’agir de l’identifiant utilisateur du propriétaire du compte ou d’un membre actif de l’équipe sur le même compte. Ce point de terminaison ne le vérifie pas actuellement, donc un identifiant n’appartenant à personne est accepté et stocké exactement tel que vous l’avez envoyé — vous recevez tout de même un 201. Copiez l’identifiant plutôt que de le retaper : ces identifiants mélangent l avec L et la lettre O avec le chiffre 0, et un seul caractère erroné suffit. Pour vérifier ce que vous avez réellement envoyé, ouvrez la tâche dans le tableau de bord : le champ Assigné sur l’enregistrement de la tâche affiche l’identifiant brut lorsqu’il ne correspond à personne, et le sélecteur d’assigné dans Modifier la tâche indique Non assigné.

cURL

curl -X POST "https://api.youraiconnector.com/v1/tasks?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Call Jane about her quote",
    "priority": "high",
    "due_date": "2026-06-15T09:00:00.000Z",
    "contact_id": "uid_whatsapp_15551234567",
    "tags": ["sales"]
  }'

JavaScript

const res = await fetch("https://api.youraiconnector.com/v1/tasks", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    title: "Call Jane about her quote",
    priority: "high",
    due_date: "2026-06-15T09:00:00.000Z",
    contact_id: "uid_whatsapp_15551234567",
    tags: ["sales"],
  }),
});
const data = await res.json();
console.log(data.task_id);

Python

import requests

res = requests.post(
    "https://api.youraiconnector.com/v1/tasks",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "title": "Call Jane about her quote",
        "priority": "high",
        "due_date": "2026-06-15T09:00:00.000Z",
        "contact_id": "uid_whatsapp_15551234567",
        "tags": ["sales"],
    },
)
print(res.json()["task_id"])

Réponse (201)

{ "success": true, "task_id": "tsk_abc123", "task": { "title": "Call Jane about her quote", "...": "..." } }

Lister les tâches

GET /tasks — renvoie les tâches de votre compte, avec des filtres optionnels.

Paramètres de requête (tous facultatifs) : stage, priority, contact_id, deal_id, assigned_to, due_before, due_after (horodatages ISO).

cURL

curl "https://api.youraiconnector.com/v1/tasks?apiKey=YOUR_API_KEY&stage=stage-1&priority=high"

JavaScript

const res = await fetch("https://api.youraiconnector.com/v1/tasks?stage=stage-1&priority=high", {
  headers: { "X-API-Key": "YOUR_API_KEY" },
});
const { tasks } = await res.json();

Python

res = requests.get(
    "https://api.youraiconnector.com/v1/tasks",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={"stage": "stage-1", "priority": "high"},
)
tasks = res.json()["tasks"]

Réponse (200)

{ "success": true, "tasks": [{ "id": "tsk_abc123", "title": "Call Jane about her quote", "...": "..." }] }

Rechercher des tâches

POST /tasks/search — recherche en texte intégral sur le titre et la description, avec les mêmes filtres facultatifs que pour la liste.

curl -X POST "https://api.youraiconnector.com/v1/tasks/search?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "quote", "priority": "high" }'
const res = await fetch("https://api.youraiconnector.com/v1/tasks/search", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ query: "quote", priority: "high" }),
});
res = requests.post(
    "https://api.youraiconnector.com/v1/tasks/search",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={"query": "quote", "priority": "high"},
)

Obtenir une tâche

GET /tasks/{taskId}

curl "https://api.youraiconnector.com/v1/tasks/tsk_abc123?apiKey=YOUR_API_KEY"
const res = await fetch("https://api.youraiconnector.com/v1/tasks/tsk_abc123", { headers: { "X-API-Key": "YOUR_API_KEY" } });
res = requests.get("https://api.youraiconnector.com/v1/tasks/tsk_abc123", headers={"X-API-Key": "YOUR_API_KEY"})

Une tâche qui n’existe pas sur votre compte renvoie 404.


Mettre à jour une tâche

PUT /tasks/{taskId} — envoyez uniquement les champs que vous souhaitez modifier (title, description, type, priority, stage, due_date, remind_before_minutes, contact_id, deal_id, assigned_to, tags, notes).

curl -X PUT "https://api.youraiconnector.com/v1/tasks/tsk_abc123?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "priority": "urgent", "notes": "Left a voicemail." }'
await fetch("https://api.youraiconnector.com/v1/tasks/tsk_abc123", {
  method: "PUT",
  headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ priority: "urgent", notes: "Left a voicemail." }),
});
requests.put(
    "https://api.youraiconnector.com/v1/tasks/tsk_abc123",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={"priority": "urgent", "notes": "Left a voicemail."},
)

Terminer une tâche

POST /tasks/{taskId}/complete — déplace la tâche vers l’étape terminée de votre tableau. Un champ facultatif notes permet d’enregistrer une note de clôture.

curl -X POST "https://api.youraiconnector.com/v1/tasks/tsk_abc123/complete?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "notes": "Closed — customer signed up." }'
await fetch("https://api.youraiconnector.com/v1/tasks/tsk_abc123/complete", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ notes: "Closed — customer signed up." }),
});
requests.post(
    "https://api.youraiconnector.com/v1/tasks/tsk_abc123/complete",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={"notes": "Closed — customer signed up."},
)

Déplacer et réorganiser (kanban)

Déplacer une tâche vers une autre étapePOST /tasks/{taskId}/move avec new_stage_id (l’étape de destination) et new_position (la position basée sur zéro au sein de cette étape ; obligatoire, doit être un entier non négatif) :

curl -X POST "https://api.youraiconnector.com/v1/tasks/tsk_abc123/move?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "new_stage_id": "stage-2", "new_position": 0 }'

Réorganiser les tâches au sein d’une étapePOST /tasks/reorder avec stage_id et les identifiants des tâches dans leur nouvel ordre :

curl -X POST "https://api.youraiconnector.com/v1/tasks/reorder?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "stage_id": "stage-1", "ordered_task_ids": ["tsk_3", "tsk_1", "tsk_2"] }'
await fetch("https://api.youraiconnector.com/v1/tasks/reorder", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ stage_id: "stage-1", ordered_task_ids: ["tsk_3", "tsk_1", "tsk_2"] }),
});
requests.post(
    "https://api.youraiconnector.com/v1/tasks/reorder",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={"stage_id": "stage-1", "ordered_task_ids": ["tsk_3", "tsk_1", "tsk_2"]},
)

Tâches pour un contact

GET /tasks/contact/{contactId} — chaque tâche liée à un contact.

curl "https://api.youraiconnector.com/v1/tasks/contact/uid_whatsapp_15551234567?apiKey=YOUR_API_KEY"
const res = await fetch("https://api.youraiconnector.com/v1/tasks/contact/uid_whatsapp_15551234567", { headers: { "X-API-Key": "YOUR_API_KEY" } });
res = requests.get("https://api.youraiconnector.com/v1/tasks/contact/uid_whatsapp_15551234567", headers={"X-API-Key": "YOUR_API_KEY"})

Configuration du tableau des tâches

Lister les étapes des tâches

GET /tasks/stages — les colonnes de votre tableau, dans l’ordre. Utilisez un id d’étape comme champ stage lors de la création ou du déplacement de tâches.

curl "https://api.youraiconnector.com/v1/tasks/stages?apiKey=YOUR_API_KEY"
{ "success": true, "stages": [{ "id": "stage-1", "name": "To Do", "is_completed_stage": false }, { "id": "stage-done", "name": "Done", "is_completed_stage": true }] }

Mettre à jour les étapes des tâches

PUT /tasks/stages — remplacez la configuration des étapes de votre tableau. Envoyez le tableau stages complet et ordonné.

curl -X PUT "https://api.youraiconnector.com/v1/tasks/stages?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "stages": [
    { "id": "stage-1", "name": "To Do", "is_completed_stage": false },
    { "id": "stage-2", "name": "In Progress", "is_completed_stage": false },
    { "id": "stage-done", "name": "Done", "is_completed_stage": true }
  ] }'

Lister les types de tâches

GET /tasks/types — les types de tâches configurés sur votre compte (utilisés comme champ type).

curl "https://api.youraiconnector.com/v1/tasks/types?apiKey=YOUR_API_KEY"

Approuver une suggestion de FAQ

Lorsque le bot IA propose une nouvelle FAQ, il crée une tâche de type faq_update. POST /tasks/{taskId}/approve-faq transforme cette suggestion en une véritable FAQ dans la base de connaissances de l’agent IA qui l’a soulevée et termine la tâche. Vous pouvez remplacer la question/réponse dans le corps du texte.

Ajoutez "send_follow_up": true pour que l’IA envoie également la réponse au contact lié à la tâche immédiatement, sous forme de message naturel dans cette discussion (la même chose que fait le bouton bascule Envoyer la réponse au contact maintenant dans l’application). La réponse est envoyée via l’agent IA qui gère ce contact.

curl -X POST "https://api.youraiconnector.com/v1/tasks/tsk_faq99/approve-faq?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "question": "Do you offer refunds?", "answer": "Yes, within 30 days.", "send_follow_up": true }'
{ "success": true, "faq_id": "faq_xyz", "task_id": "tsk_faq99", "follow_up_status": "published" }

follow_up_status vous indique ce qui est arrivé au message : not_requested (indicateur non défini), published (envoyé), queued (le bot était en train de répondre à ce contact, la réponse est envoyée dès qu’il a terminé), skipped_no_contact (la tâche n’a aucun contact lié), skipped_no_campaign (aucun agent ou campagne n’a pu répondre pour ce contact) ou skipped_error. La FAQ est créée dans tous les cas.

Consultez l’API FAQ pour gérer la FAQ résultante.


Supprimer une tâche

DELETE /tasks/{taskId}

curl -X DELETE "https://api.youraiconnector.com/v1/tasks/tsk_abc123?apiKey=YOUR_API_KEY"
await fetch("https://api.youraiconnector.com/v1/tasks/tsk_abc123", { method: "DELETE", headers: { "X-API-Key": "YOUR_API_KEY" } });
requests.delete("https://api.youraiconnector.com/v1/tasks/tsk_abc123", headers={"X-API-Key": "YOUR_API_KEY"})

Étapes suivantes