OrgConfessions

OrgConfessions – there are some lists you shouldn’t be on

The Salesforce platform is very powerful, but as Spiderman was told “with great power comes great responsibility”. And whilst we can laugh or grimace at these OrgConfessions, there is a serious point here. Salesforce has the potential to transform your organization.
Take a look at the root cause analysis we performed on the OrgConfessions and you will see some common themes. Most of these confessions could be avoided with better analysis, architecture and governance which is why we built Elements.cloud.  We are collecting stories of calm Orgs – OrgZens.  Submit your OrgZen story
Training developed to keep you off this list.
Visit the training site

 

  • Confession #858

    3 exact same field types on one object:

    Agent or Direct

    Agent or Direct?

    Is an Agent or Direct

  • Confession #857

    Trying to create a report grouped by a custom ‘Status’ field and being presented with almost 50 variations of a status, Only to find out that said Status field is not a picklist, but a text field.

  • Confession #856

    No UAT before pushing to production and then getting rapid fire request when ‘bugs’ are found

  • Confession #855

    Because support finally figured out how to fix the issue where every time a sandbox refreshed, I had to login and immediately reset my password (no one else on the team, just me). For a number of months it didn’t take, so every login I had to reset. 2-4 environments refreshed every 2 weeks for the past 20-some months = so many password resets

  • Confession #854

    Trying to create a report grouped by a custom ‘Status’ field and being presented with almost 50 variations of a status, Only to find out that said Status field is not a picklist, but a text field.

  • Confession #853

    When an end user messes with your dashboard reports that are in a specifically labeled Dashboard reports folder. And are titled Do Not Modify.

  • Confession #852

    A thing my customer just said: “We can do anything with Salesforce except for that we don’t have our actual data in the system”

  • Confession #851

    Just joined a new company as a Salesforce Admin. They use picklist fields with users’ first and last names where lookup fields should be used and custom number fields to for currency.

  • Confession #850

    People who take Salesforce docs and turn it into a blog should be shot

  • Confession #849

    New Lead/Contact field request: Marital Status and # of Kids…

  • Confession #848

    The integration team moves to a new middleware platform with 12 hours notice and no QA signoff from the team but management decides it’s worth the risk because of another team.

  • Confession #847

    And now with my boss leaving, our Salesforce Steering Committee thinks it’s a good idea to have the whole team unanimously approve EVERY request that comes in for a change. There are 11 people on the Steering Committee, including the CEO, so the CEO has to approve a picklist value addition.

  • Confession #846

    #Appexchange Consulting page is broken, there are Gold partners showing up under Platinum, Silver and Platinum partners showing up under Gold, etc. Are the #AppExchange Listing tiers wrong or the page grouping listings into the wrong groups? I think all of us partners would gladly provide free QA services to the AppExchange team if they asked.

  • Confession #845

    A senior consultant

    1) created field in Account: “Modified Date and Time”

    2) set history tracking on this field

    3) set up a workflow rule (ISCHANGED) to carry out Field Update

    With this _recursive_ process, after 3 months we have a 9Gb history file! The project mgr (w lots of certifications) and the consultant did not believe me — despite the evidence of a 9Gb file!

  • Confession #844

    A client called me to implement some new requirement in their org as the previous internal Admin left the company. I found that 28 of the 30 active users were set as System Administrators… When I highlighted this to my customer, he told me that a dozen of them were not part of the company anymore! First workshop was around Profiles and Security 🙂

  • Confession #843

    10 admins. Over 1,000 integration failure cases. 1 clerk performing a gap analysis on data solves the issue in a mass update, instead of trying to solve the case.

  • Confession #842

    When I first started I wanted to have different record layouts based on the stage of an Opportunity. So I used Record Type for each stage.

  • Confession #841

    We have an Org where the consultants had added custom objects and fields which typos as English was not their 1st (or 2nd) language. They are everywhere so we cannot change them.

  • Confession #840

    I inherited an Org. The Opportunity object had been renamed to Project. And then someone had added a new custom object called Opportunity.

  • Confession #839

    I had a horrible boss. I was the Admin and she dragged me along to a trade show. She wanted a file of leads uploaded to our Org. I normally want to check and recheck. She told me I only had 15 mins. I uploaded the CSV file and missed a column. Every contact name was replaced with a date. It took me 2.5 hours to fix it.

  • Confession #838

    New job with a new company. The Salesforce instance is in shambles. Tests failing in production, copy+paste classes put in by a sales director, etc. Absolutely MUST deploy a piece of code by EOW, but code coverage is at 62%. Just deployed a fake class with 1001 lines that do absolutely nothing with a companion test class that tests to make sure that class does absolutely nothing. Brought coverage up to 77%.

  • Confession #837

    I had an org that took a bit of work to get Dreamhouse MP out of last year because someone used the fields!!!

  • Confession #836

    Deleted a softphone layout. Now most of the setup pages are broken.

  • Confession #835

    Hard-coded start and end date variables in test classes, causing tests to fail on code deployments during most of the year.

  • Confession #834

    For a week scratching my head why the standard CPQ contracting process isn’t working in one of the communal sandboxes….then realized the client turned off CPQ triggers

  • Confession #833

    Found a checkbox under the section of the page layout called ‘Correspondence Opt Outs,’ so TRUE means the Account doesn’t receive the mailings and FALSE means that they do, but that isn’t indicated anywhere in the label or API name for reporting or data pulls.

  • Confession #832

    I just joined a new company who has never had anyone with any real Salesforce experience. There are 56 profiles and 50 roles for 184 users.

  • Confession #831

    Quick Create is on my short list of things I turn off immediately in a new org. Its a great way to create orphaned contacts. I once had an org with over 100k contacts with no accounts. Many of them the same name

  • Confession #830

    we recently had some really annoyed users whose dashboard reports were all of a sudden inaccessible after we had removed a field. What we were not aware of was that historically when the field was created (lookup field) the system automatically had created a record type which was automatically made available standard out of the box with no knowledge of ours that this has happened. When the field, which we had created was retired and removed from view it automatically removed the record type and therefore all existing reports which were built using this record type. As the field in particular which we removed was not used we were not aware that this record type was there and this record type as created by salesforce was not shown on the where is it used list.

  • Confession #829

    A new customer came on board. On first inspection of their org, we found that they had created a custom object and named it Cases__c. When we asked why they did this, they told us that Case is singular, and that they will have more than one Case per customer, so they clearly had to create Cases__c. Duh, I guess.

  • Confession #828

    “We need a new Salesforce Org.”

    “Why?”

    “We ran out of licenses”

  • Confession #827

    Working with a bunch of API names that are NOTHING LIKE the corresponding field labels and are so far from being actual words or logical abbreviations that you have to copy/paste them each time to get them right…

    Or the reverse where you have a bunch of fields with exactly the same labels (I’m looking at you, “ZIP Code,” “Business Phone,” and “Mobile Phone”) and different API names.

  • Confession #826

    Scrolling through Account fields: PhoneNumber1_c, PhoneNumber2_c,…. PhoneNumber10__c

  • Confession #825

    Last Monday (April 06th) night, I found a prospect where his custom object has 762 fields, 2500 record types, and 1500 page layouts. I am staying in quarantine for the next couple of years.

  • Confession #824

    Trying to make a change to one field that gets set through a process builder… come to find out, there’s one process builder that then each node invokes another process builder (total of 8 on the opportunity object). One of the invocable process builders just updates the opportunity name. A little excessive to do a whole invocable PB for one small update, but alright… The next node invokes the next PB that has one node – ‘no conditions! just execute the actions’ and the action is labeled ‘nothing’ and literally does nothing. Been at this 2 hours trying to document what all this is doing – still haven’t found where the one thing is that I need to update.

  • Confession #823

    Oh look, the consultant created ANOTHER custom field with the exact same name and data type as a standard field on the same object.

    Did you see what I did there?

  • Confession #822

    Oh look, the consultant created ANOTHER custom field with the exact same name and data type as a standard field on the same object.

  • Confession #821

    467 page layouts & 467 record types for a custom object

  • Confession #820

    When your boss is let go who set up the entire org, its automation, and cpq

  • Confession #819

    When you’re trying to figure out why a standard field isn’t on a page then realize its a visualforce page that looks EXACTLY like the standard page layout.

  • Confession #818

    We have a formula field that looks like minified JavaScript.

  • Confession #817

    Just in: Request to rename the Opportunity “Type” field to “Opportunity Type”

  • Confession #816

    Recent exchange with manager

    Me: it’s not working because someone turned off the code in the integration system in the last two days.
    A manager : that code was NEVER turned on since the time the product went live, but clients were still able to place orders just fine. The codes are not magically changing from one day to another.
    Me emailing another colleague; can you check the logs of the field on the integration system to see if the code was ever turned on?
    Colleague : yes it was on when the product went live. It was accidentally turned off and I know exactly when.
    Me forwarding email to ‘the manager’ : Magic!!

  • Confession #815

    Client has just informed me that they no longer have an immediate need for an integration and will revisit at a later date, three days after I’ve finished the integration.

  • Confession #814

    A flow is broken because someone changed some restricted picklist options.

  • Confession #813

    Client is going to do testing in about 30 minutes, and they off-handedly mention that they want me to automate 11 email templates real quickly. “Should take like ten minutes”.

  • Confession #812

    Your users are getting validation errors when sorting quote line items, but nothing looks like it should be hitting the validation rule. You investigate further, only to find out your previous product manager was changing a custom price field (which your validation field was referencing) and not the Pricebook entry, thereby causing the error. Now, you have to do a pull of all your PBEs to make sure they match the custom price field

  • Confession #811

    When you ask a customer about the 2000 historic Leads nobody has touched. ‘Our Leads are complex it can take 2 years to close’. Then you explain about ‘Lead Lost’ status.

  • Confession #810

    “Can you create a picklist of our (thousands of) accounts for the primary affiliation field so we don’t have to do any typing?”

  • Confession #809

    Audit an Orgs data security model and found a permission set assigned to 1/4 of users called “Edit List Views”. Edit List Views has Modify All Data and Manage Users enabled.

  • Confession #808

    I just uncovered a Process with 84 versions. And they don’t even have one process per object.

  • Confession #807

    Because the forecast tab doesn’t use dated exchange rates and I have to keep explaining why there’s a difference between what is in the forecast and what is actually displayed on the opportunity.

  • Confession #80

    Trying to figure out why a standard field isnt on a page then realize its a visualforce page that looks EXACTLY like the standard page layout

  • Confession #805

    Working with a bunch of API names that are NOTHING LIKE the corresponding field labels and are so far from being actual words or logical abbreviations that you have to copy/paste them each time to get them right…

  • Confession #804

    At a previous company all tables were actually just unique #s and you had to look up somewhere else to get table name. i.e. something like TBL1121021 was Accounts and TBL2423432 was Contacts (This wasn’t in SF at least)

  • Confession #803

    User: Why wasn’t this email sent to this Contact?

    Me: *pulls email logs, checks records* There’s no email address entered for this Contact. There has to be an email address or the system doesn’t know where to send the email.

    User: Thank you for the clarification.

  • Confession #802

    A client Org has everyone set up as System Admin. Additionally, there is a generic username license that someone used to log in and delete records and export data. I’m sure it’s all just a misunderstanding….

  • Confession #801

    We had two resources spend one week to create a process build driven by two fields which have never been filled out.

  • Confession #800

    PUBLIC SERVICE Announcement! If you make your mtg links PUBLIC you run the risk of some horrible sick person joining and flooding your viewers with disgusting images!! This JUST happened during our Ohana Wine catch-up! We had to end the mtg because we got infiltrated.

  • Confession #799

    We discovered by using Elements that we have custom fields on Leads that are used in Apex Classes, reports and dashboards. And we don’t even use Leads. We ONLY use Accounts.

  • Confession #798

    We have over 170 custom apps. Our work seems to be work through them and deprecate the ones we aren’t using, and then 3 months later build them again as a new set of requirements pop back up/

  • Confession #797

    Did you know that Salesforce will not stop you from creating an apex class called Test that then goes on to break any code that has Test.isRunningTest() in it? Also having a variable named “json” breaks all sorts of stuff. It took us forever to figure out what the problem was!

  • Confession #796

    Please enter Twitter handle: enters new and old URLS

    Please enter contact e-mail: enters main and backup e-mail addresses

    Please enter contact phone number: enters explanation of why the contact phone number hasn’t been entered

  • Confession #795

    When cleaning up the 1500 account dupes with a third party dedupe tool. And your manager says “well, just in case, export the list and dedupe in Excel afterwards”. What?!?!?

  • Confession #794

    Local IP addresses (192.168….) whitelisted on profiles.

  • Confession #793

    Had a user add not 1, not 2, but 106 contacts manually after I explicitly said to send me their list of contacts soI can format and load them in the system. Said it took him the entire day. Needless to say, all his entries were incorrect and were promptly deleted.

  • Confession #792

    When you’re updating advanced criteria for a managed package, testing, and the thing doesn’t work after an hour and a half, then you realize you’ve been updating the description of the condition instead of the actual condition criteria…

  • Confession #791

    Discussion on forum over the course of a day involving 3 people (names changed to protect identities).

    Mary :I am experiencing a frustrating issue with updating custom fields via Data Loader. Here’s my case… we need to update 35,000 contact record’s custom address fields. Yes, 35,000. When i try to use Data Loader’s “Update” function, it hits an Apex CPU time out error. So far, i have disabled all Contact record-related processes, which did not work, and also tried batch sizes of as low as 50 records for an update – still no luck. Can someone suggest some further adjustments? Thank you!

    Pete: Have you tried dropping it down to 20?

    Mary: Only down to 50. My fear is that if we need to do 20 at a time, with 35,000 total, it’ll take days….

    Robert: Is the field you are trying to update tied to any automation? Is there any automation based on Edit on Contacts?

    Pete: You must have a ton of automation on contact. You’ll need to look at triggers and process builder and see if you can improve anything.

    Rob: Might not be on that contact itself, but automation somewhere that is referencing that field.

    Mary: There is, but I’ve de-activated those processes and the error continues…

    Rob: Triggers?

    Mary: I have not set any triggers up…

    Pete: Or maybe rollup fields from contact to account that is then causing automation to run there?

    Rob: Did you check the Where Is This Used on the field? Just to make sure there isnt any automation elsewhere

    Rob: Do you have any managed packages?

    Mary: Yes

    Mary: We have one rollup field

    Mary: Checking now…

    Mary: We did have one workflow that i wasn’t aware of. Would that be enough to cause preventing them?

    Rob: You should check in Object Manager to see if there are any triggers on Contact. One or more of the managed packages might have installed one.

    Mary: There is one from a managed package that checks duplicates. Should this be disabled?

    Rob: I guess depending on what the workflow rules criteria is and what the action is as well.

    Pete: It is so hard to say what could be the culprit without a lot of trial and error and poring through debug logs. Your rollup could be causing automation on the account to fire. The workflow could be doing a field update that causes other automation to run. The managed package could be causing the problem. It could be a combination of all of them.

    Mary: It WAS the trigger from a managed package! WOOHOO!

  • Confession #790 & Org Zen #24

    I once shared administration duties with another person who couldn’t be bothered to learn the first thing about how to administer Salesforce, merely taking the shortest path to get any task done. For example, instead of learning how folder sharing works, she made all users System Administrators so that they could see all of the reports. I put a stop to this by creating a Validation Rule to throw an error any time she attempted to make someone a System Administrator. I made the error message something nonsensical like “Illegal action on system.create(User): Error code 0X776yuZw8bXx22. This action is not permitted in the current application state.” Then when she kept asking me if I knew anything about this, I just played dumb.

  • Confession #789

    I need to do some Permission Set clean-up (and put into Groups), but there are a number of them I didn’t create & of course there’s no documentation on it so I don’t know what’s in a lot of them.

  • Confession #787

    1200 lead to contact dupes. And leadership thinks it is ok and won’t be a problem…….

  • Confession #786

    I ran data loader and instead of inserting the 500 records from the XLS it inserted 50,000 records and blow up my Dev Org. The only option was to create a new Org and spend days recreating the customizations and data.

  • Confession #785

    I created a new Opportunity field in a sandbox, promoted it to production, then used Data Loader to update the field. Unbeknownst to me another admin had created a badly defined Opportunity Workflow directly in Prod. The Workflow fired every time an Opportunity was edited, and if the Opportunity Name was null, it closed the Opportunity as Lost. I have no idea what this was supposed to accomplish. But the end result was a whole bunch of incorrect email notifications going out about lost Opportunities. I spent days cleaning that up.

  • Confession #784

    My first admin job years and years ago – Lotus Notes was the system of record because SF had dates that were 4-5 years past due on opps. 154 admins, out of date opps, and maxed out fields.

  • Confession #783

    I have at least 5 for all the BU / Industry fields…one for each ‘data type’……you know…..just in case. I deleted 4 and moved the “data” if you could call it that to the standard Industry field.

  • Confession #782

    People hated that I took Admin away first. Their biggest fear was what if we don’t have the fields we need? They just could’t just add fields.

  • Confession #781

    5 Industry Fields on Account, 3 were text.

  • Confession #780

    My first admin role was for < 20 users and excel was the SSOT because their "vp of sales" could flub the #'s .Once I got Salesforce humming and could report on opportunities after a cleanup, they quickly saw how lazy he was and NOT selling anything just collecting a paycheck, but he was one of the "good old boys", so instead they alienated me until I quit because i exposed flaws in their processes.

  • Confession #779

    I’m forced to do a full system review right now and cleanup. We’ve been through 4 partners since I started and are getting a new one soon. We’ve got a hot mess for our system, and little to no documentation. Needless to say I need to pretty things up for them and clean it all up.

  • Confession #778

    Every app I’ve tried to purchase has gone through at least six months of legal negotiation to agree on terms and conditions.

  • Confession #777

    So after a great deal of troubleshooting we just realized that a managed package in our sandbox is somehow saving record data and metadata to and from our production org instead of the sandbox where it is installed…. :astonished:

  • Confession #776

    Sales Cloud Einstein is predicting we’ll close the quarter with less revenue than we’ve actually closed to date. We re-established forecast settings first week in February so I’m wondering if that messed with the data. Went from monthly to quarterly forecast periods.

  • Confession #775

    The assign user list has gotten a bit chunky and can take a little while to scan through all the names, has some dead or inactive users that could be removed (my personal favorite being “not used not used”)

  • Confession #774

    Field created in 2012. No workflows, not on any page layouts, referenced in 20 reports. 6 million records, all blank. Referenced in a SOQL query in one class but never used or evaluated. Just queried for, and summarily ignored.

  • Confession #773

    When you bang your head against a wall for a week to determine why a client isn’t getting Lead Assignment emails only to find out they had filtered all emails from Salesforce to a folder they forgot about.

  • Confession #772

    User went straight to HR to gain access to “Add himself” to all the Opportunities he’s worked on…. HR came to my boss, copying me, and asked if we could give him access. My boss being way more PC than I would have been, said that it could cause issues “hypothetically” speaking if we just let him do that without the Opp Owner involved. “Not that he would ever” add himself to an Opp he didn’t belong on…

  • Confession #771

    54,146 Email Templates. 114 MILLION tasks. 18 MILLION cases. 1.4x storage limit.

  • Confession #770

    You check on a functionality requirement before the development has started and it wasn’t required. And then the demo with the client happens and suddenly it’s required.

  • Confession #769

    Overseas developer turned off all of our process builders without notifying anyone. You can imagine the chaos that caused!

  • Confession #768

    1.5 MILLION reports and 1.5 MILLION metadata items.

  • Confession #767

    Moving too fast. Sandboxes not refreshed so out of sync. Development straight in production. Fields deleted by mistake. No documentation. No formal processes.

  • Confession #766

    Company has an OBJECT called “Contact Nick Names” (yes, spelled just like that) to track people’s nicknames.

  • Confession #765

    We discovered that Sales Reps were deleting Closed Opportunities to increase their % win rate.

  • Confession #764

    Field deleted without checking with Analytics. And therefore Snapshots and Reporting failed. Lots of time spent remedying.

  • Confession #763

    Remapped Contracts because of poorly tested requirements in a stale sandbox.

  • Confession #762

    We use Apex triggers because no-one knew about field dependencies. Also we crated custom objects because no-one knew about record types.

  • Confession #761

    CIO Said “any monkey can do this.” Removed experienced, certified Admin with low-cost inexperienced outsider. They created such a mess in the Org that it had to be shut down and a new Org spun up.

  • Confession #760

    The Org has 12 Products and 38 Opportunity record types.

  • Confession #759

    I accidentally “admitted” 1300 students to our university. Luckily the head of admissions noticed and only a few had “enrolled”.

  • Confession #758

    Filling fields using Flow rather than formula fields.

  • Confession #757

    Users are getting errors when trying to save a PDF to a quote. It’s a couple users & they’ve tried different templates. Last night I rolled out a Quote Record type, but the quote with the problem is on the new record type. I’m just now realizing we have the ‘Notes & Attachments’ related list on the quote. It’s not ideal, but I updated the approval process to unlock the record after it’s approved.

  • Confession #756

    I inherited an org which had data from 2 acquisitions in less than a year dumped into the system with ZERO efforts to dedupe, and loads of “legacy XYZ field” fields from both orgs. It’s been 2 years, and I’m still finding things to clean up from these.

  • Confession #755

    We’re agile, but disorganized agile. We have a sync every minute from other db. No documentation of mapping so no-one knows the implications of making changes.

  • Confession #754

    My CEO called my cell telling me an entire program wasn’t showing up on any of his reports. The department manager had deleted that program record. I spent the entire night increasing security access and recreating data.

  • Confession #753

    Anyone have any examples of dashboard’s they’ve created to track their business? I’m specifically interested in anything related to Salesforce/Pardot campaigns performance. We’re planning on trying to create something in Excel/Google Sheets because we find Salesforce’s capabilities to be lacking.

    Have you looked at any of the free Salesforce Lab Dashboard packages on the appexchange? I’ve used some of them as a baseline, then tweaked per our business.

    I have never been to the AppExchange before. I will look. Thanks.

  • Confession #752

    Discovered a small org where an untrained person was serving as their admin. When new users joined, the admin just overwrote an inactive user account with the new person’s details because it was easier than creating a new one from scratch. Now you have a new user with years of history and out of context Chatter history…

  • Confession #751

    Spent 3 hours putting a change of process in live after weeks of designing and testing to needs of the requester to resolve an audit issue. By the end of the day, had to turn the new process off again as whole sales team up in arms about the process that they hadn’t been consulted on.

  • Confession #750

    Support agent I’ve been working with for weeks on a Lightning Out issue reveals they don’t know what an OAuth token is by calling it “some kind of reusable token” and asking to instead provide an “API Session ID”.

  • Confession #749

    User emails for a password reset because they can’t login to the sandbox using the production ID even though they’ve been emailed multiple times to append the sandbox name to their ID.

  • Confession #748

    I couldn’t keep from laughing upon hearing that a client wants to rip out their integration for importing Dated Currency Exchange Rates and instead have the numbers emailed to them from the bank and upload those, because the integration costs too much.
    I still don’t know how they think they’re going to get the rates into Salesforce. Maybe using that “enable magic” checkbox?

  • Confession #747

    Expired all passwords without notifying users.

  • Confession #746

    How many times do I have to tell Salesforce Support and our AE that we do not want to use Premier again? Premier Admin Assist messed up an import so bad that it took 5 of us over 2 years to clean it up.

  • Confession #745

    I’ve worked with a team to build out Service Cloud for their use successfully. One component of the team has asked for a many-to-many relationship between Cases and a custom object. This team did not like using the junction object and instead asked for fields on the Case details only eliminating the custom object and junction object. Now… they are asking how they can add many to many relationships for the same content. Luckily I only hid the custom objects knowing that we would come full circle.

  • Confession #744

    I worked as a Solution Architect/BA on a transformation project. I was not given access to the any of the tools to do my job (Jira…) by an offshore SI. I had to knowledge transfer and suffered for 4 months until I quit. They went pseudo live 2 yrs later with less than limited capability..

  • Confession #743

    I was called by a Salesforce customer via a friend that knows the CEO. Their implementation was done at high cost. When I logged into the Org I saw that much of the work was done by an offshore user. One one object they created 5 Record Types. But all 5 were assigned to the same Page Layout, and none of the picklists were customized.

  • Confession #742

    Interviewed with a company considering implementing salesforce but the guy leading the effort decides to want to build a Home Grow CRM. Asks me if I want to be part of this effort. No, I’ll pass and good luck with that. There is a reason why nearly all of the Fortune 500 Use SF. Hello!!!

  • Confession #740

    I can’t get a lighting readiness report to run now in Spring 20 for a client. I guess the objects don’t want to be touched 🙂

  • Confession #739

    A user (who unbeknownst to me) had “view set up and configuration” permissions, sees the prompt about updating record page settings, follows the prompt instructions and inadvertently makes the activity component on every lighting record page disappear. Then when I set it back it changed the assigned custom lightning record page to a new default one for every record page I had created. Meaning I had to spend my day fixing every object that I had made custom lighting record pages and switching them back. Constant emails of “hey I can’t see this” “the layout is different in cases” all….day….long. Promptly removed “view set up and configuration” from said user.

  • Confession #738

    Clients learning to create fields have marked EVERY **** FIELD required instead of on the layout

  • Confession #737

    We have 154 customers with 300+ sites and salesforce has just changed the fundamental security model for sites. #whyadminsdrink

  • Confession #736

    I did a mass update of email addresses on contacts in the “sandbox”, to a few internal addresses, so during UAT, the users could simulate and test our real processes. I was worried they would actually send to one of our contacts…well, SOMEHOW, I managed to do the update in production…

  • Confession #735

    Client describes a CPQ product as what they want but balks at actually purchasing CPQ; wants a “roll-your-own” CPQ

  • Confession #734

    How about creating multiple custom objects…WITH THE SAME NAME! Like a custom object called Contacts or Reports or Accounts. ….I’m going to slowly step away from my electronic devices now and get me some Tums. I’m having some serious PTSD right now

  • Confession #733

    Oh look, the consultant created ANOTHER custom field with the exact same name and data type as a standard field on the same object.

  • Confession #732

    Consultant set everything in a new org as a custom build, all custom objects, custom pages using apex code. No declarative features. No workflows. No process builder. No roles. All users setup as system admins. No sprints. No training. No documentation. No surprise… it doesn’t work.

  • Confession #731

    Org reached its hourly limit for processing workflow time triggers. Processing will resume in the next hour. I am trying to run Email alerts on more than 20,000 Leads.

  • Confession #730

    Deployment for Community pages simply leaves out 1 page, which cannot be selected separately in a change set.

  • Confession #729

    Just ran all tests in a client org. Over 800 Apex Test failures, probably half of them due to issues with State and Country Picklists. Assertions failed, SOQL 101s, Mixed DML errors, Null Pointer Exceptions, etc. Probably no one will care, though.

  • Confession #728

    We have page layouts named after people who no longer work for the company

  • Confession #727

    We have 9M characters of Apex code. I KNOW there is stuff in here that is not called anymore, aside from the stuff that could be optimized.

  • Confession #726

    4 of us on 1 hour long call chasing through why Mailchimp integration doesn’t work. Turns out it doesn’t actually sync fields greater than 80ch even though you can add it to the sync mapping. e.g LongTextArea fields. Doh!! The only way to check was to add dummy fields directly into production.

  • Confession #725

    We had 83 installed unlocked packages in production. Nightmare to manage. we also experienced a sudden slowdown in installation times for no apparent reason; some of our packages were lasting 1:30h to build & install

  • Confession #724

    Inherited an org with no documentation that has a duplicate of the Lead object called Lead__c no one can tell me why we have it, everything is the exact same but I’m not allowed to delete it either….the real kicker…we don’t even use leads, just accounts and contacts!

  • Confession #723

    Was asked to back up a custom object before a major change set, turns out 90% of the 2000 fields were hidden from admins so would not show up in the backup!

  • Confession #722

    On the account object we have a custom field that holds the ID of the record (and no, it’s not the 18 digit case safe one, that also held in a field of its own too!)

  • Confession #721

    I found out recently I wasn’t the only one in the office with a pencil sharpener.

  • Confession #720

    We had an app that managed hotel rooms. A manager needed a report showing the rooms they had on one side of a hall – the odd numbered rooms. Someone created a checkbox field with the name “Is_Odd” which was true for rooms with odd numbers. They didn’t bother with a description of the field. Later, a manager asked me, “What criteria makes a room odd?”

  • Confession #719

    You’re using an e-sign app and they let their SSL certificate expire so couldn’t sign paperwork for almost a full day.

  • Confession #718

    Went for an interview with a well known brand, and they are going to have an offshore team build their basic Service cloud capability (OOB) and then later enhance it, because they trust their SI… No mention of BA’s, Testing, Integration… can you see any problems here?

  • Confession #717

    Have a client who envisions having a front-end web form for case creation that asks at most two questions, with no more than 5 picklist values, and somehow magically routes things correctly to one of 150+ different provider groups without human intervention.

  • Confession #716

    Salesforce Marketing: Our platform allows you to do anything! So customizable! So flexible for your business needs!

    Salesforce Support: So once you customize something from OOTB features, we can no longer support it.

  • Confession #715

    “We’ll never use 32k characters in this field. That’s more than enough!”
    Yes, I have it in writing. Yes, a record just hit that limit. No, I’m not going to “just change it”.

  • Confession #714

    The best is when the CEO unintentionally deletes an entire custom object instead of deleting a specific record…and then the rest of the organization responds with…WTF

  • Confession #713

    I’ve seen thousands of data loads gone wrong and had to clean up hundreds of “Inactive Picklist” values because of it. Remember to check your data **before** you upload it.

  • Confession #712

    A custom field on the account object. Not on any page layout. Updated by Process Builder for Opportunity, conditioned to run only when account belongs to Division ‘A’. The field is on 8 report types, and only appears on one report written for Division ‘B’.

  • Confession #711

    Before my time, we moved to SF from two different CRM tools, to this day (almost 10 years later) I’m still finding duplicate fields on the same object (example on contacts we have “status” and “contact status”).

  • Confession #710

    The Case Object was renamed and hijacked for a rarely used QA process. Then a ticketing system with LESS functionality than a basic Support Process was implemented that has cost the company hundreds of thousands of dollars over the course of several years.

  • Confession #709

    Our original Admin decided that a field was no longer needed/used. She changed the API name to have an ‘x’ at the beginning. 30 seconds after hitting save the help desk phone started ringing. A lot.

  • Confession #708

    Working with Managed Package issues in Production.

  • Confession #707

    I deleted one custom field that blew up 40+ reports, 3 dashboards, and two weeks of my life.

  • Confession #706

    Walked in after a holiday to find out that one of our new employees refreshed the full sandbox without telling us.

  • Confession #705

    Started consulting on a project that gave us no access to Production. I worked on it for a year and never saw Production…ever.

  • Confession #704

    Company owner wanted a bonus and commission structure for a team of ten sales reps, paid proportionally only when the customer paid us. COO and I fought him, this will take five people nine months to do and isn’t worth it. He pushed anyway, we built it, and he scrapped it in month 11…

  • Confession #702

    Legal firm created 1 case record type for each legal trial they prosecuted. We received a call when they attempted to add their 301st client (exceeding the maximum number of allowable record types).

  • Confession #701

    Accidentally created 16,000 blank records in addition to what was meant to be uploaded with my first data load. Learned how to mass delete shortly after.

  • Confession #700

    I inherited an org of 80 users with 23 System Administrators and 25 profiles because no one understood permissions! Most of these users felt they “know their way around Salesforce” enough to keep their access. *cringe* First thing I did was the tough job of breaking the news to users and C-Level execs that their Salesforce access was demoted.

  • Confession #699

    For our Case object we have 50 record types & 97 page layouts & multiple assignment rules. This is making a move to Lightning a major challenge. We have so many javascript buttons on page layouts but knowing which page layouts are even used would massively simplify the migration effort.

  • Confession #698

    Ran out of fields on the Account so have an object called Account2

  • Confession #697

    We have an object called Account_backup and Contact_backup which were created during a migration. But we don’t need them any more, but I cannot persuade the team to delete them.

  • Confession #696

    Today I had to provide step-by-step instructions to a Sales Rep on how to access a report in a folder with his name on it. Somehow the first time wasn’t clear enough & he needed me to repeat this three times.

  • Confession #695

    A C level exec yelled at me saying “I’m the f**king C*O I get whatever access I want”.

  • Confession #694

    When you’re building a new ORG and the new license doesn’t have Data.com so they pull Data.com from your existing ORG and basically destroy your data.

  • Confession #693

    Client demands we move fast in order to save money, complains we’re moving too fast for them to keep up with providing the requirements

  • Confession #692

    The user says he couldn’t see all new Leads. Turns out he has been creating Contacts instead.

  • Confession #691

    For entering Leads the customer first created the Account record then attached the Lead to it. Naturally the Lead conversion process did not work very well.

  • Confession #690

    Customer has changed labels of standard fields and then created custom fields with original name of the standard fields that were renamed. Confusing!!!

  • Confession #689

    Salesforce AE sold us on a new Salesforce Org with Lightning Enabled as part of a new contract. We have about 2.5 months to move an org with 8+ years of customizations and tons of data into the new environment. I just found out that we could stay in the current environment and just enable Lightning but this wasn’t mentioned to us before we signed the new agreement.

  • Confession #688

    Giving ‘view all data’ to a profile because an assistant said she needed it

  • Confession #687

    “The password is ‘password’. Don’t tell other people” – quoting my manager

  • Confession #686

    Team member repeatedly leaving their desktop unlocked when they walk away from their desks – with the org open

  • Confession #685

    I found a field in my org that was supposed to be a time stamp but instead of populating the date with a workflow [someone], created a formula field of with ‘Today()’ as the value so it always said todays date

  • Confession #684

    Data, Data, Data quality issues. Mulesoft MDM is hopefully the holy grail)

  • Confession #683

    Change Management is about Adoption, not Training

  • Confession #682

    Director of IT said ‘just put everything in the org in 1 field’

  • Confession #681

    Wrong code deployed to production due to multiple sandboxes and lack of devops tools to keep environments in sync.

  • Confession #680

    When gathering requirements a department lead gave me a dusty binder of handwritten notes and said she was retiring the next day

  • Confession #679

    More profiles than users – 100’s

  • Confession #678

    It takes 6 days for Zendesk support to get back to you over their dumpster fire of an integration, so you schedule an 11:00 pm est screen share with the offshore resource just to get it taken care of because the app spiked your API calls by 65k today

  • Confession #677

    We work on 2 week sprints & use multiple environments. I’m the only person on my team who has to reset their password in every environment every single time we refresh an environment; sometimes it doesn’t take and I have to change it on each login. Salesforce support continues to be stumped as to why.

  • Confession #676

    2 identical Validation Rules in the org, created minutes apart. The only difference is that they execute on different record types…. because the Admin who created them didn’t know how to use “OR” in the formula.

  • Confession #675

    Too much customization. Too many lines of Apex code. Excessive permissions for business users.

  • Confession #674

    User called up help desk to ask for the URL for salesforce.com

  • Confession #673

    Customer wanted to develop on Heroku using air-gapped secure systems (not connected to internet).

  • Confession #672

    New Non-profit Admin disabled all our Sandboxes. He got Salesforce to fix it, still not sure how he did it.

  • Confession #671

    Customer had objects (Multiple) with the same labels but different API Names that did different things in the data model. And then wanted a custom integration built within 30 days.

  • Confession #670

    My company had 3 stage fields on the opportunity.

  • Confession #669

    Anyone with “login-as” user access could login as system admin and make changes… ANY changes.

  • Confession #668

    No leads associated with accounts. ALL leads have a “company” field.

  • Confession #667

    100+ fields on Opportunity, data so bad that the object is not query-able for reporting.

  • Confession #666

    My CEO requested a checkbox that made no sense whatsoever. When I tried to ask him and understand the real underlying requirement, he answered with “I don’t pay you to think, I pay you to do what I say.” That day I updated my CV. I am now a Solutions Architect.

  • Confession #665

    Modifying Flows in Production.

  • Confession #664

    User loads data. Data is duplicated. User tries to fix. Takes out more than they put in.

  • Confession #662

    A questionable Admin deletes 200 Account records thinking they were in a Sandbox.

  • Confession #661

    We’re at the field limit for 4 standard objects.

  • Confession #660

    We have a picklist set with hundreds of values controlled by a picklist set with about 40 values. Each time a new value is added, the controlling field needs to be updated.

  • Confession #659

    Had a client that had 2 admin departments. They had more than a few duplicate (identical) fields on the Opportunity object and would use Profiles to control visibility. Same exact label. Same picklist values. Slightly different api name.

  • Confession #658

    Testing something in Prod finds problems faster then Sandboxes

  • Confession #657

    That special moment when you look in a #Salesforce org and stumble on a Lead Record Type called “New Task on Lead.”

  • Confession #656

    Instead of using the “merge” function, lighter heads have decided to go with an account type called “archive” where we move all the duplicate Accounts and set this data type on “hide” so that no one can see that the account was already introduced twice in the system… Every following duplicate entry will then be “archived”.

  • Confession #655

    We created a second “Account Team” object, because the project manager at the time of implementing Salesforce – wanted to replicate with name and all, an object from our old CRM System. Now that she is gone, guess what project we are starting: “SF Back to Standard..” yup…

  • Confession #654

    We have 1.2 million Accounts in Salesforce. We connected our Salesforce with “a very important system – the future of the company” that can only process maximum 40 records at a time without having to restart all the interfaces and servers.

  • Confession #653

    Debug functionality doesn’t work, have to keep changing the run time in 15 min increments to test any changes in Flow. Using Sub Flows of the actual actions so can use the debug mode.

  • Confession #652

    Critical Update breaks processes. If you use PRIORVALUE in a formula and the PRIORVALUE is null, it breaks. So watch out for Check for Null Record Variables or Null Values of Lookup Relationship Fields in Process and Flow Formulas. Need to make a simple process to see if I can get something to send to support.

  • Confession #651

    Our Business has created 10,000+ new Email templates(Word Doc) that needs to be migrated in a certain folder. Is there a better way to migrating them all at once rather than doing them manually.

  • Confession #650

    I’m a new admin and have a lot of doubts. I really would like to talk more with people from salesforce admin, to take my doubts and to gain some experience. Is this kind of possible? 🙂

  • Confession #649

    Reminds me of a place where the dev made his own custom contact and account objects called Person and Organization, because they didn’t like the label.

  • Confession #648

    As a consultant I can often confirm the words “we just want to make one small change” in a scope review brings a sense of dread.

  • Confession #647

    2 Fields: Sub Total & Subtotal

  • Confession #646

    It feels like SF apply a Fibonacci sequence to the time delay of each successive change set being ready to deploy in Prod. #GetItRightFirstTime

  • Confession #645

    We found someone using an ETL tool to move data from a Salesforce Org right back to the same Salesforce Org to work TL tool to move data from a Salesforce Org right back to the same Salesforce Org to work around order of operations and system limits. Clever and tragic all at once.

  • Confession #644

    Client has 280 record types on the Account and every time they got a new customer they added new fields.

  • Confession #643

    As part of a large project, I deploy 3 List Views via a Change Set. 4 days later, our Sr. Strategy Manager (and Project Manager & owner of our Org) deletes the 3 List Views. 10 Days later, asks me to investigate why users can’t see those List Views that were required for the project. Sometimes I feel like a hamster running in a wheel.

  • Confession #642

    My favorite API Naming:

    API Name: Apples_c, label: Bananas

    API Name: Apples1__c, label: Apples

  • Confession #641

    Support call yesterday. Panic as @elements_cloud didn’t seem to be calculating %filled for standard field “Middle Name” correctly. Fortunately, able to pop the @elements_cloud right panel in the Contact record and it page showed that a previous Admin had created a CUSTOM field “Middle Name” and that was on page layout and was being populated, not the standard field.

  • Confession #640

    One drink for simply using Clicktools. The company has been bought & sold several times over the last few years & fails to update their support reference resources. You’re 10x more likely to hit a broken link or phone. Got an email to close my case (references their old & current owner), the link sends me to an undeliverable email. :fail:

  • Confession #639

    Turns out the permission set assignments don’t deploy on the change set – as any sane person would expect.

  • Confession #638

    Solo Admin was told “Your technical questions are perceived as you being difficult and trying to create roadblocks. Don’t ask questions. It’s your problem to figure out.” Advice from the ecosystem “Find a new job”.

  • Confession #637

    One of my clients orgs got upgraded to spring 20 on Friday and it’s breaking critical functionality around force.com sites. Have some functionality that sends emails and it’s failing with INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY. I don’t get why these security changes weren’t released as critical updates like everything else.

  • Confession #636

    Having the bi-weekly conversation with your manager in which you have to explain, again, why you won’t just email them the password to a website. And point them, again, to the password manager they have installed and explain how it works.

  • Confession #635

    I must have accidentally deleted my trailhead org that I was doing an Aura module in that only had 1 section left. Welp, its required for Advanced Apex Specialist superbadge… doh.

  • Confession #634

    I have been informed that I need to dedicate time to a Jira integration that needs to move to production this weekend. The above statement wouldn’t be so bad if I had been involved in any part of the project up to this point. I spun up a dev sandbox like 5 months ago for a user…that was the last time I heard anything about the project. I have no documentation… No scope. No sense of what needs to be done. I was told that if I’m not available, I could always make that user an admin and just let him do what he needs to do.

  • Confession #633

    Processes that don’t use “Do you want to execute the actions only when specified changes are made to the record?” and screw everything up when you do a data update.

  • Confession #632

    Work on implementing Salesforce for 8 months including some really complex automation. Go to three separate sites across Canada in the middle of winter to deliver in-person training. The thing that the Sales users are most excited about is the confetti when they close an opportunity…. Thanks Salesforce product management.

  • Confession #631

    Discovered 128 sharing rules on a single Object, and there are less than 600 records in that Object.

  • Confession #630

    Someone didn’t understand multi-currency so created a new salesforce org for each country.

  • Confession #629

    Logged into the AppExchange, connected my related accounts, and then got 11 Welcome to the Community emails to the same email address.

  • Confession #628

    We’ve invested a fortune in all things Salesforce and we’re having to cut back on all non-mission critical areas, like Org documentation and impact analysis.

  • Confession #627

    Developers are never able to replicate issues reported by the testers in their machines. Now, who can tell them that we are not going to deploy their machine for the end-users?

  • Confession #626

    Was using a Lightning Component built by a developer in a Customer Community, which was always giving an error. Did a ton of debugging over 3 days virtually checking each line, profile, access, sharing, browser; and finally found that the object was still in “Development” status, and not in “Deployed” status.

  • Confession #625

    Migrating from Dynamics and Insightly to Salesforce, with 2 (what was guaranteed that they were separate DB’s)once imported and merged. Found out that 80K contacts were duplicated.

  • Confession #624

    I think I am on the most annoying conference call of my life. I’ve gotta live tweet this just to stay sane.

    Let’s start with the presenter, a #developer has the slowest Mac I’ve seen since my iMac days.

    He starts by complaining that it’s 9:30 pm for him. Guess what time it is for the rest of us, buddy? And guess who didn’t respond to our requests for a meeting DURING THE DAY that we’ve been sending all week?

    And now, of course, he mysteriously stops screen sharing while he “works.” I didn’t give up my night to hear a keyboard clacking.

    Hey, conceited, I get that you’re a fancy #developer and all, but we all understand XML … because we wrote the XML we gave you.

    Behind the scenes, the person who hired this guy messages me, “I want to punch a hole in a wall right now.” Truer words, my friend…

    Now he’s getting super defensive. “I didn’t know this call was supposed to be about this. I didn’t know this was due tomorrow.” It’s not due tomorrow, it was due two weeks ago.

    Sooooo happy there’s a Project Manager on this talking sense. Thank you for bringing us back to the point. #ILoveProjectManagers

    Our developer: Go to line 21 and make this exact change

    Evil developer: Okay, just tell me what you want me to do

    WHY DOES IT TAKE YOU 5 MINUTES TO DELETE A CHARACTER?!?!?!

    I love that instructions we gave at the very beginning of the project … last August … are still being ignored. Seriously, I love being ignored. Love it.

  • Confession #623

    Our opportunity object has 400 fields, some of which are formula fields that are used to display an image in other fields alerting the user viewing the record whether they are the record owner.

  • Confession #622

    Purchased a full sandbox for the first time to use during a massive SF revamp project. Did not realize that, unlike in dev sandboxes, community user data is not masked. Added community user profile to new sandbox community and inadvertently sent 50,000 welcome emails to users who had been in our community for years.

  • Confession #621

    We’ve got a custom object named: Opportunity Product

  • Confession #620

    So you wanna laugh? Here you go and it’s not even our fault! It’s Salesforce’s fault and we are stuck with it 😂 So we chose our my domain thoughtfully… LOVE.my.salesforce.com Be honest…. beautifully crafted. Genius right?!

    Until you actually have it and everytime you log-in in Lightning it seems to add some characters before it actually propagates. You wanna know what we see in those split seconds?

    Love…..

    WAIT FOR IT….!!!

    Love.c-um.my salesforce.com

    Really Salesforce?!!!

  • Confession #619

    Just started new role. So far, I have logged into 4 different Salesforce Orgs using 3 different username/passwords…. not including Trailhead

  • Confession #618

    We have a confetti of CRAPlications. Lots of tactical little apps. Maybe that is why we have 757 custom objects.

  • Confession #617

    Called a Custom Object Custom_Object__c and wondered why LEX was behaving strange…

  • Confession #616

    Out of 12 users, 10 are admin including an outside marketing company. Nobody can explain why an outside company needs admin privileges but the CEO doesn’t want it changed. He’s also upset that the sales team doesn’t really use SF but he doesn’t want me spending “too much time” making it more user friendly and training the sales team, since SF admin isn’t my primary job. He hasn’t logged in for over 10 months.

  • Confession #615

    This week in a Spring20 sandbox, my company realized that several pages of our Communities had broken thanks to new permission restrictions for Guest Users due to become mandatory on March 1. The release notes instructed how to reconfigure your org “if needed,” but didn’t explain why you might need to do so.

  • Confession #614

    When someone offhandedly mentions that they’re expecting you to deploy features by Monday. Work is done (thankfully), but now I have to go through the process of getting an expedited release approved since it wasn’t documented anywhere.

  • Confession #613

    My soon to be old boss, 3 more days and I am moving to a new job, has me filling out a long “How to do what Jim does document”. There is a section entitled “How to write reports”.
    1: grab pencil
    2: grab paper
    3: write ‘R’
    4: write ‘eport’
    5: add an ‘s’ if plural
    You have now written Reports

  • Confession #612

    Working in a Sandbox for a client that hasn’t exactly performance-tuned in a while. Loading a Contact page took over 10 seconds. In Classic.

  • Confession #611

    My previous employer was in a hurry about everything and could not effective prioritize needs. As a result, when I left I was never able to implement an accurate security model. I honestly feel bad for the admin that replaced me for the mess I had to leave behind.

  • Confession #610

    We have a “ThorSt” field… for formatting a date as the 4″th” or 1″st”

  • Confession #609

    Our CEO gave himself admin rights to add a custom field on the Account Object, the custom field was called ‘Industry’.

  • Confession #608

    So we have salesforce at work and I have been given admin rights. I really want to look into learning properly and get my admin certification. Is this best to do via trailhead modules?

  • Confession #607

    I’ve been running reports for senior managers for almost a year. Had to update a dashboard and realized that one report has been set to 1/1/16-12/31/16, presumably since 2016. No one has noticed.

  • Confession #606

    I just accidentally removed system admin access to a community and now I can’t access the page to add it back.

  • Confession #605

    Completed an org merge project only to have the client dissolve one of the entities once done.

  • Confession #604

    Dumbfounded by an issue, couldn’t even figure out what happened / changed that tests weren’t passing in org. Did a ton of debugging, checking field changes, perusing the Audit log.. Eventually figured it out.. someone disabled Email Deliverability in this sandbox.

  • Confession #603

    Have an org with fewer than 40 users. 4 of them are system admins, including the integration user who for some reason has full system admin access.

  • Confession #602

    Worked at a place with 2+ million contacts attached to a single Account record named “Individual”. They turned on an integration to allow people to self-service update contact information. Bad things happened.

  • Confession #601

    Had to explain to CEO for the 3rd time that you can’t have 1 field answering 2 questions because it invalidates the data. But they get personally offended every time.

  • Confession #600

    During a conf call. Saying to your colleague (who is not in the call, just sitting next to you) that this conf is boring. And then realize that YOU ARE NOT ON MUTE.

  • Confession #599

    If I can’t test escalation rules in a Sandbox, how am I supposed to know that they work before putting them in production?

  • Confession #598

    Marketing guy goes through all new Accts created by CS reps, cks to make sure not dup, if is dup adds contracts to old Acct, ok great. But doesn’t communicate w/ CS Rep or their manager to teach them how or where to search b4 creating the new Acct. He just deletes the dup. When I explain why I changed delete privileges and about teaching, training the CS Reps and their manager, he’s not happy.

  • Confession #597

    My sales team wants to change the Multi-select picklist (that I tried to convince them was a bad idea 4 months ago) to a regular picklist.

  • Confession #596

    Who demands deployment to go live 1/1? Seriously?

  • Confession #595

    Hello! I am brand new to Salesforce, we just fully launched last week – yay!

  • Confession #594

    Customer had datestamp ’16.dic.2019′ They wondered why and said it’s been there since they got Salesforce… Their admin had changed the region settings resulting in a foreign language timestamp a week ago.

  • Confession #593

    Talked to a potential client about an org merge for 20 minutes at the end of which they said that we would not be able to see the data due to restrictions with their customers, even with an NDA. They were very surprised when I said that seeing the data was paramount.

  • Confession #592

    Client asks you to update the Account Type field, but they have a custom Type__c field and they renamed the standard one to Vertical, and you choose the wrong one in Data Loader.. #StopRenamingStuff

  • Confession #591

    I had a manager who decided they wanted to take a shot at playing admin…in Production. Don’t worry…I’d find out once it broke because they’d shamelessly come to me telling me to fix it. They constantly complained about other teams not following change management though…

  • Confession #590

    We created a Sandbox with a ton of demo content for our entire sales and consulting team to show off our product. It was first used at Dreamforce so they named it DF-Demo. So after Dreamforce it was deleted. Doh!!!

  • Confession #589

    And then there’s the user who was getting Approval Process emails for Opps. He just had to hit Reply, type Y or N, then hit Send. But that was too much work for him. He wanted to know if there was a way he could just reply and not have to type Y or N. Like Salesforce could magically divine whether to approve or reject it….

  • Confession #588

    Found a permission set named “Basic Reporting.” In addition to granting basic reporting privileges, it also granted Modify All.

  • Confession #587

    Posted in Lightning! NOW Success Community “Do we need to make any changes in existing customizations and configurations before Lightning transition? If so,let me know the issues that may occur.”

  • Confession #586

    User says they are not getting Chatter emails. Sent them a screenshot of their inbox with the chatter emails visible. They still don’t believe me.

  • Confession #585

    Discovered client making changes in Prod and in Sandbox (that are not the same) days after the deployment.

  • Confession #584

    Comment from Project Manager in JIRA user story: “Proper test data cannot be created in UAT with reasonable effort within the given timeframe. We will validate in production”…

  • Confession #583

    Custom owner field on Account.

  • Confession #582

    Having to add 3 picklists to Case for birthdate (day, month, year) cbeause that is how the legacy system they are migrating from is formatted. It gets better, day is a number range of 01-21, month 01-12, and year 1900-2020.

  • Confession #581

    When you’re on a “code freeze” and your manager says to “just do it in production”. :sob:

  • Confession #580

    CSV “parser” working by splitting file content by ‘n’ and ‘;’. Until they realized that fields may contain new lines, commas or semicolons…

  • Confession #579

    Client asks you to merge over a 1000 dupes.

  • Confession #578

    Had to rewrite a bunch of stories because the person who created them didn’t capture all of the requirements and actually left a bunch of open questions before they were assigned out.

  • Confession #577

    I was talking to our Sales Manager and commented “Our org looks like it was set up by a hyperactive two year old”……..he responded “Are you calling me a toddler? I built it”

  • Confession #576

    We hired a large partner to help us with our Salesforce Implementation. One of the business requirements was for the ability to add an attachment on an opportunity, and then classify it from a set list of values. At the end of the sprint when the partner demoed the functionality, what we got was a field called “Attachments” with the list of drop down values. Say what???

  • Confession #575

    In attempting to find out why users were able locked fields during a training, we discovered that for the training, 26 individuals had been given system admin level access to the staging sandbox just weeks before deployment to production & go live. It was not a good morning for our blood pressure.

  • Confession #574

    We have one user account that is used by all team members.

  • Confession #573

    Our org cannot assign the correct records to your org. Can you create an error on your end so both cancel each other out?

  • Confession #572

    We have two checkboxes in Cases: one for “Open”, and one for “Closed”.

  • Confession #571

    In 2007ish (prior to me having a sandbox) I turned on person accounts to see what they did. I wasn’t able to turn them off. Luckily some nice person at salesforce took pity on me and helped me hide all of it.

  • Confession #570

    Code review: reviewers arguing about spaces vs tabs, variable names and similar trivial stuff, and no one checks the actual logic.

  • Confession #569

    I worked with a large food delivery company as a BA and we had a Tech Architect who never documented his solutions and he got his cronies to do the Dev work. He was being paid a ton of money to work from Eastern Europe. We had 3 projects running in the same sprint for 6 months. I tried to bring in elements.cloud for processing mapping and it was shot down… There was no pre-prod testing to a back-end system and when we went live the team spent 2 months fixing all the defects. We did not even have a QA capability at the time.

  • Confession #568

    In 2010 or 2011 I can’t remember we had an accidental chatter implementation. We never found out who (wasn’t in the audit trail), but someone turned on chatter. Even better was I was on vacation. We weren’t allowed to have chatter on for compliance. Turned into a huge thing.

  • Confession #567

    I got my first Sandbox in 2007 (after begging for about 2 years). I remember building my first workflow rule in it and being so excited I could test. I wanted to test what happened when I loaded data against contact records (object where workflow fired against). The workflow would send an email when a contact went to a certain status welcoming them as a customer. I thought that the emails would get changed on contacts like they did for users. Woops. I emailed around 200 customers welcoming them and confused a ton of people.

  • Confession #566

    Earlier in my career I didn’t know how to effectively communicate risk, whether it be technical risk or strategic risk. So there was a senior executive pushing to have us do a release the same weekend as a salesforce release. I kept trying to tell her not to do it,but I wasn’t good at articulating why and what the risk was. The risk was that the project hadn’t been tested with the new release, not sure why I just didn’t say that, but I was scared for some reason. So we went live. So many errors because the release was happening.

  • Confession #565

    My colleague decided it would be a good idea to put an identifier in the API name of fields so we could track which BU the field was for. So Contact_Date__c became MKTG_Contact_Date__c. I told her it was a good idea but didn’t realize she was doing it in prod. All of the sudden all of our apex and integrations stopped working. She didn’t realize that is how apex, integrations and other tools were querying our fields. Woops.

  • Confession #564

    All developers working on the same sandbox. No version control. Accidental overwriting was so common that we started to make local copies of our code.

  • Confession #563

    In 2008 I recorded a bunch of training videos where you could see me talking and showing some sales process. Without realizing it my fly was down and for about 20 minutes of this video you could see that my fly was open and I was wearing red underwear. I wanted to die. I wasn’t sure which was worse that the video editor put this in or that no one in the room told me my fly was down. I now check my fly before every presentation. I have OCD about it.

  • Confession #562

    Changed misspelled object API name. I don’t care what happened next.

  • Confession #561

    In 2007 I worked at a company where we had two divisions sharing 1 org and had a crazy data firewall. Not fully understanding the firewall or how the sharing worked, I moved a user from one side of the firewall to the other by changing their role. I was being lazy and didn’t read any of the documentation the consultancy provided and didn’t move records to another user first. I exposed all of this users records from the other side of the firewall to everyone on the new side of the firewall which contained non public info. I didn’t realize what I did right away until my colleague realized all of the data was exposed. I’m really lucky they didn’t fire me. It was around this point in my career I became super diligent about reading instructions and documentation.

  • Confession #560

    When I first used the data loader (it was actually called the Lexi Loader at the time) I just made a spreadsheet of what I wanted to update and loaded. No backup, no testing, just updated a ton of Opps. Nothing bad happened, but do not do this! Take backups! Test your upload!

  • Confession #559

    I worked for an organization that had over 200 custom objects and a million lines of code. We had built out a very nice system that provided End to End processing for all departments in Salesforce, globally. The problem, our developer wrote test classes that faked out the system instead of actually testing. SUPER SCARY. A younger developer on the team tried to make a case for writing correct test classes and it was shot down.

  • Confession #558

    A new developer at work installed our own managed package in our main development org. Pure havoc!

  • Confession #557

    We have users that send me contact info to update via email. They have Salesforce licenses…

  • Confession #556

    Refreshed myself out of a week’s worth of work once…

  • Confession #555

    I was hired as a Solution Architect for a large UK phone company. They had hired an offshore company to build the CRM capability. This offshore then brought in people by the plane load as Solution Architect’s (most of these were grads). I stayed 5 months and left. They promised to go-live in Apr 19. It’s now Dec… and they have gone live with a subset of the original payload…

  • Confession #554

    In my experience, the huge partners are the worst out there. They come in with semi-competent to knowledgeable people during the sales pitches, and then once the contract is signed, the work is farmed out to overseas developers with minimal training or knowledge. Even the ‘local’ team that continues to work with you is questionable. I have had ‘Technical Architects’ assigned to contracts with < 2 years out of college and 9 months in the Salesforce world. We pay them $250+ an hour and I need to train them. My advice, stick to smaller firms where you really get to know the people that will be doing the work, or better yet, hire people so you can have the skills in house for the future.

  • Confession #553

    Ego can get in the way. The VP of an organization I worked for demanded to have an Administrator login. I felt bullied into providing it and started looking for a new role immediately. Not long after my departure I heard that he had added a sharing rule that resulting in every case for every customer being exposed to ALL customers. I was not surprised, he definitely had an issue with details and always believed he was “the smartest person in the room”. I have never looked back.

  • Confession #552

    We did the Lightning Readiness Check and the report was 300 pages long.

  • Confession #551

    We had/have users who pay for their own Zoho license even though they have a SF license.

  • Confession #550

    Discovered a sales rep has been paying for his own salesforce license for 5 years and you get forwarded a recording of him demoing to senior leaders how he uses it to do his day to day AND the company isn’t even live on Salesforce yet. Highlights include him working off of only one activity where he updates the task subject to store future events “It’s great because I see everything in one view”

  • Confession #549

    I cannot see us ever migrating to Lightning. Technical debt is crushing our Org. As an example, we have 800 fields on the Case object.

  • Confession #548

    I have to make a minor upgrade to a managed package, but I have lost access to the developer org where the package is. The old developer is no longer working with us but we own the Org. I have the login/password for the org where the package is stored but I’m being asked for a verify code that is sent to an invalid email address :'(

  • Confession #547

    Our org has definitely upped our automation and we have come to the point where we are hitting governing limits, the fun SOQL queries 101 error. 99% of our automation is done through Process Builder and I have combined as many processes as I can into one or two processes per object. But we are still hitting errors. And of course it is causing havoc for myself as the admin and our users.

  • Confession #546

    It takes a long time to run a report to extract 63K records and exporting it in Lightning. I thought it was our internet connection issue. But I’ve heard another Lightning user in another company saying she’d switch back to classic when running reports.

  • Confession #545

    My employer made a stupid decision a few months ago to replace half of the team working on the CRM technology team with a partner that is providing 100% offshore resources. The offshore team is so bad even if I send them requirements with correct spelling they misspell everything. When I was at Dreamforce they were supposed to add two fields “product count” and “subscription count” along with some automation. I came back from Dreamforce to see that we have fields have been misspelled and called “product_c*nt” and “subscription_c*nt”. (replace * with u). Because these fields are referenced in apex they refused to fix the API name. This is a huge salesforce partner. This is the quality of work they provide.

  • Confession #544

    I read OrgConfessions while I’m waiting on my change sets to validate! Guilty pleasure.

  • Confession #543

    Salesforce blocked JS in hyperlinks in formulae. So we use another JS in record VF page to inject it back…

  • Confession #542

    How to check if an old feature is indeed not used and can be removed? Let’s remove it quietly from production and see if someone complains…

  • Confession #541

    I inherited an org that did ALL activities on task records and couldn’t sync to basic Outlook calendars…so everything was manual. What’s a sync?

  • Confession #540

    After 2 years work from a GSI and we still have only 20 of our 2,500 users have gone live.

  • Confession #539

    We have a huge Org with over 750k customizations. We’ve had 4 consultancies work on the Org over the last 8 years, but there is no documentation.

  • Confession #538

    I am postponing my Admin exam because everyone seem to be failing it.

  • Confession #537

    I was hired as the Service Cloud admin. I was told their existing “floater” type admin was certified as an admin and dev 1 and has set up email to case a year before. Imagine my surprise when I logged into their org and saw they had ZERO case assignment rules. Yep, none. Their floater admin actually had no certs at all and was a compulsive liar about what had been set up in their org. He even told the users that list views were called “Queues”. I had to make drawings with little stick figures so they could understand that a queue was a group of users that owned cases and not a list view. That was a hard day.

  • Confession #536

    I have users that will write an email to their coordinators instructing them how to update account details. They believe it is faster to write an email and the field values (many of which are picklist) instead of doing it themselves.

  • Confession #535

    Claims manager at an insurance company thought it normal to take claim files into the men’s room with him while he used the stall.

  • Confession #534

    I asked an end user to grant me login access and provided a step-by-step procedure with screenshots on how to navigate from setup. User provided her credentials instead.

  • Confession #533

    The last person to manage my org didn’t know you could create new profiles for new users. They kept reusing and reissuing old profiles under new usernames. Now every time these users need to reset their passwords I have to reset their secret question too. It’s also made historical auditing all but impossible.

  • Confession #532

    Contacts got 30+ email reminders this morning for “Submit Your Meeting Reimbursement” with a value of $0.00. Someone was testing workflow email in production? Worked out the issue. One of the developers was updating this workflow to ensure the emails will only send if nothing has been submitted, and unfortunately they did not disable email before updating every campaign….

  • Confession #531

    Did a SOW for moving a client from NPSP2 to NPSP3, no custom profiles in the entire system because every one of their 8 users is a system admin.

  • Confession #530

    Sales has purchased a product that requires 83 fields (!) on the Account object that will be used by only 1 user.

  • Confession #529

    A previous consultant used the entire URL to reference an image location in an image formula for 22 different picklist values in a Case() function.

  • Confession #528

    When my manager asks me to update Next Steps for case resolution on a spreadsheet version of the Cases Open report, when I have an Admin Notes field included on the Case record page and pulling into the same report coming out of SF.

  • Confession #527

    Just found this. A field is a picklist. And each line is a description of a product… We have more than 1000 products… Kill me now.

  • Confession #526

    The User wants a checkbox instead of a yes/no picklist because it’s one “extra” click.

  • Confession #525

    When a snr manager was given admin powers and the first thing they do is change OWD on price books, deleting all the sharing rules; so no one can use price books including CPQ.

  • Confession #524

    Just found this gem where the original implementation partner added a permission set from a trailhead module in my client’s production org.

  • Confession #523

    When you review a feature that was built a year ago, and wonder how someone could’ve designed such a poor experience and then immediately come up with a better solution, and then realize the person who built it originally was you.

  • Confession #522

    To whatever Salesforce engineer required a date format of YYYY-MM-DD to import, yet made Salesforce export dates as MM/DD/YYYY, I hope you’re happy with yourself.

  • Confession #521

    That super fun moment when you go into a brand new org and see that there are separate profiles for every function in the company, but it doesn’t matter because not a single one of them has a single restriction. Everyone is an admin right now.

  • Confession #520

    Just spent an hour troubleshooting problems with a deployment and code coverage that had been good in another sandbox, but was moved and then modified in a different sandbox. I fixed test coverage on the new code, but some of the old code kept having a problem of being uncovered. I finally realized that the person who had modified the code before me had used a “code formatter” that inserted extra spaces in strings inside of certain If statements. Those strings never matched of course, so the code in the main class was never called.

  • Confession #519

    You build a new data model and migrate data only to realize the sandbox hasn’t been refreshed since 2018 and the site/VF/Apex that need updating don’t even exist.

  • Confession #518

    When you build solution v1 and your customer says you didn’t understand the requirements, so you documented the requirements for v2 and then they change the requirements after you’ve built v2.

  • Confession #517

    Run Salesforce Optimizer to find 44 inactive users! The answer from the team was, oh they might need them 😐

  • Confession #516

    I once managed to bulk update 200+ Contacts to have the same last name as one of my coworkers. No idea how that happened . . . .

  • Confession #515

    First implementation of SFDC service cloud was driven by a well known Salesforce implementation partner. They created duplicate fields containing same value but in one object formatted as number and in other object formatted as text… A number of custom fields did not have description. Lines and lines of codes. Best practices out the window!

  • Confession #514

    Just started at a new company. The previous admin had zero knowledge of Salesforce existence prior to being the SF Admin. The Manager? Can’t decipher config vs. code decisions. Rolling up the sleeves…..

  • Confession #513

    A customer created new fields on a custom object and removed the visibility for all profiles – including the SysAdmin. Now he wonders why no one can see / use them

  • Confession #512

    Lightning Object Creator is my worst nightmare. Admins can create an object with data directly in production with no business analysis, architectural design and no documentation.

  • Confession #511

    Product owner wants to make all the inside sales people the SuperUsers to go to for questions – regardless of their (lack of) technical skills, rather than choosing 1 person per team designated as the techy-superuser. Adoption will suffer!

  • Confession #510

    I recently encountered an unfortunate issue with a large custom object I was building; the total number of fields was under the 500 limit, but the object included over 264 formula fields using a CASE statement on a picklist field in the object. Long story short, the object won’t display in Lightning Experience, only Salesforce Classic. The workaround I’m going for involves converting these 264 formula fields to text fields that are then populated by Process Builder using the criteria from the picklist field. I’m a little nervous that I might “break” Process Builder, too…

  • Confession #509

    We now have over 2,000 custom objects in the Org.

  • Confession #508

    6 months ago I had no idea what Salesforce was. I was made the Admin and I am the only one, learning from Trailhead. I have now inherited 3 Orgs and have been asked to merge them but there are so many duplicated fields, I have no idea where to start.

  • Confession #507

    We’ve rolled Salesforce out to the worldwide organizations so now we have 800 objects in our Org. And I am the solo Admin.

  • Confession #506

    My org, my confession… None of my validation rules were firing – PANIC!!!! Yup, we had a custom setting that allowed me to turn them off for just me. There was also a custom setting for turning them off for the whole org. Guess which one I checked? No idea when…..

  • Confession #505

    My org, not my confession. Company dashboards kept being deleted. Fortunately, I was able to restore them easily and see who deleted them. When I asked why they were doing it: Oh god did I delete them from the entire system? I just didn’t want them listed under my recent dashboards because those dashboards weren’t useful for me to have. Sorry if that caused any issues!

  • Confession #504

    12 million lines of undocumented Apex code, down from 18 million. We can’t get code coverage so have exception from Salesforce to allow us to deploy.

  • Confession #503

    “I am a solo Admin for 300 Orgs.”
    “Don’t you mean users?”
    “No, 300 Production Orgs.”

  • Confession #502

    We have maxed out fields on Case….again

  • Confession #501

    We have 450 custom fields on Opportunity (we’re only allowed 500 in our edition)

  • Confession #500

    When you are all set to present a @Dreamforce session and do an interview at a major keynote and the airline LOSES your one and only checked bag 😮 the cherry on top is the person they think took it is on a Disney cruise 😭

  • Confession #499

    We uploaded wrong data file into Products and ended up with 30k SKUs.

  • Confession #498

    Client insisted that we split each FSL combo order into separate orders. We ran the job over the weekend and they came on Mon and had 30,000 jobs to separately update and schedule. We did warn them.

  • Confession #497

    If we don’t have time for UAT and we’re not 100% sure it’ll work we just tell the users it’s beta release and to be extra vigilant

  • Confession #496

    For the Case object we created a huge VisualForce page to only display certain fields based on record type, but they never developed that filter functionality. So everyone sees every field.

  • Confession #495

    After our organization was bought, integration of systems with our new parent only could take place via Excel files. What about updates I asked? It would only work if the files are in the same format and column order. Or else the macro would not function! In 2019…

  • Confession #494

    Object for tracking cases with 197 fields

  • Confession #493

    When first using Salesforce, at a time when sandboxes did not yet exist, I added a Validation Rule to the Account object assuming it would apply only on the user interface and not knowing that it would also generate errors in external integration processes which insert/update Account records…

  • Confession #492

    Huge corporation with Salesforce department, which provides services to our clients. In our SF instance we have a cross-project repository with re-usable code snippets. During cost cuts all of our dept’s licenses have been downgraded to Chatter ones, so we lost access to our project repository. Upper management probably isn’t even aware of impact of that cut.

  • Confession #492

    Software house and big corp. There is no black list of forbidden software – there is a white list. Every exception needs to be processed by financial dept, legal dept, IT dept and so on, which can take weeks. Recently our IDE has been approved, at last. Did I mention that Chrome extensions are white listed as well?

  • Confession #491

    “Automation” done by browser scripts that simulate user actions (clicking, opening pages and so on). Why bother with API?

  • Confession #490

    Implementation by GSI. Phase 1 went live for core business. But architectural decisions for Phase 2, which was roll-out to 200 franchisees, were not considered during Phase 1. Go live attempted for Phase 2 for 5 franchisees 3 times, but finally pulled it out and they had to go back to their MS Access app.

  • Confession #489

    Sandbox refresh procedure with almost 100 (one hundred) steps.

  • Confession #488

    Org with 225 users. 196 were System Admins.

  • Confession #487

    More people need to confess this one, as I know it has happened to a lot of people. Refreshed a sandbox that had changes that had not deployed yet.

  • Confession #486

    As a consultant, ran an import to Production to the wrong Salesforce Org ….meaning a different company.

  • Confession #485

    I was looking to add a related list to a page and noticed there was a SolarBot list available. Then I went to the Object Manager and found the SolarBot and SolarBot Status objects in prod. The new team member did a little Trailhead in production.

  • Confession #484

    “Accounting” profile with 20+ sys admin type permissions plus Knowledge and Lead Management permissions. Who’d have thought to audit for that? Unfortunately, not me until a user unknowingly made a global change.

  • Confession #483

    I do org cleanup for fun and survival. I could eat this elephant for a year.

  • Confession #482

    I make changes in production while enforcing BAs to make changes in sandbox. #TooPressedForTime #NoExcuse

  • Confession #481

    Inherited org with 18 quote record types created solely to place a different button on the page layout…a button that could have been dynamic on a single record type or two.

  • Confession #480

    23 triggers on Opportunity, 16 of which are to create assets – a different trigger for each unit of measure an asset can have. #BeforeHeWasMVP

  • Confession #479

    During org merge consulting company essentially buried sys admin level permissions in a permission set assigned to 100 users….first symptom was hard-coded view/link in customer community repeatedly disappearing. So much fun to chase down when you’re new to an org.

  • Confession #478

    New admin in 10-year old org – found 251 steps in Case Assignment rules… fortunately now whittled down to 15.

  • Confession #477

    We had a developer who had created some Apex classes for us but then he left the company before everything was put into production. Unfortunately, the only place his code existed was in the Full Sandbox. Guess what happened when we refreshed the Full Sandbox right after he left? Doh!

  • Confession #476

    User signed up for a free trial of AppExchange app, and accepted the terms without verifying with their admin and managers. It turned out the app extracted all the data and started making calls and sending out emails.

  • Confession #475

    Our team of 8 developers share 1 Admin account for Sandbox. We started using SFDX but were not able to use because some of us would get this error after some time: “expired access/refresh token”. Only then we found out about the limit of 5 tokens per Connected App per account.

  • Confession #474

    UAT performed by testers – it’s basically TAT (“tester acceptance testing”). Real users don’t touch any org besides production. Every release has several issues, and criticals are not so rare, but, besides creating a bug in issue tracker, nobody cares about improving that process.

  • Confession #473

    At the beginning of Salesforce implementation project by mistake I enabled multiple currencies on Production org instead on one of many sandbox environments to test it. The step is irreversible. Luckily later we learnt that we needed multiple currencies enabled anyway…

  • Confession #472

    12 year old Org
    14 different Admins
    7 different SIs
    “I’ve been told you can migrate us to Lightning in a month”

  • Confession #471

    I worked with a System Integrator on a client project who built one flow for multiple countries. There was no documentation, no testing, no splitting the flow(s) into smaller manageable buckets, one developer, no error handling, all for a Community platform. I logged 250 odd defects during my time there before we went live…

  • Confession #470

    I’ve adopted an org that uses over 80% of their Apex limit

  • Confession #469

    At my first job I saw the sample recruitment app that salesforce uses as example was configured in production. I don’t know who is that legend who installed it in production. My first task is to delete it from then I started cleaning up orgs it never ended then realized clean up and tech debt should be part of team’s regular work.

  • Confession #468

    In my early days as a developer I developed an Apex Batch used to send documentation to customers through an external printing system: due to a bug on the batch that kept iterating on a customer on and on, that customer received 2000+ printed emails +1 to me!

  • Confession #467

    It was 2008 and I had to import 5,000 leads. The wizard couldn’t match one of the fields and offered “do you want to import this as a note?” Of course! Spent the whole weekend deleting those 5,000 damn notes on every record. And that’s why you always follow the data import testing process before you commit . . . . To add insult to injury I sprained my ankle while running the morning before I did the import so I had to sit on a chair with one leg in air and my finger on the DELETE button.

  • Confession #466

    It’s a lovely day to start to remove some of the 80 fields created years ago with 0% population, and that’s just the Contact object..

  • Confession #465

    CEO and previous admin: “Let’s build a custom CPQ and hard-code product id’s and names into multiple PBW and flows. Plus, we’ll also have different templates for each quote type. As a matter of fact, we’ll add in some Apex codes attached to a project manager with no test classes and push them to production.” 2 years later and with no documentation I’m still putting the pieces together. It’ll probably never be fixed and get abandoned after I’m out of here…

  • Confession #464

    VP of Sales won’t make team use Salesforce for opportunities but then complains there’s no information in Salesforce.

  • Confession #463

    I learned the hard way – when using flow, NEVER put an action object (lookup, create, update, or delete) in a loop, unless you are 100% sure it’s only going to loop a handful of records…and even then…haha. It’s just a great rule of thumb for bulkifying your flows.!

  • Confession #462

    I looked after an org with crazy sharing roles as Directors looked after multiple areas that needed private data. Directors changed responsibilities regularly and before I was trusted to know this in advance and be able to plan I was surprised by it on a regular basis. I once moved a Director and shared all the data between 2 areas and it took me a day to fix the majority but I was also finding odd sharing issues for months.

  • Confession #461

    I actually still remember one major screw up I had in the beginning of my Salesforce career when I was working on a client org and I changed all Admin profile users to a custom role and then nobody could login. We needed to call Salesforce to change our Profiles back. I guess you don’t forget these things even after 7 years.

  • Confession #460

    I worked with a sys admin who decided to update a field on all contact records which had multiple PBW + Flows on and forgot to bulk batch the update or tell anyone and created nearly 80k of monitoring error messages when the updates failed which the out of hours on call team had no idea what they were or where they came from 🙁 took nearly a week to resolve and update properly.

  • Confession #459

    The company had setup the org with all users with “Manage Public List Views” and a user updated the master list view to show only records she had created and hit save instead of Save As. Which then displayed HIPPA managed data to a lot of people. That was fun one to back into for a resolution.

  • Confession #458

    A company was using visualforce based Community as an ideation portal where internal Salesforce list view was being used on the community. One fine day the admin has updated the list view visibility to “Visible to all users (includes partner and customer portal users)”. And then all the records were visible to all community users.

  • Confession #457

    Our team changed a simple field type and NA79 started having performance issues along with all customers started receiving denial of service alerts from Salesforce.

  • Confession #456

    Someone asked me to do a Dynamics -> SFDC migration in three weeks.

  • Confession #455

    One of my favorites was a company that purchased one marketing platform and ripped their current one without talking to their SFDC admin or having an implementation plan at all!

  • Confession #454

    When the VP wanted the temp to have SysAdmin Role and Profile so they could ‘help with stuff‘ and not have to bother anyone for access…… It was a temp that was helping with basic data cleaning, checking opportunity close dates, update stage & update notes. These were manual tasks that required research for each one and a simple update with manual note. Simple basic access was needed.

  • Confession #453

    I managed an org to org migration for the first time (first time admin, first org transfer). Assumed everything was good because UAT was fine. Deployed new org to first 50 users – then went on vacation for a week out of the country while everything broke.

  • Confession #452

    I also did Confession # 436, however not with salesforce for outlook but lightning for outlook. It was not that it wasn’t properly configured, as the intention was to sync all of the SFDC contacts to outlook, but more of an oversight that all of the outlook contacts were also synced to people’s phones.

  • Confession #451

    I also did Confession 436 – AND NOW I FEEL NOT SO ALONE! I, then spent the 4th of july weekend deleting people from my phone, only to discover I was also deleting them out of Salesforce. Can you say panic-stricke support call at 6am? We were able to restore because it was less than 14 days.

  • Confession #450

    I am trying to determine what automation is executing in a client’s system and why, particularly when a users go through a multi-step approval process for an Opportunity. I approved the first step of an approval and looked at the debug log. Although the debug logs are really difficult to decipher, what I have determined is that that where I see the event WF_CRITERIA_BEGIN, the name of the action is a traditional “workflow rule” if it does not contain underscores. If there are underscores, then action refers to the API name of a “process” (from the process builder). I also know that the order of execution is that workflow rules are executed before processes.

    So, given these things, why is it that in my log snippet I have a WFR executing, then a process, then another WFR, then a process, and so on, one right after the other at the same timestamp in the debug log? For instance, “Request_Create_Stage_History_Record” (a process) happens before or simultaneous with “SLA Alert – Executive Director Review” (a WFR), after which other WFRs and processes immediately are logged. I expect that I am not understanding how to read the log or how execution is actually happening. But if the order of execution is true, what explains what I’m seeing?

    What I’m trying to get at is ultimately how I would really understand whether one of several automations was making an update that later triggered another to fire, creating an undesired chain of events. How would I know that if they all seem to fire at the same time?

    I would LOVE some good documentation or an explanation of how to determine the actual order of what happens and why.

  • Confession #449

    I worked with a System Integrator on a client project who built one flow for multiple countries. There was no documentation, no testing, no splitting the flow(s) into smaller manageable buckets, one developer, no error handling, all for a Community platform. I logged 250 odd defects during my time there before we went live…

  • Confession #448

    Discovered salesperson copies his Salesforce emails into Outlook email, changes the data and mails. No record of the sent email is saved other than his Outlook sent items which is “all he cares about.” Then complains he can’t find anything and that’s a problem with Salesforce.

  • Confession #447

    Hid a field from every user including Informatica, which broke a complete overnight job!

  • Confession #446

    Wrote a self chained batch job, missed one condition which made it recursive! org went down no one could do anything as pages didn’t load. Sys admin was in another timezone. We were able to login after few hrs when the jobs hit AsyncApexExecution limit.

  • Confession #445

    I once created a validation rule in Production that prevented any new Opportunities from being created…the Wednesday afternoon before Thanksgiving.

  • Confession #444

    Updated the admin password via apex code and next day is production go live. No one can login into production then.

  • Confession #443

    Did a data load of contacts into the wrong client’s org 😣

  • Confession #442

    Someone sent a blast email to over 10K contacts while doing data load because forgot to turn on Deliverability in Production🤭 true story

  • Confession #441

    Hard-coded a record type ID in a Process Builder process in Sandbox.
    Deployed to production and activated.
    Went on vacation.

  • Confession #440

    Ages ago, a content mgr wanted admin access, a junior admin, reluctantly did…content mgr created page layout, with custom fields, erase work at end of day, and “accidentally” assigned page layout with no fields to a record type for published articles assigned to it….fun times

  • Confession #439

    I once went crazy spending an hour troubleshooting why a validation rule was not working…until I realized it had to be activated first 😅

  • Confession #438

    A long time ago we had a director of operations delete thousands of cases by accident… it was not a good day…

  • Confession #437

    Did a data load of blank fields in a client’s org and wiped out all their data. I was still learning. I learned my lesson and now I always have a backup.

  • Confession #436

    Salesforce for outlook wasn’t configured properly and all 15,000 contacts in SF synced with the smart phone of all employees. Only way to delete them – one by one.

  • Confession #435

    Years ago, when we were still figuring out Salesforce for Outlook, we accidentally allowed people to sync contacts. When the East Coast team logged in we mysteriously had thousands of new duplicate contacts created in Salesforce that were not tied to any accounts. Oops!

  • Confession #434

    We usually enforce IP Restriction during deployment to prevent portal users access to community during deployment. But one of our developer accidentally enforced this for admin profile which kicked us all out of the active session and we couldn’t login until we figured a way out.

  • Confession #433

    Company had no admin for 12 years before me. Everyone had admin access. After 2 years, still finding weird things; i.e. custom object for “pipeline”.

  • Confession #432

    I overrode some other person’s code by mistake as we both were working on same class in QA Org, not Prod.

  • Confession #431

    Someone hardcoded the matching of emails to contacts instead of looking for their From address and matching it to Contact Email. All emails for the next week went to the same Contact. Lot of limit has reached errors emails started pouring in 😓😨😰

  • Confession #430

    With the rush to get data into Salesforce instance during transforming from another CRM, we inserted about 80k accounts of which each record is a repetition of an account with a different product/order! This proved us how important is data model!

  • Confession #429

    400,000 new records loaded to Prod… because of an unknown workflow that wasn’t deactivated, an email went out to the customer contact on each record.

  • Confession #428

    Refreshed a sandbox without warning anyone. Turns out my boss had been building in it for quite a few days 🙂

  • Confession #427

    Ages ago, a content mgr wanted admin access, a junior admin, reluctantly did…content mgr created page layout, with custom fields, erase work at end of day, and “accidentally” assigned page layout with no fields to a record type for published articles assigned to it….fun times

  • Confession #426

    I failed to turn off an email notification before loading a ton of closed cases and clients for emails about the old cases. It was bad. I remember being on the phone with an exec after trying to explain what I did. He said “if the worse thing that happens with this acquisition go live is a couple thousand emails I am good with that”.

  • Confession #425

    I sent millions of pounds worth of purchase orders to suppliers when testing process builder in production.

  • Confession #424

    I once worked with an admin who thought profiles and permission sets were not important. All was good until we found out users were changing pricebook entries and approvals…

  • Confession #423

    Using data loader a newer admin created (insert) SIX of every employee record in the entire firm instead of doing an upsert. Why’d they do it six separate times?

  • Confession #422

    Once upon a time an admin renamed an active page layout in Prod instead of cloning it and erased most of the fields and components on the page in the middle of the workday.

  • Confession #421

    Found a process builder that was here well before my time that had criteria Formula evaluates to true and the formula was 1=1… I guess No criteria would have been too easy.

  • Confession #421

    I was ordered to give an executive System Administrator profile. Nightmare, scary, worst horror of my career.

  • Confession #420

    I know an org where multiple end users are sharing licenses …. bad idea for so many reasons and a nightmare when resetting passwords! GASP

  • Confession #419

    As the implementation partner, having to us the same login as the client’s own sys admin. Really have no clue who did what.

  • Confession #418

    First person implemented the org got fired. Second person left… 3rd person spent all her time doing other things… No documentation about what has been done apparently.The director has no ideas about what she wants, but she wants Salesforce.

  • Confession #417

    Prior life…but there were nearly as many profiles as there were employees.

  • Confession #416

    Big4 consulting firm with big rollout to 1000 FSL seats. Decided on 2 phase rollout. Spent a week doing high level discovery for Ph1 but didn’t ph2. Ph1 was decided to be 5 sprints. They didn’t understand the detailed requirements. They did a little bit of business analysis at start of each sprint. There was no correlation of requirements across sprints. Then they started looking at Ph2, but it was massively impacted by Ph1 architectural decisions. Go live was delayed 3 months. It has just gone live, but is unusable. It may need to rolled back.

  • Confession #415

    I worked as a BA at my last contract and they had implemented Leads with stages (as this is how the third party system worked). The PM had one Sprint which ran for 6 months and covered 3 different SFDC projects… and the PM did not know anything about SFDC.

  • Confession #414

    I have been at my org for a year, and am looking to move our recruitment process to leads. Some custom fields were added to leads years ago, but leads were never implemented. Found workflow to “Update Lead ID.” Lead ID in this case is a custom field marked as external ID. Ran a report to find out what the external identifier is. Custom and standard fields “Lead ID” hold identical values. Workflow is literally copying the 15 digit ID to a custom field for no apparent reason.

  • Confession #413

    Old org. Field limit on object reached. What now? They converted one of the fields to long text and kept putting additional “fields” there in a JSON format. I wonder when they’ll exceed length limit of that field and need a second one…

  • Confession #412

    Startup company. Founders are former devs; presumably with Java background. They insisted to use code to everything, including validation rules, processes, access control… They explained that that’s how they are used to work.

  • Confession #411

    Salesforce admin with quarter of century of Linux experience wanted to be THE admin. He wrote a script to assign him all permission sets, including a special one with every single permission enabled, and scheduled it so he didn’t miss any newly created one. If that was not enough, he “improved” every validation rule so THE admin could ignore them.

  • Confession #410

    Formula field was so long that we had to remove all formatting (spaces and line breaks). Now it’s a beautiful, 3900 characters long one-liner.

  • Confession #409

    Page layout (actually a VF page) with every single field visible. And with embedded layouts of all related records. With all fields as well. All of that for “audit purposes”.

  • Confession #408

    Just started a new job and trying to understand the org. On every object, there is the standard Created By field, then a 2nd created by field, and a 3rd created by field. All of these have no description. I’ve been asked to create an automated process that triggers the creation of an opportunity with the ‘created by’ being the new record’s owner but I have no idea which of the 3 ‘created by’ fields are correct and my boss doesn’t understand why I don’t understand!!

  • Confession #407

    Repurposing Salesforce for an HRMS. Relabelling Account to Employer, Contact to Employee. Then creating custom objects for different types of Contacts…

  • Confession #406

    2,500 contacts with an email address of “delete @ delete.com”. This is what happens when you make it really easy to change data, and really difficult to delete it.

  • Confession #405

    One time I saw an admin delete all object data 🙂 magical lol

  • Confession #404

    I had a contract recently to work on expanding out the architecture for a Salesforce org at a pharma company. I asked who was administering the current build – Intern, in college, only other job was a server in a restaurant.

  • Confession #403

    Regional Sales Leader: “Hey Admin, I just updated everyone’s settings in Salesforce to make them System Admins, so that my team members can log calls and meetings!”⁠

  • Confession #402

    We have a couple of public groups with a single user in them

  • Confession #401

    Business support user asked to modify all user profiles to remove the ability for them to create reports because ONE person keeps making their own and it’s confusing for others… (case of using a hammer to swat a fly).

  • Confession #400

    I typically work in SFDC naked.

  • Confession #399

    Director wants a new field for FY total giving. Quickly build it for year end. Fast forward a year later same request comes in and built it again. Now we have FY16_Giving_Total__c and FY17_Giving__Total__c. You might see where this is going. Eventually, Today, we have 4 years of totals and no one cares about FY 16 anymore. Looking back I wish I had thought to write a more complex definition for Current_FY_Giving_Total__c. Prior_FY_Giving_Total__c and maybe even 2_Years_Ago_FY_Giving_Total__c. Three fields to maintain. Once the formula is correct there is no need to ever modify it. No need to build a new one annually. No one cares about totals from three years ago

  • Confession #398

    I blindly activate critical updates without testing. Hoping it doesn’t break something.

  • Confession #397

    I joined a company that worked with salesforce for couple of years. The admins put only the customers into the system not the prospects – argument for that was they can´t differentiate if customer or prospect. You can imagine my face seeing 4k prospects in excel sheets.

  • Confession #396

    I built some new functionality, wrote my user training documentation, and pushed it to production. Another admin inadvertently wiped out this functionality on a subsequent change set from a different sandbox, which we didn’t discover for 4 months. Now I have to go back and re-figure out how I designed it to work originally so I can put it back and I’m realizing how much I didn’t document and don’t remember…

  • Confession #395

    That special moment when a Salesforce user insists on using Notes to capture all calls, tasks & to-do items, because using native Activities “is too much”

  • Confession #394

    I joined a company whose salesforce instance had been touched by a number of actors without any training. Lots of stories, but the one that made me laugh the most is the field “Today Date” on an Account. And yes, it was a formula field, and the formula was TODAY()

  • Confession #393

    I joined a company with a very old org: 100+ objects, several almost at their field limits, 50+ profiles, 100+ permission sets, tens of thousands of reports…! Sandboxes not refreshed in years, deploying changes manually… Worst of all, no documentation of anything!

  • Confession #392

    The CEO of a non-profit I worked for wanted all the major gifts officers to start tracking their donor portfolios (meetings, phone calls, emails) in a binder. As system admin I suggested using tasks and activities to log donor touches and keep the history in Salesforce, then schedule a report to his inbox at the interval of his choosing. That went over like a lead balloon…

  • Confession #391

    A global organization purchased hundreds of licenses and appointed one internal admin to implement and maintain the org. After three years of work, there is a data model in place which requires to create same fields year after year, because they capture data only for that year. User adoption is quite low…

  • Confession #390

    I took a job with a non-profit that had a new Salesforce system used for client management. The agency had a contract with the consultants who built the system to continue implementing new functionality. But there was NO SANDBOX – and the system was so horrifically complex that it required a developer to set up a Sandbox that worked. So the consultants – and us – were making all the changes, testing, etc. right in production. I was horrified. This story has a happy ending – by the end of my 4.5 years there, the agency was on a full Sandbox.

  • Confession #389

    Apex getter incremented a value stored in Salesforce after returning it. Performed a full DML to updated the value. Makes me scared to know what is happening when we simply get values in our org!

  • Confession #388

    When I first started working in Salesforce, without any training, the system administrators set me up with rights to manage our team’s users. Which also gave me rights to update my own profile and assign myself more rights… I am pretty cautious but I could really wreck something!

  • Confession #387

    Frustrated with Lightning, too many clicks, need to refresh the page multiple times before updates show up and hang time is too long. Still do all my work in Classic, especially in Setup.

  • Confession #386

    Credentials (yep, to Production system) hardcoded in Apex. And then debugged to developer console on each use!

  • Confession #385

    We have so many customizations (even, or actually especially when there is a matching standard feature) that I think we are doing that just for the sake of pushing Salesforce to its limits.

  • Confession #384

    Criteria-based sharing rules based on custom IP field. Continuous maintenance…

  • Confession #383

    Several times we got a CRITICAL issue, because a field was moved to the other section of the layout.

  • Confession #382

    As a consultant I’ve had the opportunity to look into numerous orgs. First thing I do when I get onsite is look at the data model and security model. One such org was using Territory Management out of the box. They created a one to one relationship between territories and roles (which, by definition cancelled out the use of territories). As a result, the client had over 200 ROLES for sales people driving their security model. No wonder they were unable to share basic information with one another.

  • Confession #381

    We have continuous integration. Development process: Apex – code developed by developer, then committed to repository, then deployed to several sandboxes for testing, and finally deployed to production. Everything else that can be modified on production – developed directly on production by admin, and only then retrieved by devops team and added to repository, so “the users don’t have to wait”.

  • Confession #380

    Mandatory regulatory change. It is published months before it becomes mandatory, but dev team is informed so late that it has to be done ASAP, which means no code review, only basic tests that the new feature didn’t blow everything out or development directly on production. And yet despite it being ASAP, business still changes its mind, so subsequent fixes has to be made. And “ASAP” feature is on production after, say, month. And yet nobody cares.

  • Confession #379

    Code review performed by junior devs due to lack of seniors in team (currently only one).

  • Confession #378

    We’d like you to build all these API integrations and task automations… but we only bought Salesforce Professional Edition and we don’t want to purchase APIs or spend another cent. I feel like I’m holding it together with bandaids and sticky tape!!!

  • Confession #377

    In doing a health check on a customer org, I found a formula field called “Last Modified Date” that looked at the record’s last modified date.

  • Confession #376

    Was with a notforprofit converting to Salesforce. Already have an IT degree and oodles of experience, certified in SF in my own time and my own cost to support the project. Was told I wouldn’t be needed after the go-live because they had Salesforce Premium Support. The first day after I left my former manager ran a data import in production and screwed up about 900 contact records which they then told the Customer Service team to manually fix as they didn’t know how to undo their mistake and hadn’t taken a backup beforehand. Karma…

  • Confession #375

    Actual Test Class.
    In Production.


    public static void hackMethod () {
    integer i = 0;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;
    i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;i++;

    }

    }

  • Confession #374

    Custom logic mixed in Apex classes, workflows, flows, process builders, formulae, even JavaScript on VF pages. Built by various consultants over years, and in some cases, by admin directly on production. No documentation.

  • Confession #373

    SOQL queries in loops.
    Callouts in loops.
    DMLs in loops.

  • Confession #372

    Multiple permission sets “Object Field edit” on Production, which give access to just one field on just one object.

  • Confession #371

    Permission set “{persons forename} Permission Set” on Production. That forename is quite rare, so we all know for which user was it created, but now it’s assigned to many other users, so it’s impossible to get rid of that.

  • Confession #370

    When you quickly make a change for a user, and they respond back immediately with “It’s still not fixed”. Then you remember you’re on Lightning and you have to ask the user to refresh their browser 20 times, log out and log in again, and then shake their computer a couple times so that Lightning will finally stop looking at the cache and load the new setting.

  • Confession #369

    I sometimes still use a pencil.

  • Confession #368

    We discovered Workflows and Validation Rules with open conditions and other workflows with overlapping/contradicting conditions on same object.

  • Confession #367

    I still build in Classic, but preach to my mentees to build in Lightning.

  • Confession #366

    Big issues with how fields are used in the Org. Too many custom fields so detail pages take longer to load. There is confusion over which fields to complete and which ones to skip. Using ‘Large Text’ fields instead of ‘Notes’ feature. Finally, rollup fields used as flags instead of rolling up count or currency.

  • Confession #365

    Inconsistent naming conventions & standards followed across code. Multiple frameworks for test classes, utility classes, trigger & integrations. Lack of code commenting makes it tough to maintain & support.

  • Confession #364

    Multiple Triggers/Classes/VF Pages with < 75% code coverage. The test classes just cover lines of code so they don't guarantee whether functionality worked or not.

  • Confession #363

    Custom object “X_History__c” with fields “Changed_Date__c”, “Field_Changed__c”, “Old_Value__c”, “New_Value__c”, “Changer__c”. Has it been created before SF introduced field history tracking?

  • Confession #362

    700 GB of record. When it’s close to the limit, we buy additional storage. About half was useless old “technical” records. Finally we managed to delete then. It took over a week and killed our async jobs due to SF’s daily limits.

  • Confession #361

    Using “Comments__c” text field on object, with tracked history, and refusing to use Chatter, because “that’d be something new to the users”.

  • Confession #360

    SF Cases used as issue tracker. When SF is not working, it ends with “where is your God now?” moment.

  • Confession #359

    Profiles: “X (company name) Administrator”, “Integration Admin”, “MC Integration Admin”, “X Support Administrator”, “X System Administrator”. Standard “System Administrator” in use as well.

  • Confession #358

    Fields “Value_2016__c”, “Value_2017__c”, “Value_2018__c”… Admin never heard of “zero, one, infinity” rule.

  • Confession #357

    Every partner company has its own profile.

  • Confession #356

    Virtually no role hierarchy (except “Top” and a few below, on the same level). Instead, profiles used as they were roles.

  • Confession #355

    Dozens of cross-object formula fields, so the user don’t have to switch to parent objects to see their fields.

  • Confession #354

    Hardcoded record type ID on formula. Impossible to use RecordType.DeveloperName because of exceeded limit of relationships on formulae.

  • Confession #353

    List views wrapped in VF pages, with extra controls. New list view = new VF page…

  • Confession #352

    I always try and steal my formulas from the Trailblazer community Answers section instead of build them myself…

  • Confession #351

    Customer using non-English language (our native) in org. Whereas official translations are not bad per se, but we, devs were so accustomed to English terminology that we had to switch it back to English to work efficiently.

  • Confession #350

    Case trigger creates tasks. Task trigger updates case, which creates another task. Infinity loop.

  • Confession #349

    Validation rule to stop one spammer (hardcoded email address) from creating email-to-case.

  • Confession #348

    Financial company. External consultants with unlimited System Administrator access to Production.

  • Confession #347

    Custom fields on Contact: Second First Name, Second Last Name.
    – First or second?
    – Yes.

  • Confession #346

    SF integrated with external system “X” directly (SOAP) AND through integration framework.

  • Confession #345

    I went into a company and found that a previous person had tried to implement Opportunities for the company who were using Leads for everything at this point. Rather than training the company on how to convert a Lead, loads of flows, triggers, lightning components (to show the Opportunity status on the lead) and formulas were used to keep the Lead in sync with its created Opportunity (created when the Lead reached a certain status) until the Opportunity closed as won. At this point, the Lead was converted, if lost, the lLead stayed forever. This also meant that no Accounts were ever created until the Opportunity was closed won. Needless to say, this was a tricky one to straighten up.

  • Confession #344

    Admins are unable to trust existing Permission Sets by their name. Numerous Profiles (~60) and Permissions Sets (~600) assigned to various users. Security Risks due to non-admin users in the org with high data exposure and higher level of system privileges like Export Data and View All/Edit All.

  • Confession #343

    Consultant was supposed to put a time stamp when a field was changed on a record. They wrote a formula so that every record would show as time stamped today. We paid $300/hour for this.

  • Confession #342

    Non-Salesforce legacy system has three orgs you have to log in and out of. Consultant set up Salesforce to push data into legacy system, which was still used. Consultant also made custom objects for Quote, Quote Line, Order, Order Item. No documentation. Business has thousands of products with multiple options to configure and each possible configuration has its own product record. Asked why he didn’t think to set up CPQ, he said, Well, CPQ is really complicated.

  • Confession #341

    I found out that our org has maxed our number of Workflow rules on a Case object. All rules are identical – they send email alert based on the same criteria and use the same email template, but each have only one recipient and it’s always a different person from the support team.

  • Confession #340

    Meant to sent a mass survey to 100k people that opted in. Instead sent to over 1 million people that never interacted with the company.

  • Confession #339

    Consultant who preceded me set it up so orders are created only when opportunities are closed/won.

  • Confession #338

    External consultant has deployed all custom objects and related validations and flows as managed packages, but no access to the developer org has been given to us.

  • Confession #337

    I’m just learning to code and some of it is being pushed to our Prod!

  • Confession #336

    Our org is integrated with ERP. Business need was a FULL load of Accounts and Materials, but after some months realized that they actively use only hundreds. But they load 500k for each object. Daily!
    Plus middleware team refused to set UPSERT, only INSERT, therefore we needed a trigger to transform data (update existing, insert new). After 3 months development and testing we went live. Used for about a year and then the middleware team had org changes and the new technical team accepted our proofs that they can change API config from INSERT to UPSERT. After one more year we implemented an enhancement to flag non used Accounts and Products to be able to hide them. Wish we could do all these things from the start since we’ve spent a lot for cleansing!

  • Confession #335

    I triggered a system email to 200,000 customers.

  • Confession #334

    Synced 2.9 million Leads and Contacts from Salesforce to Marketing Cloud…the contact count limit in Marketing Cloud at the time was 80,0000…

  • Confession #333

    Got asked to merge over 5000 unique community portals…

  • Confession #332

    Users were creating their own Lead fields – it had reached the field limit when we came in.

  • Confession #331

    I wish I had made the “Session title” field limited to 80ch. Because now I need to contact everyone who has had their session accepted and ask them to cut their title to 80 ch.

  • Confession #330

    CRM systems manager has been using SFDC for 3 years now, implemented commerce cloud and still doesn’t think it’s a platform that can compete with MS Dynamics.

  • Confession #329

    Marketing team refuses to delete 20k lead records that are 5 years old, thinking that because they paid for them that somehow they will be useful somehow, sometime, to someone…

  • Confession #328

    I removed the admin user from a community.

  • Confession #327

    We recreated almost all CPQ objects to save license costs for finance who just need to report on the data.

  • Confession #326

    On account we have a custom picklist field called Target Account with Yes and No picklist values.
    Let that one sink in.
    To make it worse our standard picklist field Type has a picklist value Target Account.
    It was a requirement from Marketing although they were actually never were able to explain the difference.

  • Confession #325

    Our business decided to implement a property object, so upon lead creation, a property is created from the address details.They also decided that lead duplication was not an issue and that duplication should in fact be encouraged when leads return, without syncing up to our person accounts… I’ve inherited the most cluttered system of duplicates leads and on top of them duplicate properties that can’t be merged….

  • Confession #324

    As a “wet behind the ears” stand-in Admin, the head of Marketing asked me to delete all the Sales team’s Tasks because they weren’t yet using Tasks in this newly rolled out org and it was populated with “junk”. I asked,” Are you sure?” The response was “yes”. “Are you really, really sure?” Again, “yes”. I remind you that this wasn’t my job and I was filling-in until the Admin position could be backfilled. I did what was asked of me because, while I questioned the instructions, I trusted the source. As you can imagine, the outcome resulted in a mini-revolt because Sales WAS using Tasks! This was my introduction to the world of Salesforce! Thirteen years later, this Accidental Admin trusts no one when it comes to extreme requests, there’s always a lot of questioning of various audiences, a backup file, and a revert plan.

  • Confession #323

    I require my users to use Lightning. I toggle back to a Classic daily.

  • Confession #322

    I worked for an org (pre-Lightning) with a custom Visualforce “skin” on the Leads page. It recreated the standard leads page but with a few small bells and whistles, like custom filters on related lists etc. So any change to the lead page needed a developer to add a field. Also, it used 57 SOQL queries JUST to load the page. The org also had so much trigger recursiveness that changing the shipping address postcode on a child record caused the dreaded TOO MANY SOQL QUERIES error. I left the job after a year. My last 6 weeks were spent bringing the org’s test coverage from just skating by on 75%, to 85%. Six weeks to get a 10% jump. *headdesk*

  • Confession #321

    I want to move from Admin to Developer and procrastinating every month…

  • Confession #320

    My Private Reports folder is a hot mess and I have no one to blame but myself.

  • Confession #319

    I’ve been doing Salesforce for 10 years and I still have to Google for Validation Rule help.

  • Confession #318

    I inherited an org that has a custom object called contact__c.

  • Confession #317

    I was in charge of a sales verticalization implementation, which also was the first time reps had a book of business. Leadership’s direction was to dump 5m Accounts into SFDC which I had to de-dupe against current database…impossible because no data enforcement and data was stale. After the first 6 months no one trusted the data and they continued to sell per previous status quo. We hired a team of 10 to do data enrichment on all the accounts I dumped in… I won a company award for my quarterly “performance”.

  • Confession #316

    Documentation is apparently a four letter word around here!

  • Confession #315

    After 10 years of working with SFDC I am still looking for the search button while building a change set. Legend has it, for the privilege of searching for a component, one can also pay additional licensing fees to a SUPER Platinum SFDC Partner

  • Confession #314

    37,000 lines of code for DocuSign. Yes – THIRTY-SEVEN-THOUSAND!

  • Confession #313

    Marketing has used a checkbox to show participation in our annual user group – not a campaign – a check box – that is erased every year and re-used.

  • Confession #312

    32 stages on an Opportunity NOT INCLUDING closed won or lost.

  • Confession #311

    Salesforce was purchased 3 years before any implementation done. Accounts and Contacts were uploaded then. Then again for a second time during implementation. Then when the consultant realized they had errors on the second upload, they re-uploaded everything for a third time. No one thought to delete the previous uploads.

  • Confession #310

    User asked to grant login access. Emails Username and Password instead. Did I mention this user has System Admin access?

  • Confession #309

    Rebuilt 89 webservices from an old custom CRM… Without documentation or access to the legacy code, just the name.

  • Confession #308

    What have you done, the API integration is failing. User called “Integration User- don’t deactivate” was deactivated by the client PM.

  • Confession #307

    Invited to new Chatter group called “ISV-ABC.” We all ignored it because it looked like a test. ABC actually stands for a territory: AMER – BUILD – CENTRAL.

  • Confession #306

    Org with 432 WorkFlow + 86 ProcessBuilder + triggers. No documentation….

  • Confession #305

    Once did a CPQ deployment where the client didn’t want to do any UAT testing before going live. We let them do it.

  • Confession #304

    My manager suggested it’s ok to have 10 triggers on a object.

  • Confession #303

    Org was previously “owned” by dev team. They created custom 100% coded lead conversion because they didn’t know the OOTB functionality existed!

  • Confession #302

    Our brand was purchased by a larger company, multiple teams were brought into the existing org, and the solo admin (myself) is disallowed to help the remaining teams. We’ve lost one of them now. I got to go order a nameplate now. Sadly, I’m also confession #121 incarnate…

  • Confession #301

    Trying to figure out a nonsensical Apex trigger built by someone who is no longer with us. And by ‘no longer with us’, I don’t mean isn’t with the company anymore…

  • Confession #300

    Working under direction of a Director who doesn’t know anything about Salesforce and always compares to other technology that Director worked on.

  • Confession #299

    Sharing rules criteria of Billing City Not Equal to ‘asdfasdfasdf’. And on a Public Read/Write object. Umm, No.

  • Confession #298

    Sales Rep sent a “Merry Christmas” email template to all of his Contacts in the middle of July.

  • Confession #297

    In my first admin role, my boss told me they refused to develop in sandboxes because they ‘took too long’ to spin up, so we developed everything in production.

  • Confession #296

    Sales Rep automatically receives lead. Sales Rep calls Admin to ask “what does this lead want?”….

  • Confession #295

    Fraud test coverage taken to 100% using a loop.

  • Confession #294

    Role names ‘hard coded’ within Apex Classes.

  • Confession #293

    300+ record types on the case object…

  • Confession #292

    What documentation?

  • Confession #291

    Discovered that the external consultants had created 52 approval processes which contained the same starting field update – and they’d created that field update 52 times too…

  • Confession #290

    Custom objects for Skills, Translations, Roles, Case Comments. I guess the previous consultant didn’t know about “standard” objects

  • Confession #289

    I learned the hard way – when using flow, NEVER put an action object (lookup, create, update, or delete) in a loop, unless you are 100% sure it’s only going to loop a handful of records…and even then…haha.

  • Confession #288

    Over 150,000 reports….

  • Confession #287

    Once worked with a Senior Admin that refused to fix profiles and permissions, saying they were “not important”. This was after I explained that Sales Directors had access to the CPQ pricebook and were deleting products to try and bypass approvals. Needless to say, ended up mass changing profiles and permissions without telling him. To this day, I don’t think he knows I did it.

  • Confession #286

    There are 110,000 Account records without a real owner.

  • Confession #285

    Hard coding employee names directly into a trigger!

  • Confession #284

    If you request more apex code space in your org and have thousands of lines of `i++;` it’s getting rejected. But why write garbage code that just increments a variable? Code coverage… If 75% of your code is garbage that’s easy to test, then the other 25% of your code that’s actual logic doesn’t need tests.

  • Confession #283

    A VP of Sales asked if I needed to create reports first before I created his team’s sales dashboard! He also wanted to increase user adoption, his solution is to reward the user that logs in the most time each week.

  • Confession #282

    I worked for a company that demanded a certain number of calls with “2 way” communication. So I kept a list of all my customers who had a phone menu that would loop. So it appeared I was on the phone for a certain # of minutes. While listening to the phone loop, I would then enter false conversations. I could identify these as false because they always began with a few selected lower case words. I would get the nonsense done so I could move in and sell.

  • Confession #281

    I had such a bad hangover at Dreamforce I watched Marc Benioff’s keynote streamed on my laptop whilst lying in the bath drinking Red Bull.

  • Confession #280

    Created multiple tickets and assigned them to myself so my ticket count meets managements expectations. Eg, a ticket to make a change, another to troubleshoot the change, another to track a problem record with vendor, another to apply the vendor recommendation and heck, one to perform a full recycle and heck another to document the change.

  • Confession #279

    Every quarter our sales teams change their tiers to improve the efficiency, at least for every year. So we gotta activate and inactivate hundreds picklist values available for sales teams based on the change in their team structure. Doing this manually is a tedious task.

  • Confession #278

    Joined as solo admin for an org with 50k community users with self registration and no duplicate / matching rules switched on. Shall spend the next 20 years of my life cleaning the data.

  • Confession #277

    In the 4 or so years I’ve been working with Salesforce, I’ve never really ‘got’ Sandboxes and change sets.

  • Confession #276

    1:1 Relationship established between Territories and Roles. Ehhhhhhhhh!

  • Confession #275

    I created a custom object for Projects. One of the key users wanted a field for “Contacts” related to the project. I told him we could use a lookup field to get the contact information from “Contacts” object or related lists if more than one contact was related to a project record. He said it was too complicated and instead asked me to create text fields for “Name” and “Title” inside the Project custom object. And this is not the end! He did not know how many Contacts could be related to a project, so he wanted text fields for “Contact 1”, “Contact 2”, “Contact 3”, “Title 1”, “Title 2” and “Title 3”. After weeks trying to explain him that did not make any sense, I finally………… gave up, did what he asked for and started looking for another job.

  • Confession #274

    117 API integrations without a middleware!!

  • Confession #273

    We cannot extend the Case object any further, limit of spanning relationships reached….

  • Confession #272

    The milestones limit for each entitlement process is 10, but our team want 250 milestones.

  • Confession #271

    All work is managed at a micro level using tasks and subtasks with automation to auto create even more tasks so it is just such a hot mess.

  • Confession #270

    Managers want to see reports and dashboards about various data, but the users don’t want to fill in all the data. So managers say, “We can’t use this as it is!”. Well…

  • Confession #269

    I once ran an import where I accidentally incremented a column in Excel instead of copying. It resulted in Opportunity Sales Process Stage Names of “Prospecting – 1” through “Prospecting – 5000”.

  • Confession #268

    I found one of the System Admins had given out his username and password to lots of people so that they could add their own fields and fix stuff!!!!

  • Confession #267

    I add things via the Sandbox but delete things directly in Production.

  • Confession #266

    My previous supervisor did the “Get Started with the Salesforce Platform” module inside our Production Org. I still have nightmares about trying to get rid of the DreamHouse app.

  • Confession #265

    “It’s not my job to click through all these screens,” said user. I wanted to say “It’s not my job to make your life easier.” And then I realized yeah, that’s my job.

  • Confession #264

    I sometimes take phone meetings from bed.

  • Confession #263

    We are going to be Classic forever!

  • Confession #262

    My president wants me to build Org so he can see everything whenever he wants without making a single click.

  • Confession #261

    I Google for formulas because I will never understand how to write them.

  • Confession #260

    Org only has 18 users, but each of them has a custom profile.

  • Confession #259

    Org has 10 profiles. All clones of the Admin one.

  • Confession #258

    Upon leaving my company they asked me to train someone from billing on how to be an Admin. She had 3 hours worth of training with me and asked to stop early because she already knew everything. After a year the company paid for her to take the ADM201 class & got certified. However, she doesn’t know the navigation bar can be customized or how to build a Opportunity report with Products…. She gets employee of the month often.

  • Confession #257

    I have no developers and no backup admins! I have minimal documentation because the requests never stop and they’re rarely prioritized. Someone from each department will drop by and push their projects to get to the top of the list.

  • Confession #256

    SI was kicked out of the project but the PM and 2 of his cohorts came back into the building after they were kicked out to try fix all the mistakes of the implementation. When the client PM found out she had security throw them out…Hilarious..

  • Confession #255

    We acquired a company that also had salesforce. Their admin left immediately after the acquisition so now I’m managing both orgs and working on merging them. Because both teams can’t decide on what to call fields and it ends in an argument, we have duplicate fields for each team. I do not feel empowered to make decisions in this instance so I’m creating a mess for the next person. I did however create a generic admin user so no one will ever know it was me creating this mess. I’m actively looking for another job.

  • Confession #254

    Open Opportunities with expired PRIMARY quotes created over 5 years ago.

  • Confession #253

    Very well known and large SI partner charging senior rates and putting junior people in projects… leading to predictably bad implementations with hardcoded IDs, no naming conventions and multiple PBW and Triggers on the same object.

  • Confession #252

    Client was very worried about bounce back emails when sending an email through Salesforce. “Well how many bounce back emails do you get?” “30 a day.” They did not like my suggestion that Salesforce was a powerful tool, but their call center needed to write down emails CORRECTLY.

  • Confession #251

    Spent 15 months cleaning up a poor implementation that started about 8 months before I did. Partner is consistently featured by Salesforce at events and I want to scream “Don’t use them. They implemented in Classic and created VF pages using Lightning design system instead of actual Lightning. And instead of using settings they hardcoded tons of id’s :(“

  • Confession #250

    A new client has 40+ custom Opportunity fields used to report on the forecast, instead of using Forecasts.

  • Confession #249

    I joined my company 1 year after they implemented Salesforce. Before me, they had 4 different consulting teams working on different pieces without any communication. 2 years later and I’m still cleaning it up.

  • Confession #248

    Consultant did not know how to create Community Sharing Sets, so instead they created External Sharing as Private, then created a Manual Sharing Rule to share ALL Accounts owned by ALL Internal Users with ALL Partner Community Users as Read/Write…horribly bad practices…thought they were being sharp by creating a “My Accounts” VF Page and making it the Community Default, but forgot to check the visibility and Sharing Settings of the All Accounts List View…found out when one of the Partners confessed they could see everyone else’s Account, Opptys, Contacts and Cases.

  • Confession #247

    User mentioned to me that they could now delete the (customer service) Case. I said “Huh?” and he explained that he deleted the Cases when completed, to have a tidy case log. Just like he deletes emails from his inbox when they’ve been dealt with. So well intentioned, but noooo(!) “Ah, so that’s what the Case Closed status is for!” he said afterwards.

  • Confession #246

    My users want to reopen closed won opportunities ALL THE TIME and don’t understand why this is a bad idea. We also ‘refund’ closed won opportunities from years ago if we never got paid…

  • Confession #245

    Found a user account created to own Accounts and Contacts to identify them as Terminated. It was the name of an actual user. They didn’t even fake out the name to “terminated” or any way to know what the user account was actually being used for. I deactivated the user and created a status picklist, then cleaned up the records.

  • Confession #244

    We have a new sales exec at my company telling me we should consider having non-closed won opportunities without accounts and then when the opportunity is closed won then we create an account.

  • Confession #243

    On a custom object there’s a button that “Logs the Request” it updates 3 fields (Record_Locked__c, Status__c and TimeStamp__c). The object has an approval process. But that button doesn’t submit the record to the process. Users still don’t understand why their request hasn’t been approved yet (years later on some of these records).

  • Confession #242

    Upon turning in my two weeks notice at my previous company, the CEO decided he had the time to be the Salesforce System Admin (admittedly he did). Turned him onto Trailhead and his response, “That’s too much reading”.
    Next to last day at the job, “Hey did you know Salesforce send reports to people” My reply, “Uh yeah, those are the automated reports you and everyone in production gets on a weekly basis…” “Oh I create an email filter to send those into a folder a couple of years ago”

  • Confession #241

    They built a custom lead object as the Admin didn’t know that a concept called record types with page-layouts was available out of the box and were trying to implement web to lead on this custom object.

  • Confession #240

    Org that had 925 Profiles.

  • Confession #239

    I had a client with 600 custom fields on Account. About 30 of them were contact info fields for up to 5 contacts (like contact first name 1, contact last name 1, contact email 1…times 5) and then my favorite was the account type was “lead” “account” “opportunity” “lost opportunity” Instead of using Leads or Opportunities, they just tracked it all on the Account. Oh and let’s not forget all the date fields for like activated date, activated month, activated year, activated quarter.

  • Confession #238

    800 fields on the Lead object to capture multiple people, deals, campaigns & no records on any other object.

  • Confession #237

    After cleaning up needlessly convoluted vendor work, I’ve realized that 1) vendors give 0% about maintenance, and 2) code not clicks is the easiest and fastest way to build automation.

  • Confession #236

    Public read write for everyone on everything in a 400 user org.

  • Confession #235

    When a Salesforce user tells me that she clones the Contact each time she needs to log a call, because she doesn’t know how to use the native “Log A Call” feature.

  • Confession #234

    I keep putting bandaids in our automation-workflows that separate triggers and process builders, triggering process builders through Dataloader. Mainly because nobody can agree that 20 Process Builders on one object, code from 2015, and 200 workflows is not sustainable.

  • Confession #233

    One of my super users can’t access a feature she needs. I’m super busy, and do a ‘quick fix’ and give her the Sys Admin profile. Problem temporarily solved…But wait, she’s a Trailhead enthusiast studying to be an admin. She has accidentally been downloading Trailhead data and applications into production. Ahhhhh jeez.

  • Confession #232

    Working with a client using Case object to the MAX… Nearly 100,000 records, 650+ fields, 30+ record types, 80+ page layouts with 30+ buttons. Lots of automation; 70+ validation rules, 100+ workflow rules, 15+ support processes and 20+ Process Builder Workflows. And over 450 list views.

  • Confession #231

    People refuse to do changes anywhere but in production, since there “is no real test data”.

  • Confession #230

    Formula field “Today__c” exists on various objects. The formula is simply “TODAY()”

  • Confession #229

    Client “switched” consultants (aka fired us) when we refused to rebuild GA functionality so that they could avoid license fees. We told the client they would be in violation of their Salesforce MSA and so would we if we built the app. We never heard from them again . . .

  • Confession #228

    Installed a beta managed package over the top of an existing (highly customized) package install in a sandbox. With no upgrade path to a new package version and weeks of work to remove the dependencies, the sandbox needed to be abandoned and a new one created.

  • Confession #227

    150+ case record types. 80+ Opportunity record types. Max Apex limit increased to 12 million characters.

  • Confession #226

    250k+ Contacts related to same Account. It takes approx. 1 minute for the Account to load and 3 minutes to merge Contacts. Plus, reports are very slow.

  • Confession #225

    All Contacts in linked to a single Account called “Contacts”

  • Confession #224

    To increase Apex code coverage of classes built by 5 junior devs (that hadn’t been reviewed by mistake), I had to create fake methods with thousands of lines with “a = 1;”

  • Confession #223

    Stumbled on an object with 2 checkbox fields: Has_contract_yes__c and Has_contract_no__c

  • Confession #222

    Changed an API name of a field and made a mess.

  • Confession #221

    Made unnecessary long Apex classes to pass code coverage requirements. I’m sorry.

  • Confession #220

    Previous admin must have hated formula fields. We had 20 fields with a batch job to replicate each field onto 1 million+ related records.

  • Confession #219

    I inherited an org with over 12,000 duplicate contact records. Seems we used to have volunteers doing our data entry.

  • Confession #218

    I inherited the “simple” org with 39 different record types, and 290 Lead routing rules for Call Center with about 350 active agents, almost rule per agent.

  • Confession #217

    Was asked to create a new lead queue and “give everyone access to it”. Created the queue and added all users to it. Suddenly 400+ users are being notified that leads are being reassigned to this newly created queue – over 150 records before a panicked phone call over a weekend got the notifications turned off.

  • Confession #216

    All managers insist on having a password that never expires.

  • Confession #215

    One of our developers linked their Trailhead SFDX work to our Production org.

  • Confession #214

    I inherited an Org with 16 Opportunity record types and 16 page layouts to support 2 sales processes.

  • Confession #213

    97.3% of all email to case records created daily are from spam. This has been happening for the last 18 months.

  • Confession #212

    Former CMO insisted on a 3 level lead source dependent picklists process with 200 options to select from in each picklist. 8 MILLION source options…

  • Confession #211

    After cloning off a Full Copy sandbox, I extracted all of the Contact emails to mask with a fake address. And then ran the update in Production instead of the Sandbox. I caught it and it was an easy fix from the source file, but I am reminded of the gaff every time I see field history on the Contact record.

  • Confession #210

    I once worked on an org with 18 users and each had a custom profile.

  • Confession #209

    I can’t use change sets half the time because the original team that set up the org messed things up so badly that the standard tests fail for the smallest field update.

  • Confession #208

    The org had around 60 roles named according to the sales team managers. There roles like were “Tom’s Team”, “John’s team”… and only 4 of them actually had users assigned. Management explained to me that when one sales manager leaves, they hire a new one, get Salesforce consultant to create a new role with new manager’s name, reassign users and leave the old role empty.

  • Confession #207

    Former accidentals admins would test in production and now there are 782 custom fields on the Account object. I should have looked at the org before accepting the job.

  • Confession #206

    I’m a new Admin and I just found out that org I will support has 3500 Apex classes. I can’t open the list of all classes in Salesforce Setup because the page times out. I can’t open the dev console at all because page times out. I don’t have any ideas how Enterprise org with 30 users ended up having such a high number of Apex classes.

  • Confession #205

    Former “Acting Admin” had no idea what they were doing. Would give it a whirl and then submit a case to Premier Support.

  • Confession #204

    Inherited an org where multiple partners spent several years doing ‘daily admin’. Some used Dutch or French for field labels and English for the API-names. Others did the opposite. Someone played around with translation workbench and changed standard labels. Documentation is nowhere to be found …

  • Confession #203

    My favorite was when I went into Prod one day and went “wtf is Dreamhouse?!” before realizing what happened.

  • Confession #202

    I change everything in production because I’m an awful human being.

  • Confession #201

    Users doing a Trailhead course and started installing apps in our prod org vs their own playground.

  • Confession #200

    Hired an Admin who claimed he had 6 years of international experience to assist my work; fired him because of 2 pages of red flags in a month; the guy might have only 6 weeks of training from India.

  • Confession #199

    Org with 350 users migrated to Lightning using an SI. Company got the cheapest option possible and ended up with a “lift and shift”. All the issues we had in Classic are now amplified 10x and half the stuff we had working in Classic don’t work in Lightning.

  • Confession #198

    35 users logging in with shared username/password that had System Admin access.

  • Confession #197

    I once had to teach a Senior Admin not to build things in production, and how to use a sandbox and change sets.

  • Confession #196

    Community cloud was so much customized that to refresh the org and to get it back running takes 1 entire week.

  • Confession #195

    Spent a whole week building Reports and Dashboards for an old company and was then told to export all the data into Excel and prepare a 20 Page PowerPoint with the exact same information! Needless to say I didn’t last long there.

  • Confession #194

    The Data ‘Expert’ cleansed the data and re-added as 20% was correct and that was good enough.

  • Confession #193

    As a new admin, my CFO at the time didn’t listen when me and my dev coworker advised we use the private sharing model before deploying a User Community for the customers. When a customer asked why they could see private information on employee’s users, that same CFO then approved 6 months of audit logging at 10s of thousands of dollars and 3 months of lost dev and admin time as we combed through the logs to make sure there wasn’t an exploit of the discovered “data breach” …. we turned on private sharing after that.

     

  • Confession #192

    Started learning and working as a Salesforce Admin in a small company. The current Admin said he used a separate spreadsheet for the sales data. Upon investigation found out there were no customized fields on Opportunities to record said information. Added 10 fields and no more separate spreadsheet!

  • Confession #191

    When I was first learning Salesforce, I thought sObjects stood for Standard objects and assumed there was a cObject for Custom Objects.

  • Confession #190

    Previously came across a new admin at #SalesforceSaturday completing their Trailhead on their company org. Definitely had a serious conversation with that person.

  • Confession #189

    Can no longer upload CSV updates to Pardot because Prospect ID is a 9 digit number. So are Canadian Social Security numbers. So, naturally, our company Infosec blocks upload of any files containing any 9 digit numbers…

  • Confession #188

    A former colleague was given the task of removing erroneous data from a client’s Production org. Once the bad records were identified, rather than deleting, they flagged them for removal by renaming them all “Nuke ’em”…in production…in a client’s instance. The client thought they were hacked and lost all their data. This happened late on a Friday afternoon. That led to a fun weekend activity for me and my team.

  • Confession #187

    Our Salesforce “owner” turned on Lightning for several teams with absolutely no communications to the users.

  • Confession #186

    10 year old Org. Admin didn’t know how customize nav bar. So they went in for each user and customized their tabs.

  • Confession #185

    “You’re an Admin in our Org.”
    “Am I?”

  • Confession #184

    Field name were changed when a field was deprecated by adding _DEL. Sometimes it was deprecated and then brought back and deprecated again so it had _DEL_DEL in the name.

  • Confession #183

    The app was used by an Asian offshore team who didn’t speak any English. But all the field labels and help was in English, so the data quality was a disaster.

  • Confession #182

    Dutch company with offices in 10 African countries, who never talked to each other. They all wanted to run in their own language and data was a mess.

  • Confession #181

    We consolidated 7 Orgs into 1 by simply adding everything into 1 Org. Now we are trying to understand how this impossibly complex Org with many, many duplicated field names works.

  • Confession #180

    Org is so messed up we cannot run tests unless you make them so specific to make sure that they only touch certain classes in Apex.

  • Confession #179

    A lot of fields were created by someone who couldn’t spell. Fixed the labels, but the API names are used by integrations and code and will never be fixed.  So everyone in the company talks about “customer tupes” not “customer types”.

  • Confession #178

    Creating a lead page layout for a customer that contained over 500 fields and layering in validation rules to enforce conditionally required fields based on business rules.

  • Confession #177

    Brand new Admin. Accidentally deleted 3 million records, so spent all weekend re-importing them before anyone noticed.

  • Confession #176

    We have over 10,000 custom objects, so many apps will not run in our Org. I have been given the job of cleaning it up.

  • Confession #175

    290+ users, 40+ profiles, and 200+ roles.

  • Confession #174

    Regular orders, replacement orders, and missed part orders all pushed into salesforce. Only one record type exists….

  • Confession #173

    Inherited an org where input validation for a single object was buried inside multiple Apex classes instead of using validation rules 🙁

  • Confession #172

    47 user profiles for approximately 150 users

  • Confession #171

    “We want a custom object that does everything Opportunities does”
    “Why not just create another record type for opportunities?”
    “SORCERY!!”

  • Confession #170

    Opportunity object re-purposed and utilized as if it was a custom object.

  • Confession #169

    User did the MyDomain Trailhead in Production. So our Prod login was changed to kittiesarecute.my.salesforce.com It took a tech call escalated to Salesforce Tier 3 support to undo.

  • Confession #168

    26 multi-select pick list fields on Accounts.

  • Confession #167

    Flows that run instead of validation rules to correct data errors.

  • Confession #166

    Multiple users for the same person in the same Org.

  • Confession #165

    Field names that mean different things based on how it is used.

  • Confession #164

    Sandbox not updated 10 years.

  • Confession #163

    Multiple PBW on the same object.

  • Confession #162

    I inherited an org where pretty much everyone was given system admin access.

  • Confession #161

    Duplicating Account team members just to make case routing work with GainSight.

  • Confession #160

    Creating a set of custom text fields for the account address instead of using native ones.

  • Confession #159

    Our best customer in Production is “Testy McTesterson”. We have to add filters to every report to exclude their records.

  • Confession #158

    Inherited an org with a public group for pretty much each user vs. using role hierarchy in sharing rules and report folders

  • Confession #157

    Tracking financial information on a record and with a set of fields created for each year

  • Confession #156

    Spent our entire first year with Salesforce entering real-time data into our Full Sandbox instead of Production. Now we can’t refresh because we might lose something important.

  • Confession #155

    Had a problem with a CPQ field not working. Submitted a case went all the way to the executive level to find out I was missing an underscore in __c. So embarrassing.

  • Confession #154

    At my first admin job they wanted an email alert setup when any opportunity was closed/won. I then had to do a mass update of 20,000 old opportunities to update a field. I forgot to turn off the workflow rule. Crashed our email server sending 20k+ emails out to 10 people.

  • Confession #153

    Just joined company. The Org is 8 years old and I am the first full time Admin.

  • Confession #152

    A managed package that used Translation workbench to swap the labels on two fields so they are now the opposites of their API names.

  • Confession #151

    1 process includes 18 PBW, 2 flows, 12 workflow rules, 30 custom formula fields. Plus maybe some code. No one knows how or why it exists.

  • Confession #150

    Created a custom fields for every standard field because admin couldn’t see them in searches.

  • Confession #149

    Renamed every metadata API name to the business unit that needed it. The developers needed to access lookup sheet to be able to decipher.

  • Confession #148

    Process consolidation – 16 PBW on a single object and each PPW has single action and criteria.

  • Confession #147

    Multiple fields with same label.

  • Confession #146

    We track everything in spreadsheets not Salesforce. Why? No idea. I don’t have a good answer and I’m an MVP!

  • Confession #145

    We have OCD (Org Complexity Disorder).

  • Confession #144

    Law firm created a Case record type for every case they tried. We got the call when they maxed out their Case Record Type at 300.

  • Confession #143

    Customer sold 10 products. They put a checkbox on the Account record for each product and company. Every time they sold to a new company – they added those 10 checkboxes to the Account record for the new company. We got the call when they reached their 500th field on the Account record.

  • Confession #142

    Customer used workflows and triggers to create tasks for their service representatives. After 3 months they had maxed out their storage. We had to explain that there was no way that 25 service reps could clear the 450,000 tasks that had been created for them.

  • Confession #141

    Renamed Opportunity object to Donations, but users couldn’t cope with concept so had to change it back.

  • Confession #140

    Made to implement 50 unique compliance checkboxes and then an action to check them all as True in one go.

  • Confession #139

    Consultant created custom object called Opportunity, but report builder displays name not API, so we could not determine between custom and standard Opportunity object.

  • Confession #138

    So much customization with external interfaces it takes weeks to create a new Sandbox.

  • Confession #137

    We consolidated Orgs and an object for one business unit had 800 fields all visible in one page layout and the page kept scrolling and scrolling like a CVS receipt.

  • Confession #136

    Org 62.

  • Confession #135

    29 users in the Org had 6.6m archived tasks. Data storage cost was $15,000 so instead I took 14 hours report on the IDs and export. They were hours I will never get back.

  • Confession #134

    Checkbox on Account “Is not active”. Default was false.

  • Confession #133

    Pairs of fields on an object. One field is a checkbox and other is date completed. 200 pairs of fields.

  • Confession #132

    400 custom fields of which 390 were 30 groups of 13 questions.

  • Confession #131

    Opportunity object with 360 fields, 60 validation rules, 0 record types and just 1 page layout.

  • Confession #130

    27 System Admins – 29 users.

  • Confession #129

    We installed a managed package that added a currency field onto every standard AND custom object.

  • Confession #128

    That’s a big Org…. 1,058 Custom Objects, 14,108 Apex Classes, 47 Managed Packages, 896 Permission Sets, 2,269 VF Pages and 446 Lightning Pages.

  • Confession #127

    We have an Org with 2 custom objects – Contact and Report.

  • Confession #126

    We have problems regularly with troubleshooting and regression testing Process Builders to the point that we’re telling business users we can’t make updates to automation because the time commitment for regression testing even basic updates is huge.

  • Confession #125

    I inherited an org which had the sales team using a custom object for Leads… because another team was already using Leads to track their opportunities. Because obviously two teams couldn’t use the same object for similar purposes… I blew their minds with record types!

  • Confession #124

    The company service team started storing employee ID’s in the same field as the employee name. Talk about data integrity, and a massive export for clean-up.

  • Confession #123

    We have a custom object called ‘abc’.

  • Confession #122

    Somehow, a business user had System Administrator as profile. We noticed when that person installed dreamhouse application in Production environment using Trailhead!!

  • Confession #121

    A Solo Admin has developed the Org for the last 8 years. They have just left but there is no documentation on any of the changes. So now the new team of 3 people is trying to work out what was done and why.

  • Confession #120

    One of my clients directly changes Fields, Workflows, PBW, Approvals, Formulas in Production and they are careful in Full Sandbox. Developers are confused which is the real production org: is it Production or Full Sandbox?

  • Confession #119

    We have 2 Product objects and nobody knows what the differences are.

  • Confession #118

    One of our team – NOT a System Admin – is able to use the Data Import Wizard but cannot see the results file. So they are able to create havoc, but not see what they have done.

  • Confession #117

    Three fields on the same object with the same label. Even better, the Process Builder on the object references all three… except you can’t see which field is which because API name isn’t visible in PB.

  • Confession #116

    We can’t add documentation to a Process Builder Workflow because each PBW does not have a unique URL in setup. Doh!!!

  • Confession #115

    Dev team wanted to put all regional account record details into a single account, with each region having its own section.

  • Confession #114

    We can’t move to Lightning because our Dev Team refuses to learn Javascript to write the Lightning components we need.

  • Confession #113

    It is easier to create and customize a new Org than get approval to add functionality to our existing Org because it is so bloated.

  • Confession #112

    In our clean up exercise we have just deleted 178 objects. Yay!!! But how did we have that many that could be deleted?

  • Confession #111

    Making changes to launch our Service Cloud and Community in production because I can’t 100% deploy both using metadata.

  • Confession #110

    Case Sharing Setting is “Public Read/Write” and there are many Sharing Rules which are supposed to restrict the case records to different teams.

  • Confession #109

    Deleted a field, but only discovered months later when end of year processing integration ran.

  • Confession #108

    Preparing a demo, I set Deliverability to ‘no e-mail’. Result: not getting a verification code to log back in to the Org. A once-in-a-lifetime mistake!

  • Confession #107

    24 Process Builder Workflow on the same object, some of them with Active Version not being the Latest Version, plus some Workflow Rules thrown in just to keep it interesting. Then some dependencies on the Condition Criteria on those Process Builder Workflow without any way of controlling the order of operation.

  • Confession #106

    Hardcoded Record Type IDs in Apex that don’t correlate to anything? If it passed testing, it must have been ready to deploy!

  • Confession #105

    For a large telecommunications business I was asked to add a checkbox to a page, then make it required.

  • Confession #104

    Every standard object recreated as custom objects because 2 different groups were using Salesforce. When I started I was given 2 logins for the same org because nobody understood security. THEN instead of moving opportunity owners when a sales person left, they just typed over the name instead of inactivating users. Audit trails are apparently not necessary in insurance.

  • Confession #103

    Uneditable closed opps.

  • Confession #102

    No process for auditing fields before creating new fields so many duplicated fields and multiple conflicting triggers.

  • Confession #101

    All the object names were stored in code as variables a, b, c, d, e with no commenting. So impossible to read or debug.

  • Confession #100

    10 competitor fields on the Opportunity object.

  • Confession #99

    Maxed out field validations, so validations were triggering other validations. It was easier to not enter any data.

  • Confession #98

    Replaced every standard page with a VF page.

  • Confession #97

    Page layouts with 500 fields and page takes ages to load.

  • Confession #96

    9 Triggers on Lead Insert.

  • Confession #95

    Couldn’t run any report because it always times out. Too many records – 90% of the data is garbage.

  • Confession #94

    Inadvertently commenting code during Prod deploy.

  • Confession #93

    Found this code in project –
    for(i=0;i<1;i++)
    system.debug(‘<>’);

  • Confession #92

    30min trying to fix a formula (NULL v. 0, blanks as blanks v. blanks as 0s, etc.). No documentation so discovered I was referencing the wrong field….

  • Confession #91

    When you discover work done with code that could’ve easily been done with declarative tools.

  • Confession #90

    Opportunity object has “Qualified Date” and “Date Qualified” fields

  • Confession #89

    User: I don’t want to have to look at anything or click any buttons or do anything. I just want everything to be served up to me in an email everyday.

  • Confession #88

    No naming conventions, the field names (API) don’t make sense and don’t match the field values. Cleaning up page layouts is a nightmare.

  • Confession #87

    No role hierarchy implemented in complex HR app. New consultant came in and fixed the role hierarchy on Friday. Sunday morning call from CEO “Everybody’s salary is now visible”.

  • Confession #86

    Whether declarative or programmatic, it’s pretty easy to mess up a Salesforce org.

  • Confession #85

    Recreated standard system fields – such as Created By, Created Date/Time, etc – as custom fields.

  • Confession #84

    Request for a multi-select picklist with 98 values. When advised this was not the best practice and to rethink the need, they came back with a request for a picklist with 78 values.

  • Confession #83

    Question: “Can you send me an excel of this report?”
    Me: “Why?”
    Answer: “So I can add a graph to understand the data!”

  • Confession #82

    Users who can’t be bothered to learn the newest Salesforce instructions asking why they don’t have admin access and can’t see every field.

  • Confession #81

    Account object is set to private. Found a sharing rule that gives read/write access to everyone if the creator was any user…

  • Confession #80

    Salesforce is no longer our source of truth. It’s our source of duplication and despair!

  • Confession #79

    100+ Process Builder versions.

  • Confession #78

    Directors were told that setting up email-to-case is easy, it just needs to be turned on….

  • Confession #77

    Object with 2 fields “shoe size” and “size of shoe”. Why? Because couldn’t change field due to dependencies, so just created a new field.

  • Confession #76

    Custom developed project management app – core object maxed out fields.

  • Confession #75

    Regression test and UAT before CPQ go live. But clearly missed something as couldn’t do a system generated quote for 6 weeks. So had to manually create quotes. BTW quotes are 200 line items.

  • Confession #74

    40 lookup fields on the Product object.

  • Confession #73

    Validation rule firing on a field in a managed package which not visible because the managed package is expired.

  • Confession #72

    Duplicated Lead and Contact as custom objects.

  • Confession #71

    50 different records where they are lead and contact with the same name.

  • Confession #70

    3 Apps installed all with the same field name but cannot change field labels so super confusing especially as one App is not used but we cannot uninstall.

  • Confession #69

    Product object, 250+ quantity and 250+ price fields. But needed to write some Apex to query the record. CPQ on one record.

  • Confession #68

    3 million lines code, 100% was not necessary because it was an app that is not needed.

  • Confession #67

    Hard coded profile IDs in Apex Class.

  • Confession #66

    My report isn’t returning the results, because there wasn’t a role hierarchy. 

  • Confession #65

    We created a custom Opportunity object because we didn’t like the name “opportunity”  and now we can’t build a sales pipeline report easily.

  • Confession #64

    As we acquired companies and added their sales methodologies and opportunity stages… 30+ stages with overlap e.g. 7 different versions of “sales won” and 10 different versions of loss stages. And then how do I report on that.

  • Confession #63

    Hard coded vendor names in Apex Class.

  • Confession #62

    No code coverage – anywhere.

  • Confession #61

    3 custom Product objects with duplicated fields and no documentation…

  • Confession #60

    We only had 2 profiles; SysAdmin and Staff. But we discovered both had full Admin rights.

  • Confession #59

    We have 4 different source fields on the Lead object filled out by our marketing team.

  • Confession #58

    We’ve let sales people add fields and picklist values to solve their problems.

  • Confession #57

    Every day, users need to log into at least 4 different Orgs to get their job done.

  • Confession #56

    Multiple Orgs. They couldn’t work out what was configured so they start again, and again, and again. We see this a LOT in the nonprofit space.

  • Confession #55

    35 Users, 25 Profiles. Every custom field on every object starts with z_ . Different suppliers, created different fields for same purpose.

  • Confession #54

    Custom address fields on Contact and Lead objects.

  • Confession #53

    Using i++ to increase code coverage of test classes unethically.

  • Confession #52

    My Manager removed the ability to export reports. Without telling anybody. 2 days before month end reporting was due.

  • Confession #51

    Added 20 dummy classes (8000 lines code) and test classes to boost code coverage.

  • Confession #50

    A single apex class with 13,000 lines of code!

  • Confession #49

    Written and Modified Lightning Flows, Processes, and Validation Rules, in Production.

  • Confession #48

    Lead Source values maxed out with 1,000 entries.

  • Confession #47

    44,000+ reports…

  • Confession #46

    30 profiles, 5 had the same name with a year marked at the end. Example = account manager 2015, account manager 2016. Not sure why? No documentation on what was different.

  • Confession #45

    Date of first meeting being stored on Lead and Lead Stage being processed on Task.

  • Confession #44

    Two custom fields on Lead – “Converted Date” and “Date Converted”.

  • Confession #43

    200 Apex Classes. 50 tests failing in production. The other ones are fake tests with no assertions.

  • Confession #42

    Our Org was taken over by keen developers who automated everything and now we have “the world’s best self driving car… with no wheels”.

  • Confession #41

    2500 permission sets.

  • Confession #40

    UAT Sandbox not refreshed in 15 months.

  • Confession #39

    Hard coded user names in Apex classes.

  • Confession #38

    1000 users but 5000 roles.

  • Confession #37

    Core Opportunity object and then 2 extra custom objects for more fields.

  • Confession #36

    Took all custom fields off standard objects and put them on a single custom object.

  • Confession #35

    Everything was coded in Apex by consultants who didn’t understand core Salesforce features. 3 million lines of code!! Every field was referenced so none could ever be deleted.

  • Confession #34

    Inherited 6 year old Org and discovered Field History had never been switched on.

  • Confession #33

    12 triggers on the Case object. Sigh.

  • Confession #32

    1,500 lines of j++ intended to inflate test coverage.

  • Confession #31

    Inside sales couldn’t work out how to convert lead so printed it out and left on the desk of the sales person.

  • Confession #30

    Another scary Org: over 600 objects, 24,000 reports & 1200 dashboards.

  • Confession #29

    User could not access an opp. Asked them to send the URL of the record. They printed out the opp, scanned it and sent it as an email. Bless their heart.

  • Confession #28

    Someone had referenced all the Test 1, Test 2, Test 3 account names to be ignored in their code. Yikes!

  • Confession #27

    Every object had a custom field for last modified date/time.

  • Confession #26

    Every user is a system administrator.

  • Confession #25

    All business process and data for a 40-user company was on the same standard object.

  • Confession #24

    Profile for every user.

  • Confession #23

    Thousands of private reports for inactive users.

  • Confession #22

    Inherited Org. Every user had Admin rights.

  • Confession #21

    Managed packaged installs 209 objects, 79 tabs, 351 Visualforce pages, 160 apex triggers and 3126 apex classes into your org.

  • Confession #20

    Replicated Siebel CRM using all custom objects.

  • Confession #19

    700 fields and 280 are formula fields on one object.

  • Confession #18

    Our Development team built a trigger that lets an external system synchronize the account address to their contact addresses and validates with an error message if any user tries to update the contact addresses. After deploying it to the Production environment, users could not create contacts anymore.

    We spent time analyzing what was going on and found out there were workflows overlapping the trigger in the way that any user can update the contact addresses through the respective account. Workflows were given every time a Contact record is created or updated.

  • Confession #17

    738 Apex triggers developed over last 8 years by external consultants. No documentation.

  • Confession #16

    Case object maxed out at 800 fields with 54 record types.

  • Confession #15

    We found people who are doing Trailhead modules inside our Production Org.

  • Confession #14

    We have 271 Permission Sets, 100s of public groups used in sharing rules and 103(ish) profiles.

  • Confession #13

    Consolidating 2 small Orgs after an acquisition took 8 people 4 months. 

  • Confession #12

    464 fields (all used) and 14 stages on Opportunity object but the page goes on forever and takes minutes to load.

  • Confession #11

    15,000 reports. No comment.

  • Confession #10

    Contact object maxed out with 800 fields when trying to consolidate 5 orgs. So we have no idea how to consolidate without duplicating an object.

  • Confession #9

    Over 100 picklist values on a field but we have no idea which ones are used so we can’t delete any.

  • Confession #8

    We have run out of fields on the Opportunity object 5 times.

  • Confession #7

    We have 49,700 email templates. A bug in the managed package that integrated with a 3rd party marketing app (not Salesforce) created email templates every time it ran.

  • Confession #6

    We are trying to consolidate 55 Orgs. We have 4 business units but shared customers. So should we have 4 Orgs or 1? And how do we get there? 

  • Confession #5

    The audit to scope the clean-up work has taken 4 consultants 30 days. This 8-year-old Org doesn’t have a single line of documentation. 

  • Confession #4

    I learned we had 1,500,000 lines of undocumented Apex code.

  • Confession #3

    5372 Apex Classes and 55 Managed Packages, but I am not sure which we can delete.

  • Confession #2

    We have 15,000 reports with no sensible naming.

  • Confession #1

    We’ve maxed out our field limit on a Task. Let that just sink in for a minute.