I had heard and read of horror stories of people trying to transit through Jakarta that I really did try to avoid it. Now I have no idea how on earth I got so lucky but when my flight landed from Hong Kong, I think it was the only flight that arrived at that time. That said, it literally took 2 minutes to make it through immigration. There was no line and every single booth was open to get my passport stamped.
If transiting, you’ll want to find the people mover to get to the correct terminal (if you need to switch terminals). Know that it is NOT possible to walk from one terminal to another so you’ll want to take the people mover (free) or pay for a bus or a taxi. To get to the people mover, just remember that the track is above ground. Walk out of baggage claim and walk across the street (signage is present but poor). Once you get to the parking lot, look up and you’ll see the track. Then find the only logical building that will get you up there.
Depending on your carrier, you’ll need to get to the correct terminal. There is airport security at the people mover station and they should be able to help. It seemed to me like the airport was NOT separated by international/domestic departures. As near as I could tell, Garuda Airlines had their own terminal vs. everyone else so you may want to ask if unsure.
Once you check in and ready to go through security, remember that you’re in a Muslim country so they have separate security lanes for men and women. I made the mistake of going toward the shortest lane and was yelled at by the female official. It wasn’t until after I left the screening area that I figured out why.
After you’re through, you’ll basically want to park your butt at a lounge if you have access. Gate assignments weren’t provided on the departures board until about 30 mins prior to the flight so it won’t matter where you decide to wait. Shockingly, once the gate was announced and boarding began, everyone was boarded and seated in less than 20 mins.