1 | TNA Rest Gateway

Proporciona un acceso seguro a los servicios de la plataforma Terranoha para cualquier servicio externo.

4 | TNA Intent Service

Refleja todas las solicitudes verbales entrantes para traducir el texto del usuario en intenciones estructuradas que pueden ser transformadas en solicitudes comerciales digitales comprensibles por la mayoría de los servidores.

6 | NLP / NLU

El corazón de la cocina del lenguaje natural. Traduce frases en texto libre en estructuras de nombre/valor y viceversa.

2 | TNA Bot Service

Alineado con los requisitos de un servicio de mensajería externa (chat) para realizar una conversación de manera completamente automatizada.

3 | TNA Smart Access Gateway

Dirige el tráfico de comunicación de solicitudes/respuestas de acuerdo con las reglas de tránsito establecidas.

5 | TNA Core Service

Incluye todo tipo de procesadores de lógica de negocio necesarios para cumplir con las solicitudes entrantes.

7 | TNA Market Connect Service

Brinda la capacidad de recibir y acomodar flujos de datos externos junto con el proceso de unificación de datos.

Terranoha Security Workflow

1 | TNA Core Service

Verificación de seguridad contextual basada en el contexto de seguridad proporcionado por el nivel de Seguridad de Acceso y en la tabla de derechos de acceso.

La plataforma Terranoha se basa en un subconjunto de microservicios. Entre ellos, tenemos:

  • Smart Gateway para autenticar usuarios
  • Bot Service para coordinar el workflow del bot
  • Intent Service para clarificar las intenciones del usuario
  • NLU Service para procesar el lenguaje natural

Cada solicitud recibida y acción realizada es auditada y registrada.

Estamos en cumplimiento con WhatsApp, Microsoft Teams, Slack, Telegram, Webex.

El informe de auditoría se puede descargar a demanda desde Emmie (el bot de Terranoha) o a través de REST API, según los permisos otorgados por el usuario.

Aquí a continuación algunos ejemplos de registros de auditoría

User starts a conversation:

{
«ctoken»: «42d30d29-79ce-42b6-aef0-74988a054a7e»,
«channel»: «MSTEAMS»,
«client»: «ACME»
}

In this request, user is identified by the ctoken field, which is the id of the user messaging system account. This ctoken is link to a user account.

User receives a link to securely authenticate:

{
«ctoken»: «42d30d29-79ce-42b6-aef0-74988a054a7e»,
«channel»: «MSTEAMS»,
«client»: «ACME»,
«callback»: «https:\/\/service.terranoha.net\/tna\/service\/auth-status»,
«ttl»: 1621260188716
}

The Stream-id is linked to a time stamp and some other metadata fields. Emmie bot creates the report, joins the dependencies needed to have a full view on the audit trail details and provides a readable format.

User requests a quote to bot-service:

{
«data»: {
«message»: «mkt eurusd 100k»,
«id»: «620633749000»,
«channel»: «MSTEAMS»,
«stream-id»: «a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo»
},
«action»: «message.crack»,
«auth»: {
«channel»: «MSTEAMS»,
«ctoken»: «42d30d29-79ce-42b6-aef0-74988a054a7e»,
«client»: «ACME»
}
}

Message is interpreted by intent-assistant:

{
«data»: {
«context»: {
«ccy1»: «EUR»,
«ccy2»: «USD»,
«qty»: «100000.0»
},
«id»: «620633749000»,
«language»: «en»,
«intermediate»: «false»,
«stream-id»: «a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo»,
«context-type»: «forex»,
«intent»: «request»,
«scope»: «quote»
},
«action»: «message.crack.result»
}

User makes an order request to bot-service:

{
«data»: {
«message»: «buy 1m eurusd 1W 360t»,
«id»: «620633749013»,
«channel»: «MSTEAMS»,
«stream-id»: «a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo»
},
«action»: «message.crack»,
«auth»: {
«channel»: «MSTEAMS»,
«ctoken»: «42d30d29-79ce-42b6-aef0-74988a054a7e»,
«client»: «ACME»
}
}

Message is interpreted by intent-assistant:

{
«data»: {
«context»: {
«side»: «buy»,
«ccy1»: «EUR»,
«ccy2»: «USD»,
«qty»: «1000000.0»,
«counterparty»: «360t»,
«set-type»: «1W»
},
«id»: «620633749013»,
«language»: «en»,
«intermediate»: «false»,
«stream-id»: «a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo»,
«context-type»: «forex»,
«intent»: «request»,
«scope»: «order»
},
«action»: «message.crack.result»
}

User confirms the order request:

{
«data»: {
«message»: «c»,
«id»: «620633749014»,
«channel»: «MSTEAMS»,
«stream-id»: «a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo»
},
«action»: «message.crack»,
«auth»: {
«channel»: «MSTEAMS»,
«ctoken»: «42d30d29-79ce-42b6-aef0-74988a054a7e»,
«client»: «ACME»
}
}

Message is interpreted by intent assistant:

{
«data»: {
«context»: {
«side»: «buy»,
«ccy1»: «EUR»,
«ccy2»: «USD»,
«qty»: «1000000.0»,
«counterparty»: «360t»,
«set-type»: «1W»
},
«id»: «620633749014»,
«language»: «en»,
«intermediate»: «false»,
«stream-id»: «a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo»,
«context-type»: «forex»,
«intent»: «request.confirm»,
«scope»: «order»
},
«action»: «message.crack.result»
}

360t accepts the order:

{
«data»: {
«symbol»: «EUR/USD»,
«id»: «620633742668»,
«type»: «market»,
«status»: «accept»,
«price-near»: 0.0,
«price-far»: 0.0,
«qty-min»: 0.0,
«qty-near-last»: 0.0,
«qty-far-last»: 0.0,
«qty-near-residual»: 1000000.0,
«qty-far-residual»: 0.0,
«price-spot»: 0.0,
«settl-date-near»: «2021-05-13»,
«fwd-points-near»: 0.0,
«fwd-points-far»: 0.0,
«price-near-last»: 0.0,
«price-far-last»: 0.0,
«price-near-average»: 0.0,
«price-far-average»: 0.0,
«time-in-force»: «ioc»,
«counterparty-order-id»: «308500007»,
«counterparty-exec-id»: «nm6lro»,
«status-last»: «accept»,
«qty-near»: 1000000.0,
«qty-far»: 0.0,
«cause-id»: «620633742668»,
«side»: «buy»,
«counterparty»: «360t»
},
«action»: «order.fx.request.result»
}

Order is filled:

{
«data»: {
«symbol»: «EUR/USD»,
«id»: «620633742668»,
«type»: «market»,
«status»: «fill»,
«price-near»: 0.0,
«price-far»: 0.0,
«qty-min»: 0.0,
«qty-near-last»: 1000000.0,
«qty-far-last»: 0.0,
«qty-near-residual»: 0.0,
«qty-far-residual»: 0.0,
«price-spot»: 0.0,
«settl-date-near»: «2021-05-13»,
«fwd-points-near»: 0.0,
«fwd-points-far»: 0.0,
«price-near-last»: 1.21469,
«price-far-last»: 0.0,
«price-near-average»: 1.21469,
«price-far-average»: 0.0,
«time-in-force»: «ioc»,
«counterparty-order-id»: «308500007»,
«counterparty-exec-id»: «903448414.2»,
«status-last»: «fill»,
«qty-near»: 1000000.0,
«qty-far»: 0.0,
«cause-id»: «620633742668»,
«side»: «buy»,
«counterparty»: «360t»
},
«action»: «order.fx.request.result»
}{
«data»: {
«id»: «620633742668»
},
«action»: «request.completion.ack»
}

Login to your account below

Fill the forms bellow to register

Retrieve your password

Please enter your username or email address to reset your password.