Show message metadata in the API
Some code paths for creating a message weren't saving message metadata properly, and the metadata wasn't being returned in the API responses. This has been fixed so that message metadata will now work as expected.
Some code paths for creating a message weren't saving message metadata properly, and the metadata wasn't being returned in the API responses. This has been fixed so that message metadata will now work as expected.
Our embedded softphone component will now take a phone_number_id parameter to allow you to specify the phone number from which any outbound calls should be made.
This feature is in private beta. Please reach out to support@surge.app or use the in-product chat to contact support and request access.
Our existing campaign.approved webhook event notifies you when a campaign has been approved, but each phone number needs to be attached to a campaign as well before it can begin sending.
Now we've added a phone_number.attached_to_campaign webhook event as well so that you can be notified when phone number attachment is complete. See the documentation for the new webhook event for more information.
For platform customers with many accounts, finding the account you needed would often require ⌘+F to make it work. We've now added a search input on both our accounts page and the account switcher on our other pages so that you can easily find the account you need. In addition, we've changed both the switcher and the accounts page to display the accounts in alphabetical order so that you can more easily scan through them.
We have added a new API endpoint for moving a phone number to another account under your project.
This feature is in private beta. Please reach out to support@surge.app or use the in-product chat to contact support and request access.
For our customers in Canada (or who have their own customers in Canada), you will now be able to purchase Canadian phone numbers both through HQ and our API. In HQ you will need to switch the country in the picker on the page for purchasing a phone number, and then you can also search for Canadian area codes. With our API, you will need to provide a Canadian area code, and then if we have any inventory in that area code, the number will be purchased.
For those of you using segments to segment the contacts in your account, we have now renamed segments to audiences. This is because segments is also used to refer to SMS segments, and we wanted to separate the terms to make it easier to clarify what was being discussed. There are no breaking changes to the API because we have not yet exposed endpoints for segments, but we will create new audience endpoints soon.
Since adding blasts and segments in 2024, we haven't made many improvements to it. It's been a long time coming, but we finally added pagination to the audience contacts page in HQ so that the page will load a lot faster and not crash your browser if you have an audience with thousands of contacts.
We just added a new billing settings page. By clicking your name in the bottom left corner of the screen on desktop, or your avatar in the top right on mobile, you can then select "Billing." This page will allow you to view and download your past invoices, change or cancel your usage commitment, or update the payment method on file for your project.
Our UI is now set up to enable Canadian entities to register campaigns through the dashboard. The necessary changes will be made to the API as well in the near future.
We've added a password visibility toggle to the login, registration, and change password screens so that you'll be able to see your password if necessary.
We previously added a metadata field to messages to allow you to pass information from your system when sending a message. However, we forgot to add that to the message webhooks (message.received, message.delivered, message.sent, and message.failed). That will now be included on those webhooks.
We've added a new endpoint for listing the campaigns in an account. For more information, see the documentation for the list campaigns endpoint.
Pages where no user was logged in previously used light mode by default, whereas pages with a logged in user would use dark mode. Sorry for burning your eyes. We will now use your system theme everywhere in HQ.
We've now added an endpoint to allow you to delete recordings. This will allow you to remove them from Surge's storage so that you won't be billed for them, or in case you want them deleted for privacy reasons. See the documentation for the delete recording endpoint for more details.
This feature is in private beta. Please reach out to support@surge.app or use the in-product chat to contact support and request access.
The attachment type field was previously listed as a string in our OpenAPI spec. We've now updated that to be an enum so that it's clear what the possible values are. See the documentation for the attachment type field for more information.
Historically we've sent emails directly to our email provider, but we were seeing several issues where their server didn't accept the email and it never got sent. We've now cloned our SMS messaging queue infrastructure for emails so that failed emails will automatically be retried, and we can guarantee that email notifications are delivered at least once.
You can now export your usage as a CSV. While this won't be a big deal for those of you with single-account projects, for our customers with many accounts, this will allow you to get the breakdown of line items for all of your accounts in a single CSV so that you can easily break down usage by accounts for attributing costs.
Let us know if there's anything else you'd like to see in that CSV or anywhere else you'd like to see similar export buttons.
We now allow you to record your incoming calls. By enabling this feature the call will be recorded and we will send you a recording.completed webhook as soon as the recording has been processed and stored. You can then download the recording.
Please note that you are responsible for compliance with federal and state laws surrounding recording phone calls.
This feature is in private beta. Please reach out to support@surge.app or use the in-product chat to contact support and request access.
We added a new endpoint for getting a campaign. This will allow you to check the details of a campaign that you've previously submitted, as well as check the status of the campaign. See the documentation for the get campaign endpoint for more details.
Verifications still require that recipients be able to opt out of receiving messages. In the event that a Verification is created and the recipient has opted out of receiving messages, we will now return an error response with instructions for the recipient to opt back in, rather than failing silently as we did before. An error response will look something like this:
{ "error": { "type": "opted_out", "message": "This number has opted out of receiving verification messages. Send START to (801) 555-1234 to opt in again." }}For our customers making outbound calls, we can now register your business with the carriers to avoid the "Spam Likely" label on outbound calls.
This feature is in private beta. Please reach out to support@surge.app or use the in-product chat to contact support and request access.
Sometimes you or your customers would rather handle incoming calls asynchronously rather than in the moment a customer calls. We've now shipped voicemail in beta to allow you to receive voice messages from callers.
By enabling voicemail on a phone number, we allow you to provide a greeting message. When someone calls your number, they will hear the greeting and be given the opportunity to record a message for you. We will then send you a voicemail.received webhook to let you know that the voicemail was received and is ready for download.
This feature is in private beta. Please reach out to support@surge.app or use the in-product chat to contact support and request access.
We've added a new endpoint for listing all the contacts in an account. See the documentation for the list contacts endpoint for more details.
We've added a new endpoint for listing all the messages sent and received from an account. See the documentation for the list messages endpoint for more details.