Hanki paikallisia, kansallisia ja kansainvälisiä numeroita suoraan verkosta.
🤖 AI-valmis IVR

IVR toolkit

Rakenna täysin räätälöityjä puhelukuluja ja automatisoi jokainen asiakasvuorovaikutuksen vaihe tehokkaalla IVR-toimintojen työkalupakillamme.

Käytä yksinkertaisia komentoja äänitiedostojen toistamiseen, numeroiden keräämiseen, soittajien yhdistämiseen, logiikan käynnistämiseen, äänen suoratoistoon tekoälyjärjestelmiin ja muuhun - kaikki nykyisen puhelinjärjestelmäsi sisällä.

  • Integroi tekoäly, automaatio tai mukautettu taustajärjestelmälogiikka
  • Rakenna täydellisiä IVR-kulkuja ilman lisälaitteita
  • Hallitse puheluiden käyttäytymistä tarkoilla komennoilla

IVR-työkalupakin edut

Tutustu siihen, miten ominaisuutemme auttavat sinua työskentelemään fiksummin, säästämään aikaa ja parantamaan yrityksesi viestintää.

🧩

Joustava puheluautomaatio

Määritä tarkalleen, miten kunkin puhelun tulisi käyttäytyä. Toista kehotteita, kerää syötteitä, reititä soittajia tai suorita ehdollista logiikkaa - kaikki yhdestä selkeästä, kehittäjäystävällisestä työkalupakista.

⚙️

Suunniteltu kehitystiimeille

Käytä strukturoituja toimintoja, jotka sopivat luonnollisesti taustajärjestelmälogiikkaasi. Jokaisella toiminnolla on ennustettavat tulokset, virheenkäsittely ja esimerkkejä, jotka auttavat sinua rakentamaan itsevarmasti.

🔧

Toimii nykyisen järjestelmäsi kanssa

Uutta infrastruktuuria ei tarvita. Käytä Callfactory-numeroasi ja yksinkertaisesti laajenna puhelulogiikkaasi API:n, skriptiesi tai sisäisten automaatiotyökalujen avulla.

IVR-toimintojen työkalupakki

Napsauta toimintoa nähdäksesi sen kuvauksen, allekirjoituksen ja esimerkkejä.

Vastaa saapuvaan puheluun. On kutsuttava ennen äänen toistamista tai syötteen keräämistä saapuvassa puhelussa.

Description

  • Merkitsee puhelun vastatuksi puhelinjärjestelmän puolella.
  • Vaaditaan ennen toimintojen, kuten Play, PromptDigit, GatherDigits, Dial, Record, jne., käyttöä saapuvissa puheluissa.

Throws

  • InvalidOperationException - jos puheluun on jo vastattu.

Signature

void Answer();

Example

protected override async Task 
HandleCallAsync(CancellationToken ct)
{
    // Vastaa aina ensin saapuviin puheluihin
    Answer();

    await Play("welcome.wav", ct);
}

Toistaa äänitiedoston soittajalle tai lähtevälle kanavalle.

Description

  • Toistaa äänitiedoston (esim. .wav), joka sijaitsee palvelimen äänitiedostohakemistossa.
  • Voi kohdistaa saapuvaan soittajaan tai tiettyyn OutboundChannel-kanavaan.

Parameters

  • audioFile - Tiedostonimi/-polku suhteessa IVR-äänihakemistoon.
  • channel - (valinnainen) Lähtevä kanava, jolle ääni toistetaan.
  • ct - Cancellation token; peruutetaan, kun soittaja tai kanava katkaisee yhteyden.

Returns

  • PlayResult.Success - Ääni toistettu kokonaan.
  • PlayResult.Fail - Toisto epäonnistui (esim. virheellinen tiedosto).
  • PlayResult.Cancel - Toiminto peruutettu (esim. soittaja sulki puhelun).
  • PlayResult.Error - Odottamaton virhe toiston aikana.

Throws

  • OperationCanceledException - Jos ct peruutetaan toiston aikana.
  • Muut siirto-/IO-poikkeukset toteutuksesta riippuen.

Signatures

Task<PlayResult> Play(
    string audioFile,
    CancellationToken ct = default);

Task<PlayResult> Play(
    string audioFile,
    OutboundChannel channel,
    CancellationToken ct = default);

Example

protected override async Task HandleCallAsync(CancellationToken ct)
{
    Answer();
    var result = await Play("welcome.wav", ct);

    if (result != PlayResult.Success)
    {
        Logger.LogWarning("Tervetuloviestin toistaminen epäonnistui (Tulos:
        {Result})", result); return;
    }

    await Play("next_prompt.wav", ct);
}

Toistaa äänikehotteen ja kerää yhden DTMF-numeron.

Description

  • Toistaa valikkokehotteen (esim. ‘Paina 1 myyntiin, 2 tukeen, 3 jättääksesi viestin’).
  • Odottaa yhtä DTMF-numeroa: 0-9, *, tai #.
  • Tarkoitettu päävalikon valintoihin.

Parameters

  • audioFile - Kehotetiedosto toistettavaksi.
  • timeoutSeconds - Kuinka kauan odottaa numeroa (oletus 10).
  • ct - Cancellation token; peruutettu, kun soittaja katkaisee yhteyden.

Returns

  • MenuResult.Success Digit-arvolla, kun numero vastaanotetaan.
  • MenuResult.Timeout, kun numeroa ei vastaanoteta timeoutSeconds aikana.
  • MenuResult.Cancel, kun toiminto peruutetaan.

Throws

  • OperationCanceledException - Jos ct peruutetaan (esim. soittaja sulkee puhelun).

Signatures

Task<(MenuResult Result, char? Digit)> PromptDigit(
    string audioFile,
    int timeoutSeconds = 10,
    CancellationToken ct = default);

Example

protected override async Task HandleCallAsync(CancellationToken ct)
{
    Answer();
    await Play("welcome.wav", ct);

    var (menuResult, digit) = await PromptDigit(
        "main_menu.wav",
        timeoutSeconds: 10,
        ct);

    if (menuResult == MenuResult.Success && digit.HasValue)
    {
        switch (digit.Value)
        {
            case '1':
                await HandleSales(ct);
                break;
            case '2':
                await HandleSupport(ct);
                break;
            default:
                await Play("invalid_option.wav", ct);
                await Hangup(ct);
                break;
        }
    }
    else if (menuResult == MenuResult.Timeout)
    {
        await Play("no_input_goodbye.wav", ct);
        await Hangup(ct);
    }
    else
    {
        await Play("system_error.wav", ct);
        await Hangup(ct);
    }
}

Toistaa kehotteen ja kerää useita DTMF-numeroita (esim. tilinumero, PIN).

Description

  • Toistaa kehotteen, joka pyytää soittajaa syöttämään useita numeroita.
  • Pysähtyy, kun joko:
    • maxDigits saavutetaan
    • Lopetusnumeroa (esim. #) painetaan
    • Aikakatkaisu umpeutuu

Parameters

  • audioFile – Kehote toistettavaksi (esim. “Syötä tilinumerosi ja paina #”).
  • maxDigits – Maksimimäärä numeroita kerättäväksi ennen pysähtymistä.
  • terminationDigits – Numerosarja, joka lopettaa keräämisen, kun se syötetään.
  • timeoutSeconds – Maksimiaika odottaa syötettä.
  • ct – Cancellation token.

Returns

  • Tuple (GatherResult Result, string? Digits):
  • GatherResult.Success ja Digits asetettu, kun syöte on kerätty.
  • GatherResult.Timeout, kun syötettä ei vastaanotettu.
  • GatherResult.Cancel, kun toiminto peruutetaan.
  • GatherResult.Error odottamattomassa virheessä.

Throws

  • OperationCanceledException - Jos ct peruutetaan (soittaja sulkee puhelun).

Signatures

Task<(GatherResult Result, string? Digits)> GatherDigits(
    string audioFile,
    int maxDigits = 20,
    string terminationDigits = "#",
    int timeoutSeconds = 30,
    CancellationToken ct = default);

Example

protected override async Task 
HandleCallAsync(CancellationToken ct)
{
    Answer();
    await Play("welcome.wav", ct);

    var (result, digits) = await GatherDigits(
        "enter_account.wav",
        maxDigits: 10,
        terminationDigits: "#",
        timeoutSeconds: 30,
        ct);

    if (result == GatherResult.Success && !string.IsNullOrEmpty(digits))
    {
        await ProcessAccountNumber(digits, ct);
    }
    else if (result == GatherResult.Timeout)
    {
        await Play("no_input_goodbye.wav", ct);
        await Hangup(ct);
    }
    else
    {
        await Play("system_error.wav", ct);
        await Hangup(ct);
    }
}

Soittaa yhteen tai useampaan lähtevään puhelinnumeroon ja palauttaa OutboundChannel-kanavan, kun vastataan.

Description

  • Aloittaa lähtevän puhelun yhteen kohteeseen tai useisiin kohteisiin rinnakkain.
  • Useille kohteille ensimmäinen vastaaja voittaa; kaikki muut peruutetaan.

Parameters

  • destination / destinations – Puhelinnumero(t) soitettavaksi.
  • callerId – Numero, joka näytetään soittajan tunnuksena.
  • ringTimeoutSeconds – Maksimiaika soida ennen luovuttamista.
  • ct – Cancellation token.

Returns

  • Yksittäinen kohde:
  • (DialerResult Result, OutboundChannel? Channel)
  • Useita kohteita:
  • (DialerResult Result, string? AnsweredDestination, OutboundChannel? Channel)
  • DialerResult voi olla: Init, Ringing, Answered, Busy, Rejected, NoAnswer, Failed, Cancel.

Throws

  • OperationCanceledException – Jos toiminto peruutetaan soittamisen aikana.

Signatures

Task<(DialerResult Result, OutboundChannel? Channel)> Dial(
    string destination,
    string callerId,
    int ringTimeoutSeconds = 60,
    CancellationToken ct = default);

Task<(DialerResult Result, string? AnsweredDestination,
OutboundChannel? Channel)> Dial(
    string[] destinations,
    string callerId,
    int ringTimeoutSeconds = 40,
    CancellationToken ct = default);

Esimerkki (yksittäinen kohde)

private async Task TransferToSupport(CancellationToken ct)
{
    var (dialResult, channel) = await Dial(
        destination: "18885554444",
        callerId: Context.Ani,
        ringTimeoutSeconds: 30,
        ct);

    if (dialResult == DialerResult.Answered && channel != null)
    {
        await Play("connecting_to_support.wav", ct);
        await Connect(channel, ct);
    }
    else
    {
        await Play("support_unavailable.wav", ct);
        await HandleVoicemail(ct);
    }
}

Esimerkki (useita kohteita)

private async Task TransferToSalesHuntGroup(CancellationToken ct)
{
    var salesTeam = new[]
    {
        "18885551111",
        "18885552222",
        "18885553333"
    };

    var (result, answeredNumber, channel) = await Dial(
        destinations: salesTeam,
        callerId: Context.Ani,
        ringTimeoutSeconds: 40,
        ct);

    if (result == DialerResult.Answered && channel != null)
    {
        Logger.LogInformation("Yhdistetty myyntiedustajaan {Number}", answeredNumber);
        await Connect(channel, ct);
    }
    else
    {
        await Play("sales_unavailable.wav", ct);
        await HandleVoicemail(ct);
    }
}

Yhdistää äänen kahden kanavan välillä.

Description

  • Saapuville kuluille: yhdistää saapuvan soittajan lähtevään kanavaan.
  • Vain lähteville skenaarioille: yhdistää kaksi lähtevää kanavaa yhteen.
  • Estää, kunnes toinen osapuoli sulkee puhelun tai yhteys muuten katkaistaan.

Parameters

  • channel – Lähtevä kanava yhdistettäväksi saapuvaan puheluun.
  • primary, secondary – Kaksi lähtevää kanavaa yhdistettäväksi.
  • ct – Cancellation token.

Returns

  • ConnectResult.Success – Yhteys päättyi normaalisti (puhelu lopetettu).
  • ConnectResult.Error – Yhteyttä ei voitu muodostaa tai se epäonnistui.

Throws

  • OperationCanceledException – Jos ct peruutetaan yhdistettynä ollessa.

Signatures

Task<ConnectResult> Connect(
    OutboundChannel channel,
    CancellationToken ct = default);

Task<ConnectResult> Connect(
    OutboundChannel primary,
    OutboundChannel secondary,
    CancellationToken ct = default);

Example

protected override async Task HandleCallAsync(CancellationToken ct)
{
    Answer();

    await Play("connecting_you_now.wav", ct);

    var (dialResult, channel) = await Dial(
        destination: "18885550000",
        callerId: Context.Ani,
        ringTimeoutSeconds: 30,
        ct);

    if (dialResult == DialerResult.Answered && channel != null)
    {
        var connectResult = await Connect(channel, ct);
        Logger.LogInformation("Yhteys päättyi tuloksella: {Result}", connectResult);
    }
    else
    {
        await Play("agent_unavailable.wav", ct);
    }

    await Hangup(ct);
}

Tallentaa ääntä soittajalta tai lähtevältä kanavalta.

Description

  • Aloittaa tallennuksen joko saapuvalta soittajalta tai tietyltä lähtevältä kanavalta.
  • Päättyy kun:
    • timeLimitSeconds saavutetaan
    • Lopetusnumeroa painetaan (jos määritetty)
    • Soittaja tai kanava sulkee puhelun

Parameters

  • timeLimitSeconds – Maksimi tallennusaika.
  • fileName – Valinnainen mukautettu tiedostonimi (luodaan automaattisesti, kun null).
  • terminationDigits – DTMF-numerot, jotka pysäyttävät tallennuksen.
  • playBeep – Toistetaanko piippaus ennen tallennusta.
  • channel – Valinnainen lähtevä kanava.
  • ct – Cancellation token.

Returns

  • Tuple (RecordResult Result, string? FilePath):
  • RecordResult.Success ja FilePath on tallennettu.
  • RecordResult.Timeout, MaxDurationReached, TerminationDigit, Cancel, Error.

Throws

  • OperationCanceledException jos peruutettu.

Signatures

Task<(RecordResult Result, string? FilePath)> Record(
    int timeLimitSeconds = 120,
    string? fileName = null,
    string? terminationDigits = null,
    bool playBeep = true,
    CancellationToken ct = default);

Task<(RecordResult Result, string? FilePath)> Record(
    OutboundChannel channel,
    int timeLimitSeconds = 120,
    string? fileName = null,
    string? terminationDigits = null,
    bool playBeep = true,
    CancellationToken ct = default);

Example

private async Task HandleVoicemail(CancellationToken ct)
{
    await Play("leave_message_after_beep.wav", ct);

    var (recordResult, filePath) = await Record(
        timeLimitSeconds: 180,
        fileName: null,
        terminationDigits: "#",
        playBeep: true,
        ct: ct);

    if (recordResult == RecordResult.Success && !string.IsNullOrEmpty(filePath))
    {
        Logger.LogInformation("Vastaajaviesti tallennettu polkuun {Path}", filePath);
        await Play("thank_you_message_received.wav", ct);
    }
    else
    {
        Logger.LogWarning("Tallennus epäonnistui: {Result}", recordResult);
        await Play("recording_failed.wav", ct);
    }

    await Hangup(ct);
}

Hylkää saapuvan puhelun SIP-sykoodilla ja lopettaa puhelun.

Description

  • Käytetään puheluiden suodattamiseen, estämiseen ja työajan ulkopuoliseen käyttäytymiseen.
  • Palauttaa SIP-virhekoodin ylävirran operaattorille.

Parameters

  • reasonRejectReason.Busy, .TemporarilyUnavailable, .Declined.
  • ct – Cancellation token.

Returns

  • RejectResult.Success – Puhelu hylätty.
  • RejectResult.AlreadyAnswered – Puhelu jo vastattu.
  • RejectResult.Error – Hylkääminen epäonnistui.

Throws

  • OperationCanceledException jos peruutettu.

Signatures

Task<RejectResult> Reject(
    RejectReason reason = RejectReason.Busy,
    CancellationToken ct = default);

Example

protected override async Task HandleCallAsync(CancellationToken ct)
{
    if (IsBlockedNumber(Context.Ani))
    {
        await Reject(RejectReason.Declined, ct);
        return;
    }

    if (!IsWithinBusinessHours(DateTime.UtcNow))
    {
        await Reject(RejectReason.TemporarilyUnavailable, ct);
        return;
    }

    // Normaali kulku
    Answer();
    await Play("welcome.wav", ct);
}

Lopettaa aktiivisen puhelun siististi.

Description

  • Lopettaa puhelun IVR-puolelta.

Returns

  • HangupResult.Success – Puhelu lopetettu onnistuneesti.
  • HangupResult.NotAnswered – Ei koskaan vastattu.
  • HangupResult.AlreadyDisconnected – Soittaja sulki puhelun.
  • HangupResult.Error – Lopetus epäonnistui.

Throws

  • OperationCanceledException jos peruutettu.

Signature

Task<HangupResult> Hangup(CancellationToken ct = default);

Example

protected override async Task HandleCallAsync(CancellationToken ct)
{
    Answer();

    await Play("goodbye.wav", ct);

    var result = await Hangup(ct);
    Logger.LogInformation("Hangup-tulos: {Result}", result);
}

Pysäyttää suorituksen tietyksi sekuntimääräksi.

Description

  • Odottaa durationSeconds-ajan pitäen puhelun auki.
  • Voidaan keskeyttää DTMF-syötteellä toteutuksesta riippuen.

Parameters

  • durationSeconds – Kesto sekunneissa.
  • ct – Cancellation token.

Returns

  • PauseResult.Success – Tauko suoritettu normaalisti.
  • PauseResult.Interrupted – Soittaja painoi näppäintä tauon aikana (jos tuettu).
  • PauseResult.Cancel – Toiminto peruutettu.
  • PauseResult.Error – Tauko epäonnistui.

Throws

  • OperationCanceledException – Jos ct peruutetaan.

Signatures

Task<PauseResult> Pause(
    int durationSeconds,
    CancellationToken ct = default
);

Example

protected override async Task HandleCallAsync(CancellationToken ct)
{
    Answer();

    await Play("please_wait.wav", ct);

    var result = await Pause(3, ct);

    if (result == PauseResult.Interrupted)
    {
        await Play("you_pressed_a_key.wav", ct);
    }
    else
    {
        await Play("thank_you_for_waiting.wav", ct);
    }

    await Hangup(ct);
}

Lähettää varattu-signaalin soittajalle ja lopettaa puhelun.

Description

  • Esittää tavallisen varattu-äänen.
  • Yleisesti käytössä, kun kaikki agentit/linjat ovat varattuja.

Returns

  • BusyResult.Success – Varattu-signaali lähetetty ja puhelu lopetettu.
  • BusyResult.Cancel – Toiminto peruutettu.
  • BusyResult.Error – Varattu-signaalin lähettäminen tai puhelun lopettaminen epäonnistui.

Throws

  • OperationCanceledException – Jos ct peruutetaan.

Signature

Task<BusyResult> Busy(CancellationToken ct = default);

Example

protected override async Task HandleCallAsync(CancellationToken ct)
{
    if (AllAgentsBusy())
    {
        var result = await Busy(ct);
        Logger.LogInformation("Busy-tulos: {Result}", result);
        return;
    }

    // Muuten jatka normaalilla kululla
    Answer();
    await Play("welcome.wav", ct);
}

Aloittaa puhelun live-äänen suoratoiston ulkoiseen päätepisteeseen (esim. AI tai STT-moottori).

Description

  • Avaa reaaliaikaisen mediavirran puhelusta annettuun url-osoitteeseen (esim. WebSocket-päätepiste).
  • Tyypillisesti käytetään äänen lähettämiseen:
    • tekoälyavustajalle,
    • puheesta tekstiksi -moottorille,
    • mukautettuun analytiikka-/valvontapalveluun.
  • Vain yksi aktiivinen virta puhelua kohden on suositeltavaa.

Parameters

  • url – Kohdesuoratoistopäätepiste (esim. wss://ai.callfactory.nl/voice-stream).
  • options – Valinnainen suoratoistokonfiguraatio (suunta, metatiedot, nimi).
  • ct – Cancellation token. Jos peruutetaan, virta puretaan.

Throws

  • OperationCanceledException – Jos ct peruutetaan asennuksen aikana.
  • Yhteys-/siirtopoikkeukset toteutuksesta riippuen.

Allekirjoitukset

Task<StreamResult> StartStream(
    string url,
    StreamOptions? options = null,
    CancellationToken ct = default
);

Parametrit

public class StreamOptions
{
    public string? Name { get; set; }                           //
Valinnainen virran nimi
    public StreamDirection Direction { get; set; } =
        StreamDirection.Both;
    public Dictionary<string, string>? Metadata { get; set; }
}

public enum StreamDirection
{
    Inbound,   // Soittajalta tekoälylle
    Outbound,  // Agentilta/järjestelmältä tekoälylle
    Both       // Molemmat
}

Palautusarvot

public enum StreamResult
{
    Started,        // Virran aloitus onnistui
    Stopped,        // Virran pysäytys onnistui (StopStream:ille)
    AlreadyStarted, // Virta on jo aktiivinen
    NotActive,      // Ei aktiivista virtaa (StopStream:ille)
    Error           // Aloitus/pysäytys epäonnistui
}

Example

protected override async Task
HandleCallAsync(CancellationToken ct)
{
    Answer();

    // Aloita soittajan äänen suoratoisto tekoälylle
    var streamResult = await StartStream(
        url: "wss://ai.callfactory.nl/voice-stream",
        options: new StreamOptions
        {
            Name = "support-ai",
            Direction = StreamDirection.Inbound,
            Metadata = new Dictionary<string, string>
            {
                ["caller"] = Context.Ani,
                ["dnis"] = Context.Dnis
            }
        },
        ct
    );

    if (streamResult != StreamResult.Started)
    {
        Logger.LogWarning("Tekoälyvirran aloitus epäonnistui:
{Result}", streamResult);
        await Play("ai_unavailable.wav", ct);
        await Hangup(ct);
        return;
    }

    await Play("connected_to_ai.wav", ct);

    // Jatka IVR-logiikkaa samalla kun suoratoisto on aktiivinen...
    var (menuResult, digit) = await
PromptDigit("ai_menu.wav", 30, ct);

    if (menuResult == MenuResult.Success && digit == '0')
    {
        // Soittaja haluaa ihmisagentin
        await StopStream(ct);
        await Play("transferring_to_human_agent.wav", ct);
        await TransferToHuman(ct);
    }
    else
    {
        await Play("thank_you_goodbye.wav", ct);
        await StopStream(ct);
        await Hangup(ct);
    }
}

Pysäyttää aktiivisen äänivirran, joka aloitettiin aiemmin StartStream-toiminnolla.

Description

  • Sulkee aktiivisen mediavirran siististi.
  • Ei lopeta puhelua - vain lopettaa äänen lähettämisen.
  • Turvallista kutsua, vaikka aktiivista virtaa ei olisi (palauttaa NotActive).

Parameters

  • ct – Cancellation token.

Returns

  • StreamResult.Stopped – Virta pysäytetty onnistuneesti.
  • StreamResult.NotActive – Aktiivista virtaa ei löytynyt.
  • StreamResult.Error – Virran pysäyttäminen epäonnistui.

Throws

  • OperationCanceledException – Jos ct peruutetaan.

Signatures

Task<StreamResult> StopStream(
    CancellationToken ct = default);

Example

private async Task TransferToHuman(CancellationToken ct)
{
    // Pysäytä tekoälysuoratoisto ennen siirtoa ihmiselle
    var stopResult = await StopStream(ct);
    Logger.LogInformation("StopStream-tulos: {Result}",
stopResult);

    await Play("transferring_to_agent.wav", ct);

    var (dialResult, channel) = await Dial(
        destination: "18005550000",
        callerId: Context.Ani,
        ringTimeoutSeconds: 30,
        ct
    );

    if (dialResult == DialerResult.Answered && channel !=
null)
    {
        await Connect(channel, ct);
    }
    else
    {
        await Play("agent_unavailable.wav", ct);
        await Hangup(ct);
    }
}

Miksi se on tärkeää

IVR-työkalupakki antaa tiimillesi täydellisen hallinnan puhelukuluista. Yksinkertaisista valikoista monimutkaisiin tekoälyohjattuihin vuorovaikutuksiin - kaikki on mahdollista toimintokirjastollamme.

Nämä työkalut ovat erityisen hyödyllisiä tiimeille, jotka rakentavat mukautettuja puhelinratkaisuja, toteuttavat tekoälyintegraatioita tai laajentavat olemassa olevia järjestelmiä edistyneellä puhelulogiikalla.

Tämä ominaisuus sisältyy ilmaiseksi jokaiseen yritysnumeroon tai kansainväliseen numeroon.

Lue lisää muista ominaisuuksista

Löydä lisätietoja ominaisuuksistamme, jotka voivat tehostaa yrityksesi viestintää.

IVR-työkalupakin UKK

Hanki selkeitä vastauksia IVR-työkalupakista ja siitä, miten se toimii yrityksellesi.

Voit rakentaa kulkuja käyttämällä IVR-toimintojamme kojelaudassasi. Jokainen toiminto sisältää esimerkkejä, allekirjoituksia ja ennustettavaa käyttäytymistä, joten voit toteuttaa logiikkaa tarvitsematta uutta puhelinlaitteistoa.

Voit luoda yksinkertaisia kulkuja ilman koodausta, mutta työkalupakki on rakennettu tiimeille, jotka haluavat automatisoida tai integroida logiikkaa. Kehittäjät voivat käyttää strukturoituja toimintoja kehotteiden käynnistämiseen, numeroiden sieppaamiseen tai soittajien yhdistämiseen ohjelmallisesti.

Kyllä. Voit käynnistää API-kutsuja, lähettää dataa taustajärjestelmääsi tai suoratoistaa ääntä tekoäly- tai STT-palveluihin. Työkalupakki sopii luonnollisesti olemassa olevaan infrastruktuuriisi.

Ehdottomasti. Sinun ei tarvitse muuttaa asetuksiasi. Kaikki IVR-toiminnot toimivat olemassa olevien Callfactory-numeroidesi, reitityksen ja puheluasetusten kanssa.

Kyllä. Voit rakentaa ja esikatsella kulkujasi turvallisesti. Työkalupakin avulla voit simuloida kehotteita, syötteen keräämistä ja reitityskäyttäytymistä ennen muutosten aktivoimista oikeille soittajille.

Sinä päätät käyttäytymisestä. Voit toistaa kehotteen, reitittää vastaajaan, yhdistää tukeen tai lopettaa puhelun. Jokainen IVR-toiminto tukee mukautettua virheenkäsittelyä.

Kyllä. Jokainen toiminto sisältää aikakatkaisun käsittelyn ja valinnaisen varalogiikan. Voit määrittää, mitä tapahtuu, kun syötettä ei vastaanoteta tai kun soittaja sulkee puhelun.

Kyllä. Työkalupakki suunniteltiin toimintojen ketjuttamiseen. Voit toistaa ääntä, kerätä numeroita, suorittaa logiikkaa, kutsua API:ta ja siirtää soittajia - kaikki yhdessä kulussa.

Kyllä. Järjestelmä on suunniteltu luotettavuutta ja skaalautuvuutta varten. Olipa sinulla pieni yritys tai suuren volyymin puhelinpalvelukeskus, kaikki toiminnot tarjoavat ennustettavaa suorituskykyä.

Jos tiimisi tarvitsee ohjausta, voimme auttaa tarkistamaan kulkusuunnitelmasi, testaamaan konfiguraatiotasi tai tukemaan edistyneempää reitityslogiikkaa.

Tyytyväiset Callfactory-asiakkaat:

SignDirect logo
Bosch logo
Trigion logo
ANWB logo
UWV logo
Sogeti logo
Dille & Kamille logo
Nationale Ombudsman logo
KRO-NCRV logo
Swiss Sense logo