Deixe um membro licenciar seu próprio assento do console
O painel que fecha o ciclo de auto-pagamento. Só aparece onde o a política da organização permite, e apenas para as pessoas que já não estão comprando em nome d...
Diga às pessoas que o seu pagamento falhou, e manter a assinatura para baixo
O dunning que não existia. failure.payment failed escreveu uma linha e retornou: nenhum email, nenhuma bandeira, nenhuma alteração de estado, e billing.email-se...
Adicionar as colunas do relógio dunning
past due desde e suspension notificated at, ambos nuláveis. Null significa pagar e não-ainda-told, respectivamente.
Fazer um pagamento falhado significa alguma coisa
PAST DUE contado como totalmente vivo em ambos os resolvedores de direitos, sem timestamp e sem tampa, de modo que um cliente cujo cartão falhou manteve todos o...
Deixe um membro comprar seu próprio assento, e fechar um buraco corpo-parâmetro
O auto-pagamento não tinha rota dentro da consola. Tudo na superfície de faturamento é em forma de conta — você já deve ter uma linha ContaMembro antes de Plano...
Deixe o proprietário decidir quem pode pagar, e gerenciar os grupos que fazem
O proprietário tinha exatamente uma alavanca sobre o auto-pagamento e era a forma errada: um irreversível promover gesto, sem forma de dizer antecipadamente se ...
Política de org e APIs de grupos de faturamento
Quem dentro de uma organização pode pagar Kamo é agora responsável e settable. Ambos as rotas são org-scoped e, portanto, deliberadamente fora /api/billing/acco...
Um console de planos e faturamento que um proprietário pode realmente encontrar
Não havia como comprar uma primeira assinatura em qualquer lugar do produto. Listas de planos foram acessíveis apenas através de uma assinatura que você já real...
Por omissão, uma nova organização de destino da subscrição para o chamador
Uma primeira compra não tem assinatura existente para copiar alvoOrganizaçãoId de, e requerê-lo incondicionalmente é o que fez criar um a partir do console impo...
Mostrar o teto, não apenas os bytes
O painel reportado foi armazenado, adicionado, removido e os bytes da vida útil contra n referência em tudo — de modo que um proprietário olhando para 400 GB nã...
Promoção do portal na política do proprietário, torná-lo idempotente, adicionar o seu inverso
Promover um membro a pagar por si próprio era incondicional, unilateral e inseguro repetir. Agora se recusa quando a política da organização diz que a organiza...
Largue a restrição que limita um membro a uma conta de faturamento
Encontra a restrição pela forma em vez de pelo nome — Hibernate a gerou e o nome não é estável em ambientes, então qualquer restrição única em account members c...
Que os membros e grupos paguem por si mesmos, segundo as regras do proprietário
Faltavam três coisas e uma era ativamente prejudicial. account members carregava um único elemento global no member id — um membro poderia administrar exatamen...
Expor o impacto da falha aberta ao operador
A página de catálogo de aplicativos já responde à pergunta independente de orgs — faz qualquer Plano mencionar este aplicativo — e levanta um aviso quando ningu...
Mostrar o que custaria desligar a abertura de falhas
kamo.entitlement.fail-open concede qualquer aplicativo que a matriz do plano nunca menciona. Está. documentado como uma válvula temporária para o enchimento do ...
Mostrar se alguém está lá, e sua extensão
Cada linha agora carrega um ponto de presença e palavra ao lado do nome, e sua extensão na linha de detalhe — então escolher uma pessoa já não significa escolhe...
Transportar disponibilidade, presença e extensão em uma linha de diretório
Escolher uma pessoa é mais fácil quando a linha diz se eles estão lá e como Apanhem-nos, pois, cada um agora carrega o que pela última vez declararam, quer algo...
Compre um bloco quando uma org optado ficar sem espaço
Corre pouco depois da varredura noturna de fotos, porque é isso que produz o figura de uso que decide sobre — expandir-se contra o número de ontem iria comprar ...
Opt-in auto-expand com um teto
Duas colunas sobre a assinatura que detém os blocos: se comprar outro um automaticamente quando a organização fica sem espaço, e o máximo que pode Nunca comprar...
Deixe uma mudança de preço do catálogo realmente chegar ao Stripe
Os preços são imutáveis e o mapeamento mantém uma linha por (org, tipo, código, ciclo) atrás de uma chave única, de modo que uma vez que um preço existiu nunca ...
Adicionar as colunas que fazem uma alteração de preço detectável
Order(0), nullable, no backfill — um valor nulo lê como "não sabemos o que este preço foi criado com" e o reconciliador trata-o como desconhecido em vez de como...
Gravar o que cada preço Stripe foi criado com
O mapeamento armazenado apenas qual ID de preço usar, então uma mudança de preço do catálogo poderia nem sequer ser notado. garantirPlanPreços curto-circuito na...
Digite a capacidade de armazenamento que o resumo agora retorna
Mantém o contrato do cliente na etapa com BillingService, que agora relata o que o plano inclui, quais blocos foram comprados, o teto combinado e o fração usada...
Capacidade de comunicação juntamente com a utilização
O painel de armazenamento apresentou os bytes armazenados contra nada — sem subsídio, nenhum percentual, nenhum dinheiro — assim um proprietário olhando para 40...
Dar um efeito ao subsídio de armazenagem
O armazenamento foi medido em dezenove domínios, por noite, com falha de construção teste de cobertura — e nada em qualquer lugar computou um subsídio ou recuso...
Diga ao solicitante se o seu agente está realmente lá
Um fio silencioso não distingue "ninguém olhou para isto" do "meu agente" se afastou", e a pessoa que espera não pode dizer qual. O anúncio da conversação diz q...
A reatribuição chega ao novo agente, e o solicitante é informado quem está lá
A mudança não chegou a ninguém. atribuiçãoAbridoAt registros que um cliente colocou a conversa na tela, e é o que levanta um ticket no sign-in — mas Ainda tinha...
Atribuir um pedido de chat e atribuir a partir da lista de tickets
Duas lacunas, mesma causa — a designação foi tratada como algo que acontece com bilhete em vez de um pedaço de trabalho. O botão de atribuição foi escondido pa...
Motor de citação para o selecionador plano, combinando o que Stripe vai cobrar
A aritmética por trás de um total em execução ao vivo, mantido à parte de qualquer componente assim que o os números podem ser testados diretamente. Ele espelha...
Faça um primeiro plano de compra e retorne os preços reais do plano
Duas coisas impediram uma organização de comprar uma primeira assinatura. As listas de planos só foram acessíveis através do sub.marketId numa subscrição já re...
Portão ações pagas em um assento licenciado, no ponto de estrangulamento
Quase todas as ações gateable no produto — discar uma extensão, e-mail um membro, abrir o assistente de IA, tocar uma gravação, iniciar uma conversa social — é ...
Resolver o que um membro pode fazer, não apenas o que seu plano inclui
Os subsídios de recurso descrevem um plano. Nunca descreveram este membro, porque o navegação por portas de console em org-level org.features — assim um membro ...
Contas por unidade de acréscimos por unidades compradas, não por cabeça
Rola a nova quantidade adicional através da criação e atualização: um complemento FLAT agora toma a sua quantidade Listra do que a subscrição realmente comprou,...
Reprize Armazenamento Adicional em $2,50 por 10 GB, org-wide
O add-on descreveu um pool compartilhado em toda a organização e foi então preçod USO BASED em $4 com "25 GB" declarado apenas em prosa. Nunca nada apresentou e...
Dê um tamanho de unidade e uma quantidade de compra
A unidade de um complemento só existiu como prosa dentro de sua descrição ("Cada unidade adiciona 25 GB") e como uma constante codificada no site de marketing, ...
Escolha o agente para onde reatribuir um ticket, em vez de digitar seu id
Atribuir e reatribuir abriu uma caixa de texto na qual digitou um ID de membro bruto — na qual significa já saber o id da pessoa que você queria, para uma ação ...
Endpoints para a entrega automática de entrada
GET /sessions/chat/auto-open retorna as conversas de chat do cliente deste membro deve levantar; POST /sessions/{guid}/registros abertos automaticamente que ele...
Registro durável de uma conversa que o cliente levantou sozinho
MediaSessionMember ganha AUTO OPENED AT, ao lado do msgIdLastViewed porque é o o mesmo grão — um fato sobre a relação de um membro com uma sessão. Aquele. respo...
Renovar o painel de preferências
Quatro dropdowns e um interruptor em um painel lavado de cima para baixo no inquilino cor em plena força, então cada controle lutou seu próprio fundo. Cada sele...
Substituir os spinners da caixa de correio por um esqueleto que se reúne
Cada estado de carregamento em /mensagens era um Loader2 em um painel vazio de outra forma — o boot, a lista de mensagens, a árvore de pastas, o corpo da mensag...
Adicionar e remover os convidados da janela de eventos
A última coisa que o diálogo não pôde fazer. Podia mostrar quem já estava em um evento, mas não havia maneira de colocar alguém lá — o único controle convidado ...
Gerencie a lista de convidados de um evento
A janela poderia mostrar quem já estava num evento mas nunca adicionar ou remover alguém; a única operação convidada foi re-notificar pessoas que estavam de alg...
Procura de convidados e delete-por-evento
A janela do evento mostra com quem está um evento e o endpoint da lista devolve uma mês de eventos de cada vez. Pedir convidados por evento é uma consulta por l...
Diga ao membro com o que o evento colide, como eles definiram
A coisa mais útil que uma janela de agendamento pode dizer é "você já tem algo então", e o endpoint para respondê-lo existiu junto com Nada disso. O diálogo ago...
Deixar o endpoint de conflitos excluir o evento sendo editado
ConflictDetectionService sempre tomou uma exclusãoEventId; este endpoint Passou nulo. Sem ele, um evento se sobrepõe, então no momento em que o evento diálogo c...
Reconstruir a janela do evento em torno de quando, não em torno de campos
Dez campos esboçados de forma idêntica numa coluna, na ordem em que colunas acontecem de sentar na tabela: título, descrição, localização, calendário, dia intei...
Estratégia de atribuição automática e abrir uma conversa atribuída automaticamente
As configurações dos tópicos ganham a quarta estratégia. As linhas da lista e a janela de edição compartilhar o mesmo rótulo, e a chave enviada para o dicionári...
AUTO ASSIGNMENT, e levantar uma conversa atribuída na tela do agente
Uma solicitação de chat e um ticket enviado são a mesma unidade de trabalho; A estratégia é a única coisa que decide como é entregue. A O caso especial PRE TICK...
Estratégia AUTO ASSIGNMENT e um registro durável de uma entrega invisível
AUTO ASSIGNMENT(3) é anexado ao SupportAssignmentStrategyType — assign imediatamente para um agente que está genuinamente online, preferindo quem detém o menos ...
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.