Aller au contenu
Menu

Rechercher sur le site

Tape pour chercher dans les guides, le blog, l'API et le produit.

↑ ↓ pour naviguer · Entrée pour ouvrir · Échap pour fermer

Référence de l'API

API

Activités

Gérez les conversations et les interactions avec les contacts

Voir en Markdown

Les activités représentent les conversations entre votre agent et les contacts. Chaque activité suit une conversation sur un ou plusieurs canaux, avec son statut, ses étiquettes et son attribution.

MéthodeCheminDescription
GET/v1/activitiesLister les activités
GET/v1/activities/:idObtenir le détail d'une activité
PATCH/v1/activities/:idMettre à jour une activité
POST/v1/activities/:id/tagsAjouter des étiquettes à une activité
DELETE/v1/activities/:id/tags?tag_id=XRetirer une étiquette d'une activité

L'endpoint de liste accepte les paramètres de requête suivants :

ParamètreTypeDescription
limitnumberRésultats par page (par défaut : 20, max : 100)
offsetnumberNombre de résultats à sauter (par défaut : 0)
statusstringFiltrer par statut : open, closed, pending
tagstringFiltrer par ID d'étiquette
searchstringRechercher par nom du contact ou numéro de téléphone

Lister les activités

GET/v1/activities
curl "https://rest-api.tbit.app/v1/activities?limit=20&offset=0&status=open" \
  -H "X-API-Key: $TBIT_API_KEY"
const response = await fetch('https://rest-api.tbit.app/v1/activities?limit=20&offset=0&status=open', {
  headers: {
    'X-API-Key': process.env.TBIT_API_KEY,
  },
});
const data = await response.json();
import axios from 'axios';

const { data } = await axios.get(
  'https://rest-api.tbit.app/v1/activities?limit=20&offset=0&status=open',
  {
    headers: {
      'X-API-Key': process.env.TBIT_API_KEY,
    },
  },
);
import os
import requests

response = requests.get(
    'https://rest-api.tbit.app/v1/activities?limit=20&offset=0&status=open',
    headers={'X-API-Key': os.environ['TBIT_API_KEY']},
)
data = response.json()
<?php
$ch = curl_init('https://rest-api.tbit.app/v1/activities?limit=20&offset=0&status=open');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-API-Key: ' . getenv('TBIT_API_KEY'),
    ],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
GET/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1
curl "https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1" \
  -H "X-API-Key: $TBIT_API_KEY"
const response = await fetch('https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1', {
  headers: {
    'X-API-Key': process.env.TBIT_API_KEY,
  },
});
const data = await response.json();
import axios from 'axios';

const { data } = await axios.get(
  'https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1',
  {
    headers: {
      'X-API-Key': process.env.TBIT_API_KEY,
    },
  },
);
import os
import requests

response = requests.get(
    'https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1',
    headers={'X-API-Key': os.environ['TBIT_API_KEY']},
)
data = response.json()
<?php
$ch = curl_init('https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-API-Key: ' . getenv('TBIT_API_KEY'),
    ],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
PATCH/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1
curl -X PATCH "https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1" \
  -H "X-API-Key: $TBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "closed",
    "assigned_to": "agent_user_id",
    "profile_name": "John Doe"
  }'
const response = await fetch('https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1', {
  method: 'PATCH',
  headers: {
    'X-API-Key': process.env.TBIT_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    status: 'closed',
    assigned_to: 'agent_user_id',
    profile_name: 'John Doe',
  }),
});
const data = await response.json();
import axios from 'axios';

const { data } = await axios.patch(
  'https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1',
  {
    status: 'closed',
    assigned_to: 'agent_user_id',
    profile_name: 'John Doe',
  },
  {
    headers: {
      'X-API-Key': process.env.TBIT_API_KEY,
    },
  },
);
import os
import requests

response = requests.patch(
    'https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1',
    headers={'X-API-Key': os.environ['TBIT_API_KEY']},
    json={
        'status': 'closed',
        'assigned_to': 'agent_user_id',
        'profile_name': 'John Doe',
    },
)
data = response.json()
<?php
$ch = curl_init('https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'PATCH',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-API-Key: ' . getenv('TBIT_API_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'status' => 'closed',
        'assigned_to' => 'agent_user_id',
        'profile_name' => 'John Doe',
    ]),
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
POST/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags
curl -X POST "https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags" \
  -H "X-API-Key: $TBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tag_ids": [
      "tag_id_1",
      "tag_id_2"
    ]
  }'
const response = await fetch('https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.TBIT_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    tag_ids: [
      'tag_id_1',
      'tag_id_2',
    ],
  }),
});
const data = await response.json();
import axios from 'axios';

const { data } = await axios.post(
  'https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags',
  {
    tag_ids: [
      'tag_id_1',
      'tag_id_2',
    ],
  },
  {
    headers: {
      'X-API-Key': process.env.TBIT_API_KEY,
    },
  },
);
import os
import requests

response = requests.post(
    'https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags',
    headers={'X-API-Key': os.environ['TBIT_API_KEY']},
    json={
        'tag_ids': [
            'tag_id_1',
            'tag_id_2',
        ],
    },
)
data = response.json()
<?php
$ch = curl_init('https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-API-Key: ' . getenv('TBIT_API_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'tag_ids' => [
            'tag_id_1',
            'tag_id_2',
        ],
    ]),
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
DELETE/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags
curl -X DELETE "https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags?tag_id=tag_id_1" \
  -H "X-API-Key: $TBIT_API_KEY"
const response = await fetch('https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags?tag_id=tag_id_1', {
  method: 'DELETE',
  headers: {
    'X-API-Key': process.env.TBIT_API_KEY,
  },
});
const data = await response.json();
import axios from 'axios';

const { data } = await axios.delete(
  'https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags?tag_id=tag_id_1',
  {
    headers: {
      'X-API-Key': process.env.TBIT_API_KEY,
    },
  },
);
import os
import requests

response = requests.delete(
    'https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags?tag_id=tag_id_1',
    headers={'X-API-Key': os.environ['TBIT_API_KEY']},
)
data = response.json()
<?php
$ch = curl_init('https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags?tag_id=tag_id_1');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'DELETE',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-API-Key: ' . getenv('TBIT_API_KEY'),
    ],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);

Les endpoints de liste renvoient des résultats paginés :

json
{
  "data": [
    {
      "id": "64f1a2b3c4d5e6f7a8b9c0d1",
      "status": "open",
      "profile_name": "John Doe",
      "channel_identifiers": ["573001234567"],
      "tags": [
        { "id": "tag_1", "name": "VIP", "color": "#ef4444" }
      ],
      "assigned_to": null,
      "created_at": "2024-09-01T12:00:00Z",
      "updated_at": "2024-09-01T14:30:00Z"
    }
  ],
  "pagination": {
    "total": 100,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}