Will Newmarch - Senior Software Developer Product Management Software Fri, 05 May 2023 10:42:38 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 https://www.prodpad.com/wp-content/uploads/2020/09/192x192-48x48.png Will Newmarch - Senior Software Developer 32 32 Star Trek: TNG – 10 Extraterrestrial Team Management Tips https://www.prodpad.com/blog/team-management-tips/ https://www.prodpad.com/blog/team-management-tips/#comments Mon, 21 Jun 2021 13:25:52 +0000 https://www.prodpad.com/?p=42546 Space… the final frontier of team management?! March 2020, the UK went into lockdown. To stay (relatively) sane, while working from home, I blocked out an hour for my daily…

The post Star Trek: TNG – 10 Extraterrestrial Team Management Tips appeared first on ProdPad.

]]>
Space… the final frontier of team management?!

March 2020, the UK went into lockdown. To stay (relatively) sane, while working from home, I blocked out an hour for my daily lunch break. For 178 of those lunches I watched Star Trek – The Next Generation, and my goodness, what a fantastic 178 lunches they turned out to be.

For an hour a day I would find myself traversing the galaxy, encountering new planets, races, technologies, and natural phenomena.

Through it all I noticed one thing in particular – the starship Enterprise runs like clockwork.

The ship’s crew consists of over 900 people, all from different backgrounds, races, creeds and specialities. But all aligned for one purpose – working harmoniously together to get the job done.

It dawned on me that whilst this is a fictional team of people from the 24th century. Travelling through space, faster than the speed of light. We could learn something from them and their approach to team management.

So here goes – could these values be translated to a team in the 21st century? Having almost 200 hours of Star Trek under my belt (including the movies). I have compiled my top ten tips from this brilliant series and its excellent approach to team management and dynamics.

# 1 – Lead from the front – Team Management 101

Inspire others by behaving in a way you’d like them to behave. Captain Jean-Luc Picard always steps forward to put his life on the line to defend his crew. He will fearlessly explore dangerous new worlds, make first contact with unknown beings, and even battle with Klingons.

Picard inspires others to act in the same way as he would by setting a good example. In doing so he gains the respect of his crew. 

Leading by example inspires your team to work towards a common goal. You may not be battling Klingons or negotiating with a new race of beings, but all industries and professions will require their own moments of bravery.

Leading from the front will solidify the ideals you encourage. It will give your leadership more gravity, and will inspire the team members around you. And to quote a past team leader of mine; “By inspiring others; we earn our place”.

# 2 – Good mental health is vital

“Confidence is faith in oneself. It can’t easily be given by another.” – Deanna Troi

Deanna Troi, the ship’s counsellor, sits on the left hand side of the Captain. Her position shows just how important her role is when running a team. She plays a vital role in the overall mental health of the crew as their counsellor and therapist. 

The crew are all sat in the bridge in their seats, with a yellow arrow pointing at Deanna Troi

By ensuring everyone is supported mentally, Deanna keeps the crew running smoothly and harmoniously. Her effective communication means conflicts are resolved, and by offering social support both on the ship and on away missions.

This aspect of team dynamics can quickly be forgotten. Deanna’s close relationship with the Captain throughout the program is a testament to how important her role is.

Deanna Troi sitting next to Picard shows that they aren’t paying lip service to mental health. It is a fundamental area that needs constant work and care. This year more than any other, it’s clear just how important focusing on mental health needs to be. Thoughtful and holistic team management cannot be truly successful without proper care of mental health.

# 3 – Earn respect, don’t expect it – Not all management styles are good

“Respect is earned, not bestowed.” – Deanna Troi

In the 135th episode; “Chain of Command, Part 1,” Captain Picard is sent on a secret mission, the success of which depends on the crew believing he has left for good. Captain Jellico takes command of the Enterprise and immediately starts making dramatic changes, much to the dismay of the crew.

Jellico made so many demands on the crew so soon that they resented him and pushed back on his management style. Commander Riker in particular fell out with him so badly that he was relieved from duty and replaced.

Jellico didn’t listen to anyone, treated the crew with little respect, yet expected them to respect him as Captain. This clearly demonstrates the need to earn respect before you can do effective team management.

Is your boss more Jellico than Picard? Check out this blog on managing your manager for tips on how to help them see the light.

# 4 – Protect your team so they can do their job

Tell your team what they need to know, shield them from things that will only scare/hurt them.

When Chief Medical Officer Beverly Crusher discovers that the ship is infected with an unknown virus that de-evolves living creatures and will eventually kill all the crew, she keeps the details to herself.  This action enables the team to discover the source of the virus and how to get rid of it.

While the crew needed to know enough about the virus to track its origin and try and deal with it, the gory details of their almost certain deaths were not required. Knowing those intense details would, almost certainly, have put them off doing what they needed to do, to get their job done.

To give this a 21st century spin; when a team has a deadline to hit, or a particularly important piece of work to get done, a good team leader or scrum master, using effective communication, can steer the team while batting off any potential distractions.

# 5 – Encourage a learning culture

“Things are only impossible until they are not.” – Captain Jean Luc Picard

Many episodes of TNG revolve around some sort of Research & Development project someone has developed that requires testing. On rare occasions this leads to catastrophe, with the crew battling to get back to some sort of status quo. More often than not the output is successful and benefits not only the ship, but whole worlds and civilizations.

While R&D can sometimes cause issues, giving precious time to learn and experiment ignites the passion and creativity of our teams. While it might not always benefit civilisations as a whole, it can often lead to unexpected improvements in products, processes, and more.

At ProdPad we’ve been using R&D time to experiment with AI – specifically how AI can aid a Product Manager in understanding and triaging their feedback backlog. With this valuable time to experiment we’ve been able to build useful and reactive features.

# 6 – Create safe spaces to talk freely and minimize unprofessional discussion 

Captain Picard would often call someone to his ‘ready room’ for a private chat, out of earshot from the crew on the bridge, using these chats for advice on how to deal with a troublesome officer, or opinions on his plan to tackle a delicate situation. Most importantly, once the door had closed, Picard was able to speak freely. 

Speaking in private creates opportunities for senior officers to figure out a suitable outcome. This would often mean the Captain would be more vulnerable with them than he would the rest of the crew.

Speaking candidly to someone who can help (a senior team member, for example) is useful in quickly finding a solution. However moaning without a point or suggested resolution can lose respect. There’s a time and a place for speaking openly. If you need to talk candidly and honestly, note who’s in the room.

# 7 – Trust your crew

Towards the end of the episode “Hollow Pursuits” the Enterprise mysteriously accelerates to dangerous warp speeds, exceeding design specifications, while the engineering team work furiously to discover and resolve the problem. The rest of the crew can only watch and wait as the ship counts down to hull breach and certain death.

The action is focused on La Forge and Barclay eliminating all possible causes of the problem and slowing the ship. However I can’t help but admire the composure of the crew on the bridge, their patience and trust in the engineers is incredible, staying out of the way so they can work, while they can do nothing but quickly hurtle towards doom.

Their composure allows the rest of the team to continue doing their job properly no matter what the circumstances. 

The Star Trek Next Generation crew are all on the bridge and facing some sort of perilous situation.

It is integral that you trust your team to play their roles. Avoid micromanagement at any cost! While for many of us, our lives don’t depend on being trusted to do our jobs, the strength of a team comes from the trust we have for one another. We will be more successful if we trust those around us.

# 8 – Don’t talk down to anyone – Respect every member of your team

When Captain Picard talks one-to-one with the crew he would replicate them a cup of “tea, Earl Grey, hot”. An important act of respect before engaging them in conversation.

A cup of tea being replicated.
Fancy a hot cup of replicated tea?

The Enterprise is structured by a strict and clear hierarchy, however the Captain talked to everyone as an equal, showing them respect no matter what their position. 

Remember that it doesn’t matter where you’re at in your career, you’re no more or less important than anyone else. You’re all playing a required role and should treat everyone with the same respect you would expect from them.

# 9 – Question the Captain’s intentions and encourage debate

A heated back-and-forth between the Captain and Commander Riker would often feature in episodes of TNG. While this made for great television, from a team management standpoint it demonstrates a key feature in the Captain’s relationship with his team.

The Captain welcomed debate and professional criticisms, even though he was leading the ship, he understood the value of hearing out his team and making an informed decision based on different viewpoints.

Not only does discussion over someone’s intentions lead to better outcomes, it also allows communication of context around a decision and a chance to explain. From a scientific perspective, it is proven that people consider things from different angles when explaining them out loud and often leads to better decision making overall.

More importantly though, having a culture whereby anyone can (respectfully) question their leader’s intentions is incredibly healthy and important in allowing an open and safe culture of communication and harmonious team dynamics.

#10 – Lead from the front

See point 1. After considering all these other tips for great team management, the most important by far is to lead from the front, lead by example, and encourage others by acting in a way you wish the team to act.

Encouraging a team to follow principles like these only works if you start by encouraging yourself to follow them. Leaders should lead by example to solidify ideals amongst the team, and to inspire and earn the respect they require.

—–

So there you have it. My 10 learnings on team management from all 178 episodes of Star Trek: The Next Generation. So, next time you sit down for your lunch break, why not chill out to a mind-blowingly awesome episode of TNG and observe the stellar team dynamics first hand!

—–

In 1987 Star Trek: The Next Generation aired for the first time. Written by Gene Roddenberry, it ran until 1994, spanning 178 episodes over seven seasons.

The post Star Trek: TNG – 10 Extraterrestrial Team Management Tips appeared first on ProdPad.

]]>
https://www.prodpad.com/blog/team-management-tips/feed/ 1
Shhhh… Quieten your world with Ambient Notifications https://www.prodpad.com/blog/ambient-notifications/ Tue, 19 Mar 2019 12:22:22 +0000 https://www.prodpad.com/?p=6158 I first heard about the concept of ‘Ambient Notifications’ during a talk by Amber Case at MTP2017 on calm technologies. She discussed a light she had in her kitchen that…

The post Shhhh… Quieten your world with Ambient Notifications appeared first on ProdPad.

]]>
I first heard about the concept of ‘Ambient Notifications’ during a talk by Amber Case at MTP2017 on calm technologies.

She discussed a light she had in her kitchen that changed color depending on the weather that day. I loved the concept so much I spent the weekend putting together my own weather light (which now functions proudly every morning in the corner of my bedroom and has saved me many an hour looking up the weather on my phone!).

Ambient Notifications
🌞Sunny day! 🌧Rainy day.

So what are Ambient Notifications?

Ambient Notifications are notifications that work in the background to subtly provide you with necessary information, while simultaneously being unobtrusive. Their underlying concept is to notify without requiring instant and direct attention from the user at hand.

Why would we want this?

There are so many things in our world demanding our attention. We’re bombarded by information all day every day. In most cases this causes elevated levels of stress, and we suffer from it immensely (though some wouldn’t care to admit it). If we can abstract a little of that noise into a concept that is more subtle and less intrusive in our lives to reduce stress without reducing information intake, than why not?

How do they work?

Most notifications are served to the user via a screen, and initially prompted via a short buzz that we feel or a well designed sound that we hear resonate from our laptops/pockets/bags. We are prompted via a feeling or sound, though our attention is always brought to a screen where we receive the information the notification is pushing upon us.

Ambient Notifications aim to abstract information into the background of our lives, so that we engage with them only if and when we are ready to. Their main aim is to provide information while not requiring direct attention/engagement from the user. As a great example, Amber’s (and my) weather light download a weather report every morning and illuminate part of the room with a different color depending on the weather that day. The user wakes up and inherently knows whether to take sunglasses or a raincoat depending on the subtle change in lighting that day.

What is so special about them?

Ambient Notifications are special because of their subtlety and their abstraction into the real world. Screens are everywhere now, and the average American spends most of their waking hours looking at them. The moments we have not looking at them are precious and we should encourage more of this. By bringing more of our attention back into the real world and providing us with the control over when we are notified, we may become less stressed and live more fulfilled lives.

How can we design Ambient Notifications?

Take advantage of all senses! We have five senses (though some say more). We should be utilising them all when being notified. Stress builds when one sense is being overloaded with information, and the more we can spread this across the senses, the more we can take in without being overwhelmed.

While visual makes the most sense, with audible coming a close second, we also have touch in our lives with cell phones vibrating. However, new research is suggesting smell make be a great way to subtly notify users and provide extra information in an already overwhelming situation such as driving a car.

What are we doing here at ProdPad?

Here at ProdPad we’ve already brought someone in to help abstract some of our deployment notifications into the real world, Neko! However, recently we’ve been experimenting with taking it a step further and giving smells a try. We now have a mechanism sitting on our developer desk bank that distributes a subtle aroma of grapefruit whenever a new build is ready for testing.

Our development team are bombarded with notifications all day ranging from chat messages to continuous integration notifications. Many of these do not require our direct attention though tend to grab it anyway due to the nature of the way they are dispensed. A subtle waft of grapefruit is just one less notification removed from our screens and brought into the real world, allowing us more brain power on the important stuff, while still providing the information we might need at that moment.

How can this be achieved in your office?

Once again this hack project has been built using a Raspberry Pi to drive the main logic, while the other hardware costs less than $20! You’ll need an oil diffuser to produce the smell and a small USB fan pointing down to distribute it around the desk. A quick google will find you a script to control the power to your Raspberry Pi’s USB ports, and the logic to trigger this script is up to you!More ambient notifications

The applications for an ambient notification like this are endless and I’m sure you’ll quickly come up with ideas that apply to your situation or job role.

I urge you to consider adding ambient notifications into your life where you can, and commend any that have done so already or that will do so in the near future. This is an exciting time for the development of real-world based notifications such as ambient notifications!

The post Shhhh… Quieten your world with Ambient Notifications appeared first on ProdPad.

]]>
Meet the Team: Neko the CatOur Favorite IoT Hack Project https://www.prodpad.com/blog/iot-hack-project/ Thu, 13 Sep 2018 11:06:26 +0000 https://www.prodpad.com/?p=5724 Ok, so this isn’t really a meet the team post, but we do like our IoT hack projects at ProdPad, and we could not be prouder of our little digital cat,…

The post Meet the Team: Neko the Cat</br>Our Favorite IoT Hack Project appeared first on ProdPad.

]]>
Ok, so this isn’t really a meet the team post, but we do like our IoT hack projects at ProdPad, and we could not be prouder of our little digital cat, Neko.

Neko was created using a color-changing nightlight in the form of a cat, a Slack bot and a Raspberry Pi. Its job is to notify the team of the status of the latest deploy.

Deployment alert

To save us time and brainpower in monitoring builds we brought in Neko to help bring to our attention to the completion and outcome of our various deployments. As well as demonstrating a constant positive attitude to the task at hand with his contented smile and subtle glow (ProdPad blue), Neko fades to colors representative of certain deployment environments before fading intermittently to a green or red dependent on the outcome of various tests that the deployment has run.

Alongside this, Neko gives a simple announcement of what has just occurred in layman’s terms to a Slack channel that includes the whole team.

Neko offers a more tangible way of notifying us when deployments are complete and of their status. It brings us back into the room for a second and also means we have one less window on our screen to concentrate on. In a world where we’re surrounded by screens, it’s almost necessary to provide more real-world interactions to demote the tunnel vision that inherently comes with working with screens all day.

Behind the Tech

The tech behind Neko is innovative but simple. A Python program sitting on a Raspberry Pi runs a simple Slackbot that listens in to particular channels and has the ability to parse messages to understand what’s going on in terms of builds and deployments.

The idea of Neko initially was to replace the need for a human to translate the technical information the developers receive through Slack into more meaningful information that our People Ops team can understand.

The Python program responds to particular information by, firstly announcing in layman terms what is going on – e.g. “ProdPad has just deployed to a staging environment!” – and secondly, flashing a sequence of colors to indicate which developer’s build is in question, which environment was deployed to, and the status of the build.

The physical light of Neko is driven via a simple library that controls a set of LEDs inside Neko.

Parsed messages from Slack light up Neko the cat

Each parsed message from Slack drives a different set of colours and means the whole team can be notified “in real life” when a build goes well. It’s like a little disco every time we deploy!

The post Meet the Team: Neko the Cat</br>Our Favorite IoT Hack Project appeared first on ProdPad.

]]>
The 6-Step Technique To Reliably Fix Any Bug https://www.prodpad.com/blog/debugging-techniques/ https://www.prodpad.com/blog/debugging-techniques/#comments Wed, 13 Sep 2017 14:31:59 +0000 https://www.prodpad.com/?p=5138 I defy you to show me a digital product that hasn’t required debugging techniques to fix a bug during its development. Developers are only human so we’ll always be faced…

The post The 6-Step Technique To Reliably Fix Any Bug appeared first on ProdPad.

]]>
I defy you to show me a digital product that hasn’t required debugging techniques to fix a bug during its development.

Developers are only human so we’ll always be faced with issues and bugs in the systems we build, but we can control how we handle them.

From my years of working in web and product development, I’ve found out the hard way that taking shortcuts to squash a bug doesn’t work. In my experience, those bugs continue to haunt you and find new ways to cause problems.

I’ve now developed a reliable debugging technique that I use to fix all bugs that come my way.

I find that the more disciplined I am with this debugging process, the less I’ve had to revisit old bugs that I thought we’d moved on from. It does sometimes feel time-consuming, but the output has been more reliable over time and is totally worth the effort.

I hope these steps can be of help to you too.

Fix Any Bug Step 1 – Replicate the bug yourself

Take time to replicate the bug yourself, even if someone else has already done this for you. Be sure to make a note of the replication workflow you’ve found, as you’ll need this later when you have to communicate the details with your team.

Just like a scientist testing a theory or a detective proving a case, it’s critical for you to review the evidence and come to your own conclusion. This is your key to prove the before and after: what was broken and what bug now fixed.

There’s another reason you don’t want to skip this step: You know your way around the codebase better than someone else does, so your angle will always be different.

If your work results in the same workflow, great! You now have even more evidence zeroing in on the scenario that causes the issue. If not, then you have saved yourself time in the long run because you haven’t looked into mechanics that aren’t part of the problem.

Step 2 – Make sure you truly understand the problem

debugging techniques to fix a bug

Assumption is the root of all f&#*-ups.

If you assume what the problem is, this may bite you in the bum later when a linked issue arises.

So try this instead: When you get information on a new bug, step away from the assumptions and try to interpret the issue by looking at just the facts.
From here, you can start to piece the issue together.

A whole range of different mechanics are likely to be involved when you’re re-creating the bug, so it’s important to pin down exactly where in the code the issue is. By pinpointing where in the code the bug was caused, you’ll have a solid answer when your team says to you “Great, it’s fixed! But what was wrong?”.

And not just for your sake.

It also strengthens your team’s confidence in your ability. And it gives you peace of mind that you’ve tweaked the right piece of code that causes the issue.

This debugging technique means you have a solid way of replicating the bug from a UI perspective. However, it doesn’t necessarily mean you understand it.

Avoid running on assumption, even if it happens to be correct.

Step 3 – Fix the bug

You know what the problem is and you can now reliably prove a fix to others.

So now…go fix the bug!

I can’t really help you with this, sorry. I know, you read the title and you assumed I could. I couldn’t be more sorry and I’m British, so you know I mean it. I’ll just be here waiting patiently with my tea!

fixed a bug with more debugging techniques

Step 4 – Prove the fix

You’ve fixed it, well done! Now you can prove you’ve fixed a bug using the replication workflow you made a note of in Step 2. Perfect, everyone’s happy.

Though we’re not quite out of the woods yet…

Step 5 – Don’t test your fix. Try to break it.

Testing is a vague concept in itself.

Testing a fix in a digital product can mean anything from simply proving the bug doesn’t exist anymore in the original scenario to retesting the whole product.

Save yourself the confusion. Don’t test the applied fix. Instead, go in and try to break it.

Here’s why: Even if you have a test suite with 100% code coverage you could still miss a vital scenario that could present issues. Trying to break it gives you a goal and helps you and your team push your work to its limits.
In the short term, it may not be very satisfying to discover new bugs or different scenarios that recreate a bug. In the long term however, it gives you and your team a sense of trust in your own work.

From a developer perspective, these debugging techniques mean you are weeding out weaknesses in the product much more effectively.

Step 6 – Closing the loop

Did you manage to break it? Oh dear. Go back to Step 1 and try again.

If you couldn’t break it, congrats! Don’t you feel so much more relaxed knowing that you know exactly what you’ve fixed?

Close the loop

Our product management blog has even more articles on a range of PM topics.

Free Handy Guide for Product People

The post The 6-Step Technique To Reliably Fix Any Bug appeared first on ProdPad.

]]>
https://www.prodpad.com/blog/debugging-techniques/feed/ 1
How To Auto-Populate Fields On Customer Feedback Forms https://www.prodpad.com/blog/auto-populate-feedback-form-fields/ Thu, 10 Aug 2017 14:45:23 +0000 https://www.prodpad.com/?p=5031 How about adding a little magique to your customer feedback forms? With this quick setup, you can auto-populate customer details on your Customer Feedback Portal so they don’t have to.…

The post How To Auto-Populate Fields On Customer Feedback Forms appeared first on ProdPad.

]]>
How about adding a little magique to your customer feedback forms? With this quick setup, you can auto-populate customer details on your Customer Feedback Portal so they don’t have to.

Pre-Filled Form Fields in the Customer Feedback Portal

This little time-saving detail makes your customer experience shine. Fewer form fields reduces friction for your customers, which usually results in an increase in form submissions. It’s a nice little touch that also helps you get more customer feedback.

In this post, I’ll walk you through how to set up pre-filled form fields for customers who visit your Customer Feedback Portal or use your Customer Feedback In-App Widget.

Here is a short example of implementation to help get you started.

First we will look at targeting the element to dispatch to and listen for events. Then we will set up the events used to pass the ‘name’ and ’email’ values to the widget. Lastly, we will listen for when the widget is initialised so that we know that we can successfully pass the values in.

Step 1: Target Your Widget

Both of the tools that come with your Customer Feedback Portal emit and receive their own specific events to allow for programmatic interaction.

Initially we need to obtain a reference to your widget, so that we can listen for the these events:

var widget = document.querySelector('[data-pp-cfiw-widget]');

To target the portal widget, use the data attribute 'data-pp-cfpw-widget'

To target the in-app widget, use the data attribute 'data-pp-cfiw-widget'

Note: We are assuming here that there is only one instance of each widget on the page. However, if there are more then simply target each additional widget further by adding into the query the widget’s UUID (this is the widget’s generated data attribute string) as the attribute’s value.

Step 2: Set Up Events

Next we need to set up a CustomEvent that will be dispatched to the widget to set the value of the ‘name’ input in it’s form:

var setNameEvent = new CustomEvent('setNameValue', {
   'detail': 'Will'
});

This creates the event object, though doesn’t send the actual event yet, we will do this in the next step.

The ‘detail’ property should output the name value that will be displayed in the form for your ‘name’ input value. We are just using a static string here to keep it simple.

We can also create an event for setting the email value, but you could just set the one event if you preferred:

var setEmailEvent = new CustomEvent('setEmailValue', {
   'detail': 'will@email.com'
});

Step 3: Listen for Widget Initialisation

Next, we can create an event listener to listen for the widget’s ‘initialised’ event. Once the widget is ready, it will emit this event which indicates that it is ready to receive our custom events.

So let’s set it up to dispatch our events on hearing the ‘initialised’ event:

widget.addEventListener('initialised', function(e) {
   // The widget is now ready to receive events
});

Note the English spelling of this event, I apologise, I’m British and the ‘z’ just didn’t look right.

Step 4: Dispatching Events

Finally, we can dispatch the events to set the input values at any point after the widget has been initialised. So, for example, if the user logs in after the widget has already initialised on your website, then you can set their name and email in the widget form after this has happened or if they update their name or email for some reason.

widget.dispatchEvent(setNameEvent);
widget.dispatchEvent(setEmailEvent);

Note: These events can be passed in at any time after the widget has initialised.

Putting all the code together…

You should now have something that looks like this:

var widget = document.querySelector('[data-pp-cfiw-widget]');

var setNameEvent = new CustomEvent('setNameValue', {
   'detail': 'Will'
});

var setEmailEvent = new CustomEvent('setEmailValue', {
   'detail': 'will@email.com'
});

widget.addEventListener('initialised', function(e) {
   widget.dispatchEvent(setNameEvent);
   widget.dispatchEvent(setEmailEvent);
});

Extra detail on the events involved…

Emitted Events

'initialised' – This event will be emitted from the widget/portal’s base element when it has fully initialised. It will pass down the widget’s configuration as an object in the ‘detail’ property of the emitted event.

Received Events

Once the widget/portal has initialised it will listen for these events…

'setNameValue' – This event expects the ‘detail’ property to be a string that it will apply as the value of the ‘name’ input in the widget/portal’s form.

'setEmailValue' –  This event expects the ‘detail’ property to be a string that it will apply as the value of the ‘email’ input in the widget/portal’s form.

So what’s next?

Why stop here? There are tons of ways to customize your Customer Feedback Portal – plus a free API to help you roll out an even better experience for your customers.

The post How To Auto-Populate Fields On Customer Feedback Forms appeared first on ProdPad.

]]>