Lister les assistants
curl --request GET \
--url https://app.famulor.de/api/user/assistants/getimport requests
url = "https://app.famulor.de/api/user/assistants/get"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://app.famulor.de/api/user/assistants/get', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/assistants/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.famulor.de/api/user/assistants/get"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.famulor.de/api/user/assistants/get")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/assistants/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"user_id": 456,
"phone_number_id": 789,
"engine_id": 1,
"synthesizer_id": 2,
"transcriber_id": 3,
"voice_id": 4,
"instance_id": 5,
"name": "Sales Assistant",
"variables": {
"company_name": "Famulor",
"product_focus": "AI Telephony"
},
"post_call_evaluation": true,
"fillers": 1,
"post_call_schema": [
{
"name": "customer_interested",
"type": "boolean",
"description": "Is the customer interested?"
}
],
"tools": [
{
"type": "end_call",
"data": {
"description": "End call when done"
}
},
{
"type": "assistant_transfer",
"data": {
"description": "Transfer to the Support Assistant when the customer needs technical help.",
"assistant_id": 13766,
"message_before_transfer": "Sure — let me transfer you to our support specialist.",
"speak_transfer_greeting": true
}
},
{
"type": "warm_call_transfer",
"data": {
"supervisor_phone": "+14155552001",
"outbound_phone_id": "7",
"description": "Transfer the call to a human supervisor when the customer requests to speak with a real person.",
"custom_sip": false,
"caller_id_mode": "outbound_number",
"hold_music": "hold_music",
"hold_music_volume": 80,
"hold_message": "Please hold while I connect you with a supervisor.",
"summary_instructions": "Introduce the conversation from your perspective:\n- WHO is calling (name, company if mentioned)\n- WHY they called (their goal or problem)\n- WHY a human is needed at this point\n\nKeep it brief (2-3 sentences).",
"briefing_initial_message": "Hello! I have a caller on the line who needs your assistance. May I brief you on the situation?",
"connected_message": "You are now connected with a supervisor. I'll leave you to it."
}
}
],
"is_webhook_active": true,
"webhook_url": "https://example.com/webhook",
"inbound_webhook_url": "https://example.com/inbound-webhook",
"language": "de",
"type": "outbound",
"status": "active",
"max_duration": 1800,
"record": true,
"initial_message": "Good day! I'm calling from Famulor...",
"system_prompt": "You are a friendly sales assistant...",
"flows_platform_id": null,
"timezone": "Europe/Berlin",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z",
"max_silence_duration": 3,
"reengagement_interval": 5,
"deleted_at": null,
"end_call_on_voicemail": 1,
"llm_temperature": "0.7",
"voice_stability": "0.8",
"voice_similarity": "0.9",
"allow_interruptions": true,
"enable_noise_cancellation": true,
"endpoint_sensitivity": 0.5,
"speech_speed": "1.0",
"endpoint_type": "vad",
"wait_for_customer": false,
"mode": "pipeline",
"language_id": 1,
"transcriber_provider_id": 1,
"synthesizer_provider_id": 1,
"llm_model_id": 1,
"multimodal_model_id": null,
"ambient_sound": "office",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"send_webhook_only_on_completed": true,
"include_recording_in_webhook": false,
"interrupt_sensitivity": 0.3,
"filler_config": {
"enabled": true,
"phrases": ["Hmm...", "I understand..."]
},
"knowledgebase_id": 100,
"knowledgebase_mode": "semantic",
"min_interrupt_words": 2,
"ambient_sound_volume": "0.3",
"widget_settings": {
"enabled": false
}
}
],
"current_page": 1,
"per_page": 10,
"total": 1,
"last_page": 1
}
Assistants IA
Lister les assistants
Lister tous les assistants de l’utilisateur authentifié avec pagination
GET
/
api
/
user
/
assistants
/
get
Lister les assistants
curl --request GET \
--url https://app.famulor.de/api/user/assistants/getimport requests
url = "https://app.famulor.de/api/user/assistants/get"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://app.famulor.de/api/user/assistants/get', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/assistants/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.famulor.de/api/user/assistants/get"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.famulor.de/api/user/assistants/get")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/assistants/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"user_id": 456,
"phone_number_id": 789,
"engine_id": 1,
"synthesizer_id": 2,
"transcriber_id": 3,
"voice_id": 4,
"instance_id": 5,
"name": "Sales Assistant",
"variables": {
"company_name": "Famulor",
"product_focus": "AI Telephony"
},
"post_call_evaluation": true,
"fillers": 1,
"post_call_schema": [
{
"name": "customer_interested",
"type": "boolean",
"description": "Is the customer interested?"
}
],
"tools": [
{
"type": "end_call",
"data": {
"description": "End call when done"
}
},
{
"type": "assistant_transfer",
"data": {
"description": "Transfer to the Support Assistant when the customer needs technical help.",
"assistant_id": 13766,
"message_before_transfer": "Sure — let me transfer you to our support specialist.",
"speak_transfer_greeting": true
}
},
{
"type": "warm_call_transfer",
"data": {
"supervisor_phone": "+14155552001",
"outbound_phone_id": "7",
"description": "Transfer the call to a human supervisor when the customer requests to speak with a real person.",
"custom_sip": false,
"caller_id_mode": "outbound_number",
"hold_music": "hold_music",
"hold_music_volume": 80,
"hold_message": "Please hold while I connect you with a supervisor.",
"summary_instructions": "Introduce the conversation from your perspective:\n- WHO is calling (name, company if mentioned)\n- WHY they called (their goal or problem)\n- WHY a human is needed at this point\n\nKeep it brief (2-3 sentences).",
"briefing_initial_message": "Hello! I have a caller on the line who needs your assistance. May I brief you on the situation?",
"connected_message": "You are now connected with a supervisor. I'll leave you to it."
}
}
],
"is_webhook_active": true,
"webhook_url": "https://example.com/webhook",
"inbound_webhook_url": "https://example.com/inbound-webhook",
"language": "de",
"type": "outbound",
"status": "active",
"max_duration": 1800,
"record": true,
"initial_message": "Good day! I'm calling from Famulor...",
"system_prompt": "You are a friendly sales assistant...",
"flows_platform_id": null,
"timezone": "Europe/Berlin",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z",
"max_silence_duration": 3,
"reengagement_interval": 5,
"deleted_at": null,
"end_call_on_voicemail": 1,
"llm_temperature": "0.7",
"voice_stability": "0.8",
"voice_similarity": "0.9",
"allow_interruptions": true,
"enable_noise_cancellation": true,
"endpoint_sensitivity": 0.5,
"speech_speed": "1.0",
"endpoint_type": "vad",
"wait_for_customer": false,
"mode": "pipeline",
"language_id": 1,
"transcriber_provider_id": 1,
"synthesizer_provider_id": 1,
"llm_model_id": 1,
"multimodal_model_id": null,
"ambient_sound": "office",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"send_webhook_only_on_completed": true,
"include_recording_in_webhook": false,
"interrupt_sensitivity": 0.3,
"filler_config": {
"enabled": true,
"phrases": ["Hmm...", "I understand..."]
},
"knowledgebase_id": 100,
"knowledgebase_mode": "semantic",
"min_interrupt_words": 2,
"ambient_sound_volume": "0.3",
"widget_settings": {
"enabled": false
}
}
],
"current_page": 1,
"per_page": 10,
"total": 1,
"last_page": 1
}
API Famulor 1.0 (héritée). Cette page concerne uniquement Famulor 1.0 (
app.famulor.de) et est conservée pour la compatibilité. Pour la plateforme actuelle, consultez la référence API Famulor 2.0.Paramètres de requête
integer
Nombre d’assistants par page (1 à 100, par défaut : 10)
integer
Numéro de page (par défaut : 1)
Champs de réponse
array
Tableau d’assistants
Afficher Propriétés de l’assistant
Afficher Propriétés de l’assistant
integer
L’identifiant unique de l’assistant
integer
L’ID de l’utilisateur propriétaire de cet assistant
integer
L’ID du numéro de téléphone attribué à l’assistant
integer
ID du moteur
integer
ID du synthétiseur
integer
ID du transcripteur
integer
L’ID de la voix utilisée par l’assistant
integer
L’ID d’instance de l’assistant
string
Le nom de l’assistant
object
Variables personnalisées de l’assistant
boolean
Indique si l’évaluation post-appel est activée
integer
Indique si l’audio de remplissage est activé (1 = activé, 0 = désactivé)
array
Définition du schéma pour l’extraction des données post-appel
array
Tableau des outils intégrés configurés sur l’assistant. Chaque élément comporte
type (identifiant de l’outil) et data (paramètres spécifiques à l’outil). Cette forme de réponse diffère de l’objet à plat utilisé dans les requêtes Create et Update.Afficher Forme d’un élément de la réponse
Afficher Forme d’un élément de la réponse
type— par ex.end_call,call_transfer,warm_call_transfer,dtmf_input,collect_keypad,calendar_integration,assistant_transferdata— objet contenant les champs de configuration de l’outil (mêmes noms que dans le corps de la requête, mais imbriqués sousdataplutôt qu’au premier niveau)
boolean
Indique si les notifications webhook sont activées
string
L’URL du webhook pour les notifications post-appel
string
L’URL du webhook pour les notifications d’appels entrants
string
Langue
string
Le type d’assistant (entrant ou sortant)
string
Le statut actuel de l’assistant (actif ou inactif)
integer
Durée maximale de l’appel en secondes
boolean
Indique si les appels doivent être enregistrés
string
Le premier message que l’assistant prononcera
string
Le prompt système qui définit le comportement de l’assistant
integer
ID pour l’intégration avec la plateforme Flows
string
Le fuseau horaire configuré pour l’assistant
string
Date et heure de création de l’assistant
string
Date et heure de la dernière mise à jour de l’assistant
integer
Durée maximale de silence en secondes avant relance
integer
Intervalle de relance en secondes
string
Horodatage de suppression douce (null si non supprimé)
integer
Indique si l’appel doit se terminer lors de la détection d’une messagerie vocale (1 = oui, 0 = non)
string
Paramètre de température du LLM sous forme de chaîne
string
Paramètre de stabilité de la voix sous forme de chaîne
string
Paramètre de similarité de la voix sous forme de chaîne
boolean
Indique si les interruptions par l’appelant sont autorisées
boolean
Indique si la suppression du bruit est activée
number
Niveau de sensibilité de fin de parole
string
Multiplicateur de vitesse de parole sous forme de chaîne
string
Type de détection d’activité vocale (vad ou ai)
boolean
Indique s’il faut attendre la première prise de parole du client
string
Le mode du moteur (pipeline ou multimodal)
integer
L’ID de la langue utilisée par l’assistant
integer
ID du fournisseur de transcription
integer
ID du fournisseur de synthèse vocale
integer
ID du modèle LLM utilisé
integer
ID du modèle multimodal utilisé
string
Paramètre de son d’ambiance
string
UUID unique de l’assistant
boolean
Indique si les webhooks sont envoyés uniquement pour les appels terminés
boolean
Indique si l’URL de l’enregistrement doit être incluse dans la charge utile du webhook
number
Niveau de sensibilité aux interruptions
object
Configuration des réponses audio de remplissage
integer
ID de la base de connaissances associée
string
Paramètre de mode de la base de connaissances
integer
Nombre minimum de mots avant que l’interruption soit autorisée
string
Volume du son d’ambiance sous forme de chaîne
object
Paramètres pour l’intégration du widget web
integer
Durée de sonnerie en secondes avant la fin de l’appel
integer
Durée maximale de silence initial en secondes
integer
Le numéro de page actuel
integer
Nombre d’éléments par page
integer
Nombre total d’assistants
integer
Le numéro de la dernière page
{
"data": [
{
"id": 123,
"user_id": 456,
"phone_number_id": 789,
"engine_id": 1,
"synthesizer_id": 2,
"transcriber_id": 3,
"voice_id": 4,
"instance_id": 5,
"name": "Sales Assistant",
"variables": {
"company_name": "Famulor",
"product_focus": "AI Telephony"
},
"post_call_evaluation": true,
"fillers": 1,
"post_call_schema": [
{
"name": "customer_interested",
"type": "boolean",
"description": "Is the customer interested?"
}
],
"tools": [
{
"type": "end_call",
"data": {
"description": "End call when done"
}
},
{
"type": "assistant_transfer",
"data": {
"description": "Transfer to the Support Assistant when the customer needs technical help.",
"assistant_id": 13766,
"message_before_transfer": "Sure — let me transfer you to our support specialist.",
"speak_transfer_greeting": true
}
},
{
"type": "warm_call_transfer",
"data": {
"supervisor_phone": "+14155552001",
"outbound_phone_id": "7",
"description": "Transfer the call to a human supervisor when the customer requests to speak with a real person.",
"custom_sip": false,
"caller_id_mode": "outbound_number",
"hold_music": "hold_music",
"hold_music_volume": 80,
"hold_message": "Please hold while I connect you with a supervisor.",
"summary_instructions": "Introduce the conversation from your perspective:\n- WHO is calling (name, company if mentioned)\n- WHY they called (their goal or problem)\n- WHY a human is needed at this point\n\nKeep it brief (2-3 sentences).",
"briefing_initial_message": "Hello! I have a caller on the line who needs your assistance. May I brief you on the situation?",
"connected_message": "You are now connected with a supervisor. I'll leave you to it."
}
}
],
"is_webhook_active": true,
"webhook_url": "https://example.com/webhook",
"inbound_webhook_url": "https://example.com/inbound-webhook",
"language": "de",
"type": "outbound",
"status": "active",
"max_duration": 1800,
"record": true,
"initial_message": "Good day! I'm calling from Famulor...",
"system_prompt": "You are a friendly sales assistant...",
"flows_platform_id": null,
"timezone": "Europe/Berlin",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z",
"max_silence_duration": 3,
"reengagement_interval": 5,
"deleted_at": null,
"end_call_on_voicemail": 1,
"llm_temperature": "0.7",
"voice_stability": "0.8",
"voice_similarity": "0.9",
"allow_interruptions": true,
"enable_noise_cancellation": true,
"endpoint_sensitivity": 0.5,
"speech_speed": "1.0",
"endpoint_type": "vad",
"wait_for_customer": false,
"mode": "pipeline",
"language_id": 1,
"transcriber_provider_id": 1,
"synthesizer_provider_id": 1,
"llm_model_id": 1,
"multimodal_model_id": null,
"ambient_sound": "office",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"send_webhook_only_on_completed": true,
"include_recording_in_webhook": false,
"interrupt_sensitivity": 0.3,
"filler_config": {
"enabled": true,
"phrases": ["Hmm...", "I understand..."]
},
"knowledgebase_id": 100,
"knowledgebase_mode": "semantic",
"min_interrupt_words": 2,
"ambient_sound_volume": "0.3",
"widget_settings": {
"enabled": false
}
}
],
"current_page": 1,
"per_page": 10,
"total": 1,
"last_page": 1
}
Pages associées : Introduction et Guide d’authentification, et Exemples d’intégration API.